Merge with /home/stefan/git/u-boot/u-boot-ppc4xx
[platform/kernel/u-boot.git] / doc / README.generic_usb_ohci
1 Notes on the the generic USB-OHCI driver
2 ========================================
3
4 This driver (drivers/usb_ohci.[ch]) is the result of the merge of
5 various existing OHCI drivers that were basically identical beside
6 cpu/board dependant initalization. This initalization has been moved
7 into cpu/board directories and are called via the hooks below.
8
9 Configuration options
10 ----------------------
11
12         CONFIG_USB_OHCI_NEW: enable the new OHCI driver
13
14         CFG_USB_OHCI_BOARD_INIT: call the board dependant hooks:
15
16                   - extern int usb_board_init(void);
17                   - extern int usb_board_stop(void);
18                   - extern int usb_cpu_init_fail(void);
19
20         CFG_USB_OHCI_CPU_INIT: call the cpu dependant hooks:
21
22                   - extern int usb_cpu_init(void);
23                   - extern int usb_cpu_stop(void);
24                   - extern int usb_cpu_init_fail(void);
25
26         CFG_USB_OHCI_REGS_BASE: defines the base address of the OHCI
27                                 registers
28
29         CFG_USB_OHCI_SLOT_NAME: slot name
30
31         CFG_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the
32                                      root hub.
33
34
35 Endianness issues
36 ------------------
37
38 The USB bus operates in little endian, but unfortunately there are
39 OHCI controllers that operate in big endian such as ppc4xx and
40 mpc5xxx. For these the config option
41
42         CFG_OHCI_BE_CONTROLLER
43
44 needs to be defined.
45
46
47 PCI Controllers
48 ----------------
49
50 You'll need to define
51
52         CONFIG_PCI_OHCI
53
54 PCI Controllers need to do byte swapping on register accesses, so they
55 should to define:
56
57         CFG_OHCI_SWAP_REG_ACCESS