• Jeffrey Lee's avatar
    Add initial version of DWCDriver - USB driver for Synopsys DWC OTG controllers · 6b7ce280
    Jeffrey Lee authored
    Detail:
      A fairly simple wrapper for Synopsys's open source "DWC_otg" Linux driver, based around a GPL-free version of the DWC_otg 2.90a sources received from the Raspberry Pi foundation.
      Instead of interfacing with the Linux USB stack a new host interface layer has been implemented to allow it to talk to the standard BSD-derived RISC OS stack.
      RTSupport is used to provide the threading functionality that the DWC driver relies upon.
      Interesting files:
      - c/cmodule, h/cmodule - Main module frontend
      - c/dwc_common_riscos, h/dwc_common_riscos - Implementation of the OS support layer required by the DWC driver
      - c/dwc_otg_riscos, h/dwc_otg_riscos - Core code for the BSD driver implementation, driver init/shutdown, and for handling calls from the DWC host driver to us
      - c/port - Some support functions required by BSD-style code inherited from the other USB drivers
      - c/softc_device - Code to handle requests from the BSD layer to attached USB devices
      - c/softc_root - Code to handle requests from the BSD layer to the controller root hub
      - dwc/doc/* - Original Synopsys release notes & user guide pdfs
      - dwc/driver/*, dwc/dwc_common_port/* - Synopsys code and documentation. A few tweaks were required to allow it to compile under Norcroft, but otherwise it's functionally equivalent to the original sources.
    Admin:
      Tested in BCM2835 ROM
      There are a few loose ends still to tidy up (search for "DWCTODO"), mainly regarding implementation of Isochronous support, but otherwise the driver seems stable enough for daily use.
    
    
    Version 0.01. Tagged as 'DWCDriver-0_01'
    6b7ce280
!MkHAL,fd7 705 Bytes