xref: /openbmc/u-boot/doc/README.generic_usb_ohci (revision 0e708abcbba13aea6b57ecb7f0f1042eb29d0dce)
158b48577SMarkus KlotzbuecherNotes on the the generic USB-OHCI driver
258b48577SMarkus Klotzbuecher========================================
358b48577SMarkus Klotzbuecher
47817cb20SMarcel ZiswilerThis driver (drivers/usb/usb_ohci.[ch]) is the result of the merge of
558b48577SMarkus Klotzbuechervarious existing OHCI drivers that were basically identical beside
658b48577SMarkus Klotzbuechercpu/board dependant initalization. This initalization has been moved
758b48577SMarkus Klotzbuecherinto cpu/board directories and are called via the hooks below.
858b48577SMarkus Klotzbuecher
958b48577SMarkus KlotzbuecherConfiguration options
1058b48577SMarkus Klotzbuecher----------------------
1158b48577SMarkus Klotzbuecher
1258b48577SMarkus Klotzbuecher	CONFIG_USB_OHCI_NEW: enable the new OHCI driver
1358b48577SMarkus Klotzbuecher
146d0f6bcfSJean-Christophe PLAGNIOL-VILLARD	CONFIG_SYS_USB_OHCI_BOARD_INIT: call the board dependant hooks:
1558b48577SMarkus Klotzbuecher
16*2a766db1SKrzysztof Kozlowski		  - extern int board_usb_init(void);
1758b48577SMarkus Klotzbuecher		  - extern int usb_board_stop(void);
1858b48577SMarkus Klotzbuecher		  - extern int usb_cpu_init_fail(void);
1958b48577SMarkus Klotzbuecher
206d0f6bcfSJean-Christophe PLAGNIOL-VILLARD	CONFIG_SYS_USB_OHCI_CPU_INIT: call the cpu dependant hooks:
2158b48577SMarkus Klotzbuecher
2258b48577SMarkus Klotzbuecher		  - extern int usb_cpu_init(void);
2358b48577SMarkus Klotzbuecher		  - extern int usb_cpu_stop(void);
2458b48577SMarkus Klotzbuecher		  - extern int usb_cpu_init_fail(void);
2558b48577SMarkus Klotzbuecher
266d0f6bcfSJean-Christophe PLAGNIOL-VILLARD	CONFIG_SYS_USB_OHCI_REGS_BASE: defines the base address of the OHCI
27fc43be47SMarkus Klotzbuecher				registers
2858b48577SMarkus Klotzbuecher
296d0f6bcfSJean-Christophe PLAGNIOL-VILLARD	CONFIG_SYS_USB_OHCI_SLOT_NAME: slot name
3058b48577SMarkus Klotzbuecher
316d0f6bcfSJean-Christophe PLAGNIOL-VILLARD	CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the
32fc43be47SMarkus Klotzbuecher				     root hub.
3358b48577SMarkus Klotzbuecher
3458b48577SMarkus Klotzbuecher
3558b48577SMarkus KlotzbuecherEndianness issues
3658b48577SMarkus Klotzbuecher------------------
3758b48577SMarkus Klotzbuecher
38fc43be47SMarkus KlotzbuecherThe USB bus operates in little endian, but unfortunately there are
39064b55cfSHeiko SchocherOHCI controllers that operate in big endian such as ppc4xx. For these the
40064b55cfSHeiko Schocherconfig option
4158b48577SMarkus Klotzbuecher
426d0f6bcfSJean-Christophe PLAGNIOL-VILLARD	CONFIG_SYS_OHCI_BE_CONTROLLER
43fc43be47SMarkus Klotzbuecher
44fc43be47SMarkus Klotzbuecherneeds to be defined.
45fc43be47SMarkus Klotzbuecher
46fc43be47SMarkus Klotzbuecher
47fc43be47SMarkus KlotzbuecherPCI Controllers
48fc43be47SMarkus Klotzbuecher----------------
49fc43be47SMarkus Klotzbuecher
50fc43be47SMarkus KlotzbuecherYou'll need to define
51fc43be47SMarkus Klotzbuecher
52fc43be47SMarkus Klotzbuecher	CONFIG_PCI_OHCI
53fc43be47SMarkus Klotzbuecher
545a904e56SSergei PoselenovIf you have several USB PCI controllers, define
555a904e56SSergei Poselenov
565a904e56SSergei Poselenov	CONFIG_PCI_OHCI_DEVNO: number of the OHCI device in PCI list
575a904e56SSergei Poselenov
585a904e56SSergei PoselenovIf undefined, the first instance found in PCI space will be used.
595a904e56SSergei Poselenov
60fc43be47SMarkus KlotzbuecherPCI Controllers need to do byte swapping on register accesses, so they
61fc43be47SMarkus Klotzbuechershould to define:
62fc43be47SMarkus Klotzbuecher
636d0f6bcfSJean-Christophe PLAGNIOL-VILLARD	CONFIG_SYS_OHCI_SWAP_REG_ACCESS
64