158b48577SMarkus KlotzbuecherNotes on the the generic USB-OHCI driver 258b48577SMarkus Klotzbuecher======================================== 358b48577SMarkus Klotzbuecher 47817cb20SMarcel ZiswilerThis driver (drivers/usb/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 146d0f6bcfSJean-Christophe PLAGNIOL-VILLARD CONFIG_SYS_USB_OHCI_BOARD_INIT: call the board dependant hooks: 1558b48577SMarkus Klotzbuecher 16*2a766db1SKrzysztof Kozlowski - extern int board_usb_init(void); 1758b48577SMarkus Klotzbuecher - extern int usb_board_stop(void); 1858b48577SMarkus Klotzbuecher - extern int usb_cpu_init_fail(void); 1958b48577SMarkus Klotzbuecher 206d0f6bcfSJean-Christophe PLAGNIOL-VILLARD CONFIG_SYS_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 266d0f6bcfSJean-Christophe PLAGNIOL-VILLARD CONFIG_SYS_USB_OHCI_REGS_BASE: defines the base address of the OHCI 27fc43be47SMarkus Klotzbuecher registers 2858b48577SMarkus Klotzbuecher 296d0f6bcfSJean-Christophe PLAGNIOL-VILLARD CONFIG_SYS_USB_OHCI_SLOT_NAME: slot name 3058b48577SMarkus Klotzbuecher 316d0f6bcfSJean-Christophe PLAGNIOL-VILLARD CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS: maximal number of ports of the 32fc43be47SMarkus Klotzbuecher root hub. 3358b48577SMarkus Klotzbuecher 3458b48577SMarkus Klotzbuecher 3558b48577SMarkus KlotzbuecherEndianness issues 3658b48577SMarkus Klotzbuecher------------------ 3758b48577SMarkus Klotzbuecher 38fc43be47SMarkus KlotzbuecherThe USB bus operates in little endian, but unfortunately there are 39064b55cfSHeiko SchocherOHCI controllers that operate in big endian such as ppc4xx. For these the 40064b55cfSHeiko Schocherconfig option 4158b48577SMarkus Klotzbuecher 426d0f6bcfSJean-Christophe PLAGNIOL-VILLARD CONFIG_SYS_OHCI_BE_CONTROLLER 43fc43be47SMarkus Klotzbuecher 44fc43be47SMarkus Klotzbuecherneeds to be defined. 45fc43be47SMarkus Klotzbuecher 46fc43be47SMarkus Klotzbuecher 47fc43be47SMarkus KlotzbuecherPCI Controllers 48fc43be47SMarkus Klotzbuecher---------------- 49fc43be47SMarkus Klotzbuecher 50fc43be47SMarkus KlotzbuecherYou'll need to define 51fc43be47SMarkus Klotzbuecher 52fc43be47SMarkus Klotzbuecher CONFIG_PCI_OHCI 53fc43be47SMarkus Klotzbuecher 545a904e56SSergei PoselenovIf you have several USB PCI controllers, define 555a904e56SSergei Poselenov 565a904e56SSergei Poselenov CONFIG_PCI_OHCI_DEVNO: number of the OHCI device in PCI list 575a904e56SSergei Poselenov 585a904e56SSergei PoselenovIf undefined, the first instance found in PCI space will be used. 595a904e56SSergei Poselenov 60fc43be47SMarkus KlotzbuecherPCI Controllers need to do byte swapping on register accesses, so they 61fc43be47SMarkus Klotzbuechershould to define: 62fc43be47SMarkus Klotzbuecher 636d0f6bcfSJean-Christophe PLAGNIOL-VILLARD CONFIG_SYS_OHCI_SWAP_REG_ACCESS 64