xref: /openbmc/u-boot/doc/README.generic_usb_ohci (revision 58b485776698c3d71ec5a215e392123b4c15afa3)
1*58b48577SMarkus KlotzbuecherNotes on the the generic USB-OHCI driver
2*58b48577SMarkus Klotzbuecher========================================
3*58b48577SMarkus Klotzbuecher
4*58b48577SMarkus KlotzbuecherThis driver (drivers/usb_ohci.[ch]) is the result of the merge of
5*58b48577SMarkus Klotzbuechervarious existing OHCI drivers that were basically identical beside
6*58b48577SMarkus Klotzbuechercpu/board dependant initalization. This initalization has been moved
7*58b48577SMarkus Klotzbuecherinto cpu/board directories and are called via the hooks below.
8*58b48577SMarkus Klotzbuecher
9*58b48577SMarkus KlotzbuecherConfiguration options
10*58b48577SMarkus Klotzbuecher----------------------
11*58b48577SMarkus Klotzbuecher
12*58b48577SMarkus KlotzbuecherCONFIG_USB_OHCI_NEW: enable the new OHCI driver
13*58b48577SMarkus Klotzbuecher
14*58b48577SMarkus KlotzbuecherCFG_USB_OHCI_BOARD_INIT: call the board dependant hooks:
15*58b48577SMarkus Klotzbuecher
16*58b48577SMarkus Klotzbuecher  - extern int usb_board_init(void);
17*58b48577SMarkus Klotzbuecher  - extern int usb_board_stop(void);
18*58b48577SMarkus Klotzbuecher  - extern int usb_cpu_init_fail(void);
19*58b48577SMarkus Klotzbuecher
20*58b48577SMarkus KlotzbuecherCFG_USB_OHCI_CPU_INIT: call the cpu dependant hooks:
21*58b48577SMarkus Klotzbuecher
22*58b48577SMarkus Klotzbuecher  - extern int usb_cpu_init(void);
23*58b48577SMarkus Klotzbuecher  - extern int usb_cpu_stop(void);
24*58b48577SMarkus Klotzbuecher  - extern int usb_cpu_init_fail(void);
25*58b48577SMarkus Klotzbuecher
26*58b48577SMarkus KlotzbuecherCFG_USB_OHCI_REGS_BASE: defines the base address of the OHCI registers
27*58b48577SMarkus Klotzbuecher
28*58b48577SMarkus KlotzbuecherCFG_USB_OHCI_SLOT_NAME: slot name
29*58b48577SMarkus Klotzbuecher
30*58b48577SMarkus KlotzbuecherCFG_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the root hub.
31*58b48577SMarkus Klotzbuecher
32*58b48577SMarkus Klotzbuecher
33*58b48577SMarkus KlotzbuecherEndianness issues
34*58b48577SMarkus Klotzbuecher------------------
35*58b48577SMarkus Klotzbuecher
36*58b48577SMarkus KlotzbuecherThe LITTLEENDIAN #define determines if the 'swap_16' and 'swap_32'
37*58b48577SMarkus Klotzbuechermacros do byte swapping or not. But some cpus OHCI-controllers such as
38*58b48577SMarkus Klotzbuecherppc4xx and mpc5xxx operate in little endian mode, so some extra ifdefs
39*58b48577SMarkus Klotzbuecherwere necessary to make this work.
40*58b48577SMarkus Klotzbuecher
41*58b48577SMarkus Klotzbuecher
42*58b48577SMarkus Klotzbuecher
43*58b48577SMarkus Klotzbuecher
44