blob: ba7cea83ca8eb2bf5825344edbcf4cf337c7b7b9 [file] [log] [blame]
Markus Klotzbuecher58b48572006-11-27 11:51:21 +01001Notes on the the generic USB-OHCI driver
2========================================
3
Marcel Ziswiler7817cb22007-12-30 03:30:46 +01004This driver (drivers/usb/usb_ohci.[ch]) is the result of the merge of
Markus Klotzbuecher58b48572006-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 Klotzbuecherfc43be42007-06-06 11:49:35 +020012 CONFIG_USB_OHCI_NEW: enable the new OHCI driver
Markus Klotzbuecher58b48572006-11-27 11:51:21 +010013
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020014 CONFIG_SYS_USB_OHCI_BOARD_INIT: call the board dependant hooks:
Markus Klotzbuecher58b48572006-11-27 11:51:21 +010015
Markus Klotzbuecherfc43be42007-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 Klotzbuecher58b48572006-11-27 11:51:21 +010019
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020020 CONFIG_SYS_USB_OHCI_CPU_INIT: call the cpu dependant hooks:
Markus Klotzbuecher58b48572006-11-27 11:51:21 +010021
Markus Klotzbuecherfc43be42007-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 Klotzbuecher58b48572006-11-27 11:51:21 +010025
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020026 CONFIG_SYS_USB_OHCI_REGS_BASE: defines the base address of the OHCI
Markus Klotzbuecherfc43be42007-06-06 11:49:35 +020027 registers
Markus Klotzbuecher58b48572006-11-27 11:51:21 +010028
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020029 CONFIG_SYS_USB_OHCI_SLOT_NAME: slot name
Markus Klotzbuecher58b48572006-11-27 11:51:21 +010030
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020031 CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the
Markus Klotzbuecherfc43be42007-06-06 11:49:35 +020032 root hub.
Markus Klotzbuecher58b48572006-11-27 11:51:21 +010033
34
35Endianness issues
36------------------
37
Markus Klotzbuecherfc43be42007-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
Markus Klotzbuecher58b48572006-11-27 11:51:21 +010041
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020042 CONFIG_SYS_OHCI_BE_CONTROLLER
Markus Klotzbuecherfc43be42007-06-06 11:49:35 +020043
Wolfgang Denkbe5d72d2007-08-13 21:57:53 +020044needs to be defined.
Markus Klotzbuecherfc43be42007-06-06 11:49:35 +020045
46
47PCI Controllers
48----------------
49
50You'll need to define
51
52 CONFIG_PCI_OHCI
53
Sergei Poselenov5a904e52008-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 Klotzbuecherfc43be42007-06-06 11:49:35 +020060PCI Controllers need to do byte swapping on register accesses, so they
61should to define:
62
Jean-Christophe PLAGNIOL-VILLARD6d0f6bc2008-10-16 15:01:15 +020063 CONFIG_SYS_OHCI_SWAP_REG_ACCESS