xref: /openbmc/u-boot/doc/README.generic_usb_ohci (revision 5a904e5637cff1d708dc67098004f83ba9e84c54)
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
1458b48577SMarkus Klotzbuecher	CFG_USB_OHCI_BOARD_INIT: call the board dependant hooks:
1558b48577SMarkus Klotzbuecher
1658b48577SMarkus Klotzbuecher		  - extern int usb_board_init(void);
1758b48577SMarkus Klotzbuecher		  - extern int usb_board_stop(void);
1858b48577SMarkus Klotzbuecher		  - extern int usb_cpu_init_fail(void);
1958b48577SMarkus Klotzbuecher
2058b48577SMarkus Klotzbuecher	CFG_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
26fc43be47SMarkus Klotzbuecher	CFG_USB_OHCI_REGS_BASE: defines the base address of the OHCI
27fc43be47SMarkus Klotzbuecher				registers
2858b48577SMarkus Klotzbuecher
2958b48577SMarkus Klotzbuecher	CFG_USB_OHCI_SLOT_NAME: slot name
3058b48577SMarkus Klotzbuecher
31fc43be47SMarkus Klotzbuecher	CFG_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
39fc43be47SMarkus KlotzbuecherOHCI controllers that operate in big endian such as ppc4xx and
40fc43be47SMarkus Klotzbuechermpc5xxx. For these the config option
4158b48577SMarkus Klotzbuecher
42fc43be47SMarkus Klotzbuecher	CFG_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
54*5a904e56SSergei PoselenovIf you have several USB PCI controllers, define
55*5a904e56SSergei Poselenov
56*5a904e56SSergei Poselenov	CONFIG_PCI_OHCI_DEVNO: number of the OHCI device in PCI list
57*5a904e56SSergei Poselenov
58*5a904e56SSergei PoselenovIf undefined, the first instance found in PCI space will be used.
59*5a904e56SSergei Poselenov
60fc43be47SMarkus KlotzbuecherPCI Controllers need to do byte swapping on register accesses, so they
61fc43be47SMarkus Klotzbuechershould to define:
62fc43be47SMarkus Klotzbuecher
63fc43be47SMarkus Klotzbuecher	CFG_OHCI_SWAP_REG_ACCESS
64