xref: /openbmc/u-boot/doc/README.generic_usb_ohci (revision fc43be478f2aa37ce38acd85355038866e4162af)
158b48577SMarkus KlotzbuecherNotes on the the generic USB-OHCI driver
258b48577SMarkus Klotzbuecher========================================
358b48577SMarkus Klotzbuecher
458b48577SMarkus KlotzbuecherThis driver (drivers/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
26*fc43be47SMarkus Klotzbuecher	CFG_USB_OHCI_REGS_BASE: defines the base address of the OHCI
27*fc43be47SMarkus Klotzbuecher				registers
2858b48577SMarkus Klotzbuecher
2958b48577SMarkus Klotzbuecher	CFG_USB_OHCI_SLOT_NAME: slot name
3058b48577SMarkus Klotzbuecher
31*fc43be47SMarkus Klotzbuecher	CFG_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the
32*fc43be47SMarkus Klotzbuecher				     root hub.
3358b48577SMarkus Klotzbuecher
3458b48577SMarkus Klotzbuecher
3558b48577SMarkus KlotzbuecherEndianness issues
3658b48577SMarkus Klotzbuecher------------------
3758b48577SMarkus Klotzbuecher
38*fc43be47SMarkus KlotzbuecherThe USB bus operates in little endian, but unfortunately there are
39*fc43be47SMarkus KlotzbuecherOHCI controllers that operate in big endian such as ppc4xx and
40*fc43be47SMarkus Klotzbuechermpc5xxx. For these the config option
4158b48577SMarkus Klotzbuecher
42*fc43be47SMarkus Klotzbuecher	CFG_OHCI_BE_CONTROLLER
43*fc43be47SMarkus Klotzbuecher
44*fc43be47SMarkus Klotzbuecherneeds to be defined.
45*fc43be47SMarkus Klotzbuecher
46*fc43be47SMarkus Klotzbuecher
47*fc43be47SMarkus KlotzbuecherPCI Controllers
48*fc43be47SMarkus Klotzbuecher----------------
49*fc43be47SMarkus Klotzbuecher
50*fc43be47SMarkus KlotzbuecherYou'll need to define
51*fc43be47SMarkus Klotzbuecher
52*fc43be47SMarkus Klotzbuecher	CONFIG_PCI_OHCI
53*fc43be47SMarkus Klotzbuecher
54*fc43be47SMarkus KlotzbuecherPCI Controllers need to do byte swapping on register accesses, so they
55*fc43be47SMarkus Klotzbuechershould to define:
56*fc43be47SMarkus Klotzbuecher
57*fc43be47SMarkus Klotzbuecher	CFG_OHCI_SWAP_REG_ACCESS
5858b48577SMarkus Klotzbuecher
5958b48577SMarkus Klotzbuecher
6058b48577SMarkus Klotzbuecher
61