2006-11-27 18:51:21 +08:00
|
|
|
Notes on the the generic USB-OHCI driver
|
|
|
|
========================================
|
|
|
|
|
2007-12-30 10:30:46 +08:00
|
|
|
This driver (drivers/usb/usb_ohci.[ch]) is the result of the merge of
|
2006-11-27 18:51:21 +08:00
|
|
|
various existing OHCI drivers that were basically identical beside
|
|
|
|
cpu/board dependant initalization. This initalization has been moved
|
|
|
|
into cpu/board directories and are called via the hooks below.
|
|
|
|
|
|
|
|
Configuration options
|
|
|
|
----------------------
|
|
|
|
|
2007-06-06 17:49:35 +08:00
|
|
|
CONFIG_USB_OHCI_NEW: enable the new OHCI driver
|
2006-11-27 18:51:21 +08:00
|
|
|
|
2008-10-16 21:01:15 +08:00
|
|
|
CONFIG_SYS_USB_OHCI_BOARD_INIT: call the board dependant hooks:
|
2006-11-27 18:51:21 +08:00
|
|
|
|
2007-06-06 17:49:35 +08:00
|
|
|
- extern int usb_board_init(void);
|
|
|
|
- extern int usb_board_stop(void);
|
|
|
|
- extern int usb_cpu_init_fail(void);
|
2006-11-27 18:51:21 +08:00
|
|
|
|
2008-10-16 21:01:15 +08:00
|
|
|
CONFIG_SYS_USB_OHCI_CPU_INIT: call the cpu dependant hooks:
|
2006-11-27 18:51:21 +08:00
|
|
|
|
2007-06-06 17:49:35 +08:00
|
|
|
- extern int usb_cpu_init(void);
|
|
|
|
- extern int usb_cpu_stop(void);
|
|
|
|
- extern int usb_cpu_init_fail(void);
|
2006-11-27 18:51:21 +08:00
|
|
|
|
2008-10-16 21:01:15 +08:00
|
|
|
CONFIG_SYS_USB_OHCI_REGS_BASE: defines the base address of the OHCI
|
2007-06-06 17:49:35 +08:00
|
|
|
registers
|
2006-11-27 18:51:21 +08:00
|
|
|
|
2008-10-16 21:01:15 +08:00
|
|
|
CONFIG_SYS_USB_OHCI_SLOT_NAME: slot name
|
2006-11-27 18:51:21 +08:00
|
|
|
|
2008-10-16 21:01:15 +08:00
|
|
|
CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the
|
2007-06-06 17:49:35 +08:00
|
|
|
root hub.
|
2006-11-27 18:51:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
Endianness issues
|
|
|
|
------------------
|
|
|
|
|
2007-06-06 17:49:35 +08:00
|
|
|
The USB bus operates in little endian, but unfortunately there are
|
2017-06-14 11:49:40 +08:00
|
|
|
OHCI controllers that operate in big endian such as ppc4xx. For these the
|
|
|
|
config option
|
2006-11-27 18:51:21 +08:00
|
|
|
|
2008-10-16 21:01:15 +08:00
|
|
|
CONFIG_SYS_OHCI_BE_CONTROLLER
|
2007-06-06 17:49:35 +08:00
|
|
|
|
2007-08-14 03:57:53 +08:00
|
|
|
needs to be defined.
|
2007-06-06 17:49:35 +08:00
|
|
|
|
|
|
|
|
|
|
|
PCI Controllers
|
|
|
|
----------------
|
|
|
|
|
|
|
|
You'll need to define
|
|
|
|
|
|
|
|
CONFIG_PCI_OHCI
|
|
|
|
|
2008-05-27 17:35:02 +08:00
|
|
|
If you have several USB PCI controllers, define
|
|
|
|
|
|
|
|
CONFIG_PCI_OHCI_DEVNO: number of the OHCI device in PCI list
|
|
|
|
|
|
|
|
If undefined, the first instance found in PCI space will be used.
|
|
|
|
|
2007-06-06 17:49:35 +08:00
|
|
|
PCI Controllers need to do byte swapping on register accesses, so they
|
|
|
|
should to define:
|
|
|
|
|
2008-10-16 21:01:15 +08:00
|
|
|
CONFIG_SYS_OHCI_SWAP_REG_ACCESS
|