diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2011-09-21 11:47:51 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2011-09-21 11:47:51 +0000 |
commit | d3617ac7d3ce397f78678ea1b93b952f3e93af61 (patch) | |
tree | 5f6928c6504358229f1118d51db82ffb9ef300b9 | |
parent | 91340d8af70b41c3387677b3410b889e0a3c40d7 (diff) | |
download | upstream-d3617ac7d3ce397f78678ea1b93b952f3e93af61.tar.gz upstream-d3617ac7d3ce397f78678ea1b93b952f3e93af61.tar.bz2 upstream-d3617ac7d3ce397f78678ea1b93b952f3e93af61.zip |
ar71xx: add AR933x specific USB setup function
SVN-Revision: 28276
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c | 24 | ||||
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h | 3 |
2 files changed, 25 insertions, 2 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c index 5d72b0c290..f673571323 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c @@ -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(); } diff --git a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h index ec5e0bb2b5..4a732e2afe 100644 --- a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h +++ b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ar71xx/ar71xx.h @@ -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 |