blob: 65b0896c7fd29603a69e3e1f6c1b82997d205491 [file] [log] [blame]
Markus Klotzbuecher11310212006-11-27 11:51:21 +01001Notes on the the generic USB-OHCI driver
2========================================
3
Marcel Ziswileraea68562007-12-30 03:30:46 +01004This driver (drivers/usb/usb_ohci.[ch]) is the result of the merge of
Markus Klotzbuecher11310212006-11-27 11:51:21 +01005various existing OHCI drivers that were basically identical beside
6cpu/board dependant initalization. This initalization has been moved
7into cpu/board directories and are called via the hooks below.
8
9Configuration options
10----------------------
11
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020012 CONFIG_USB_OHCI_NEW: enable the new OHCI driver
Markus Klotzbuecher11310212006-11-27 11:51:21 +010013
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020014 CONFIG_SYS_USB_OHCI_BOARD_INIT: call the board dependant hooks:
Markus Klotzbuecher11310212006-11-27 11:51:21 +010015
Krzysztof Kozlowskib7f1aad2019-04-02 09:32:12 +020016 - extern int board_usb_init(void);
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020017 - extern int usb_board_stop(void);
18 - extern int usb_cpu_init_fail(void);
Markus Klotzbuecher11310212006-11-27 11:51:21 +010019
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020020 CONFIG_SYS_USB_OHCI_CPU_INIT: call the cpu dependant hooks:
Markus Klotzbuecher11310212006-11-27 11:51:21 +010021
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020022 - extern int usb_cpu_init(void);
23 - extern int usb_cpu_stop(void);
24 - extern int usb_cpu_init_fail(void);
Markus Klotzbuecher11310212006-11-27 11:51:21 +010025
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020026 CONFIG_SYS_USB_OHCI_REGS_BASE: defines the base address of the OHCI
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020027 registers
Markus Klotzbuecher11310212006-11-27 11:51:21 +010028
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020029 CONFIG_SYS_USB_OHCI_SLOT_NAME: slot name
Markus Klotzbuecher11310212006-11-27 11:51:21 +010030
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020031 CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020032 root hub.
Markus Klotzbuecher11310212006-11-27 11:51:21 +010033
34
35Endianness issues
36------------------
37
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020038The USB bus operates in little endian, but unfortunately there are
Heiko Schocher6f90e582017-06-14 05:49:40 +020039OHCI controllers that operate in big endian such as ppc4xx. For these the
40config option
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020041
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020042 CONFIG_SYS_OHCI_BE_CONTROLLER
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020043
Wolfgang Denk36882932007-08-13 21:57:53 +020044needs to be defined.
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020045
46
47PCI Controllers
48----------------
49
50You'll need to define
51
52 CONFIG_PCI_OHCI
53
Sergei Poselenov76d1ab22008-05-27 11:35:02 +020054If you have several USB PCI controllers, define
55
56 CONFIG_PCI_OHCI_DEVNO: number of the OHCI device in PCI list
57
58If undefined, the first instance found in PCI space will be used.
59
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020060PCI Controllers need to do byte swapping on register accesses, so they
61should to define:
Markus Klotzbuecher11310212006-11-27 11:51:21 +010062
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020063 CONFIG_SYS_OHCI_SWAP_REG_ACCESS