blob: c44c5014743e614990fa280a581acbf0b757180b [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
54PCI Controllers need to do byte swapping on register accesses, so they
55should to define:
Markus Klotzbuecher11310212006-11-27 11:51:21 +010056
Markus Klotzbuecher18f5ccb2007-06-06 11:49:35 +020057 CFG_OHCI_SWAP_REG_ACCESS