| Notes on the the generic USB-OHCI driver |
| ======================================== |
| |
| This driver (drivers/usb/usb_ohci.[ch]) is the result of the merge of |
| various existing OHCI drivers that were basically identical beside |
| cpu/board dependant initalization. This initalization has been moved |
| into cpu/board directories and are called via the hooks below. |
| |
| Configuration options |
| ---------------------- |
| |
| CONFIG_USB_OHCI_NEW: enable the new OHCI driver |
| |
| CONFIG_SYS_USB_OHCI_BOARD_INIT: call the board dependant hooks: |
| |
| - extern int board_usb_init(void); |
| - extern int usb_board_stop(void); |
| - extern int usb_cpu_init_fail(void); |
| |
| CONFIG_SYS_USB_OHCI_CPU_INIT: call the cpu dependant hooks: |
| |
| - extern int usb_cpu_init(void); |
| - extern int usb_cpu_stop(void); |
| - extern int usb_cpu_init_fail(void); |
| |
| CONFIG_SYS_USB_OHCI_REGS_BASE: defines the base address of the OHCI |
| registers |
| |
| CONFIG_SYS_USB_OHCI_SLOT_NAME: slot name |
| |
| CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the |
| root hub. |
| |
| |
| Endianness issues |
| ------------------ |
| |
| The USB bus operates in little endian, but unfortunately there are |
| OHCI controllers that operate in big endian such as ppc4xx. For these the |
| config option |
| |
| CONFIG_SYS_OHCI_BE_CONTROLLER |
| |
| needs to be defined. |
| |
| |
| PCI Controllers |
| ---------------- |
| |
| You'll need to define |
| |
| CONFIG_PCI_OHCI |
| |
| If you have several USB PCI controllers, define |
| |
| CONFIG_PCI_OHCI_DEVNO: number of the OHCI device in PCI list |
| |
| If undefined, the first instance found in PCI space will be used. |
| |
| PCI Controllers need to do byte swapping on register accesses, so they |
| should to define: |
| |
| CONFIG_SYS_OHCI_SWAP_REG_ACCESS |