ar71xx: add AR933x specific USB setup function
authorGabor Juhos <juhosg@openwrt.org>
Wed, 21 Sep 2011 11:47:51 +0000 (11:47 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Wed, 21 Sep 2011 11:47:51 +0000 (11:47 +0000)
SVN-Revision: 28276

target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c
target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h

index 5d72b0c290db22d784a68770803f112d7818dae8..f6735713237add74b3f5b1444ef68ffb4e65e430 100644 (file)
@@ -165,6 +165,23 @@ static void __init ar91xx_usb_setup(void)
        platform_device_register(&ar71xx_ehci_device);
 }
 
+static void __init ar933x_usb_setup(void)
+{
+       ar71xx_device_reset_rmw(0, AR933X_RESET_USBSUS_OVERRIDE);
+       mdelay(10);
+
+       ar71xx_device_reset_rmw(AR933X_RESET_USB_HOST,
+                               AR933X_RESET_USBSUS_OVERRIDE);
+       mdelay(10);
+
+       ar71xx_device_reset_rmw(AR933X_RESET_USB_PHY,
+                               AR933X_RESET_USBSUS_OVERRIDE);
+       mdelay(10);
+
+       ar71xx_ehci_data.is_ar91xx = 1;
+       platform_device_register(&ar71xx_ehci_device);
+}
+
 void __init ar71xx_add_device_usb(void)
 {
        switch (ar71xx_soc) {
@@ -185,14 +202,17 @@ void __init ar71xx_add_device_usb(void)
 
        case AR71XX_SOC_AR9130:
        case AR71XX_SOC_AR9132:
-       case AR71XX_SOC_AR9330:
-       case AR71XX_SOC_AR9331:
        case AR71XX_SOC_AR9341:
        case AR71XX_SOC_AR9342:
        case AR71XX_SOC_AR9344:
                ar91xx_usb_setup();
                break;
 
+       case AR71XX_SOC_AR9330:
+       case AR71XX_SOC_AR9331:
+               ar933x_usb_setup();
+               break;
+
        default:
                BUG();
        }
index ec5e0bb2b578536e57a9aa4e6d1071515f529639..4a732e2afecb677941df93e9e58021e9bcc1f5ef 100644 (file)
@@ -678,6 +678,9 @@ void ar71xx_ddr_flush(u32 reg);
 #define AR933X_RESET_GE0_MDIO          BIT(22)
 #define AR933X_RESET_GE1_MAC           BIT(13)
 #define AR933X_RESET_GE0_MAC           BIT(9)
+#define AR933X_RESET_USB_HOST          BIT(5)
+#define AR933X_RESET_USB_PHY           BIT(4)
+#define AR933X_RESET_USBSUS_OVERRIDE   BIT(3)
 
 #define REV_ID_MAJOR_MASK      0xfff0
 #define REV_ID_MAJOR_AR71XX    0x00a0