| 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 usb_board_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 and | |
| mpc5xxx. 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 |