bcm53xx: add OHCI (USB 1.1) support
authorHauke Mehrtens <hauke@hauke-m.de>
Sat, 23 May 2015 14:54:44 +0000 (14:54 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 23 May 2015 14:54:44 +0000 (14:54 +0000)
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>
SVN-Revision: 45716

target/linux/bcm53xx/patches-3.18/190-bcma_hcd_add_bcm5301x_support.patch

index 2e528b6a0b08e0f89728d0cd0a1903e95ef5105a..bffb7ae05271014ca98af96fcdeb3e5ecdf8e157 100644 (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[] = {