blob: 147ea514ae92c26127244e323408f1540cd0d71d [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
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020014 CFG_USB_OHCI_BOARD_INIT: call the board dependant hooks:
Markus Klotzbuecher11310212006-11-27 11:51:21 +010015
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020016 - extern int usb_board_init(void);
17 - extern int usb_board_stop(void);
18 - extern int usb_cpu_init_fail(void);
Markus Klotzbuecher11310212006-11-27 11:51:21 +010019
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020020 CFG_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
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020026 CFG_USB_OHCI_REGS_BASE: defines the base address of the OHCI
27 registers
Markus Klotzbuecher11310212006-11-27 11:51:21 +010028
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020029 CFG_USB_OHCI_SLOT_NAME: slot name
Markus Klotzbuecher11310212006-11-27 11:51:21 +010030
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020031 CFG_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the
32 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
39OHCI controllers that operate in big endian such as ppc4xx and
40mpc5xxx. For these the config option
41
42 CFG_OHCI_BE_CONTROLLER
43
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
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020063 CFG_OHCI_SWAP_REG_ACCESS