158b48577SMarkus KlotzbuecherNotes on the the generic USB-OHCI driver 258b48577SMarkus Klotzbuecher======================================== 358b48577SMarkus Klotzbuecher 458b48577SMarkus KlotzbuecherThis driver (drivers/usb_ohci.[ch]) is the result of the merge of 558b48577SMarkus Klotzbuechervarious existing OHCI drivers that were basically identical beside 658b48577SMarkus Klotzbuechercpu/board dependant initalization. This initalization has been moved 758b48577SMarkus Klotzbuecherinto cpu/board directories and are called via the hooks below. 858b48577SMarkus Klotzbuecher 958b48577SMarkus KlotzbuecherConfiguration options 1058b48577SMarkus Klotzbuecher---------------------- 1158b48577SMarkus Klotzbuecher 1258b48577SMarkus Klotzbuecher CONFIG_USB_OHCI_NEW: enable the new OHCI driver 1358b48577SMarkus Klotzbuecher 1458b48577SMarkus Klotzbuecher CFG_USB_OHCI_BOARD_INIT: call the board dependant hooks: 1558b48577SMarkus Klotzbuecher 1658b48577SMarkus Klotzbuecher - extern int usb_board_init(void); 1758b48577SMarkus Klotzbuecher - extern int usb_board_stop(void); 1858b48577SMarkus Klotzbuecher - extern int usb_cpu_init_fail(void); 1958b48577SMarkus Klotzbuecher 2058b48577SMarkus Klotzbuecher CFG_USB_OHCI_CPU_INIT: call the cpu dependant hooks: 2158b48577SMarkus Klotzbuecher 2258b48577SMarkus Klotzbuecher - extern int usb_cpu_init(void); 2358b48577SMarkus Klotzbuecher - extern int usb_cpu_stop(void); 2458b48577SMarkus Klotzbuecher - extern int usb_cpu_init_fail(void); 2558b48577SMarkus Klotzbuecher 26*fc43be47SMarkus Klotzbuecher CFG_USB_OHCI_REGS_BASE: defines the base address of the OHCI 27*fc43be47SMarkus Klotzbuecher registers 2858b48577SMarkus Klotzbuecher 2958b48577SMarkus Klotzbuecher CFG_USB_OHCI_SLOT_NAME: slot name 3058b48577SMarkus Klotzbuecher 31*fc43be47SMarkus Klotzbuecher CFG_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the 32*fc43be47SMarkus Klotzbuecher root hub. 3358b48577SMarkus Klotzbuecher 3458b48577SMarkus Klotzbuecher 3558b48577SMarkus KlotzbuecherEndianness issues 3658b48577SMarkus Klotzbuecher------------------ 3758b48577SMarkus Klotzbuecher 38*fc43be47SMarkus KlotzbuecherThe USB bus operates in little endian, but unfortunately there are 39*fc43be47SMarkus KlotzbuecherOHCI controllers that operate in big endian such as ppc4xx and 40*fc43be47SMarkus Klotzbuechermpc5xxx. For these the config option 4158b48577SMarkus Klotzbuecher 42*fc43be47SMarkus Klotzbuecher CFG_OHCI_BE_CONTROLLER 43*fc43be47SMarkus Klotzbuecher 44*fc43be47SMarkus Klotzbuecherneeds to be defined. 45*fc43be47SMarkus Klotzbuecher 46*fc43be47SMarkus Klotzbuecher 47*fc43be47SMarkus KlotzbuecherPCI Controllers 48*fc43be47SMarkus Klotzbuecher---------------- 49*fc43be47SMarkus Klotzbuecher 50*fc43be47SMarkus KlotzbuecherYou'll need to define 51*fc43be47SMarkus Klotzbuecher 52*fc43be47SMarkus Klotzbuecher CONFIG_PCI_OHCI 53*fc43be47SMarkus Klotzbuecher 54*fc43be47SMarkus KlotzbuecherPCI Controllers need to do byte swapping on register accesses, so they 55*fc43be47SMarkus Klotzbuechershould to define: 56*fc43be47SMarkus Klotzbuecher 57*fc43be47SMarkus Klotzbuecher CFG_OHCI_SWAP_REG_ACCESS 5858b48577SMarkus Klotzbuecher 5958b48577SMarkus Klotzbuecher 6058b48577SMarkus Klotzbuecher 61