bcm53xx: add OHCI (USB 1.1) support

There is also a OHCI controller, activate it for USB 1.1 support.

This should close #19601.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45716 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Hauke Mehrtens 2015-05-23 14:54:44 +00:00
parent 610ca2edaf
commit e1a97a46f6
1 changed files with 4 additions and 26 deletions

View File

@ -76,42 +76,20 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
return -ENODEV;
/* TODO: Probably need checks here; is the core connected? */
@@ -234,18 +281,23 @@ static int bcma_hcd_probe(struct bcma_de
@@ -234,7 +281,12 @@ static int bcma_hcd_probe(struct bcma_de
if (!usb_dev)
return -ENOMEM;
- bcma_hcd_init_chip(dev);
-
- /* In AI chips EHCI is addrspace 0, OHCI is 1 */
- ohci_addr = dev->addr_s[0];
- if ((chipinfo->id == 0x5357 || chipinfo->id == 0x4749)
- && chipinfo->rev == 0)
- ohci_addr = 0x18009000;
-
- usb_dev->ohci_dev = bcma_hcd_create_pdev(dev, true, ohci_addr);
- if (IS_ERR(usb_dev->ohci_dev)) {
- err = PTR_ERR(usb_dev->ohci_dev);
- goto err_free_usb_dev;
+ if (IS_BUILTIN(CONFIG_ARCH_BCM_5301X) &&
+ chipinfo->id == BCMA_CHIP_ID_BCM4707) {
+ bcma_hcd_init_chip_arm(dev);
+ } else if(IS_BUILTIN(CONFIG_BCM47XX)) {
+ bcma_hcd_init_chip_mips(dev);
+
+ /* In AI chips EHCI is addrspace 0, OHCI is 1 */
+ ohci_addr = dev->addr_s[0];
+ if ((chipinfo->id == 0x5357 || chipinfo->id == 0x4749)
+ && chipinfo->rev == 0)
+ ohci_addr = 0x18009000;
+
+ usb_dev->ohci_dev = bcma_hcd_create_pdev(dev, true, ohci_addr);
+ if (IS_ERR(usb_dev->ohci_dev)) {
+ err = PTR_ERR(usb_dev->ohci_dev);
+ goto err_free_usb_dev;
+ }
}
+ }
usb_dev->ehci_dev = bcma_hcd_create_pdev(dev, false, dev->addr);
/* In AI chips EHCI is addrspace 0, OHCI is 1 */
ohci_addr = dev->addr_s[0];
@@ -306,6 +358,7 @@ static int bcma_hcd_resume(struct bcma_d
static const struct bcma_device_id bcma_hcd_table[] = {