diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2011-11-12 10:54:20 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2011-11-12 10:54:20 +0000 |
commit | c3d1b40766d0c8fdecef0b84d7030a7414e1c4e6 (patch) | |
tree | 9ced6c00a2471544f4d56cdf5d3b6bc21d0103bd | |
parent | 86beed68cae2527f9d5745240ca248085238885e (diff) | |
download | upstream-c3d1b40766d0c8fdecef0b84d7030a7414e1c4e6.tar.gz upstream-c3d1b40766d0c8fdecef0b84d7030a7414e1c4e6.tar.bz2 upstream-c3d1b40766d0c8fdecef0b84d7030a7414e1c4e6.zip |
ar71xx: add AR934x specific USB setup
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28980 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c | 33 |
1 files changed, 30 insertions, 3 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 f673571323..57c7ef292c 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/dev-usb.c @@ -182,6 +182,30 @@ static void __init ar933x_usb_setup(void) platform_device_register(&ar71xx_ehci_device); } +static void __init ar934x_usb_setup(void) +{ + u32 bootstrap; + + bootstrap = ar71xx_reset_rr(AR934X_RESET_REG_BOOTSTRAP); + if (bootstrap & AR934X_BOOTSTRAP_USB_MODE_DEVICE) + return; + + ar71xx_device_stop(AR934X_RESET_USBSUS_OVERRIDE); + udelay(1000); + + ar71xx_device_start(AR934X_RESET_USB_PHY); + udelay(1000); + + ar71xx_device_start(AR934X_RESET_USB_PHY_ANALOG); + udelay(1000); + + ar71xx_device_start(AR934X_RESET_USB_HOST); + udelay(1000); + + ar71xx_ehci_data.is_ar91xx = 1; + platform_device_register(&ar71xx_ehci_device); +} + void __init ar71xx_add_device_usb(void) { switch (ar71xx_soc) { @@ -202,9 +226,6 @@ void __init ar71xx_add_device_usb(void) case AR71XX_SOC_AR9130: case AR71XX_SOC_AR9132: - case AR71XX_SOC_AR9341: - case AR71XX_SOC_AR9342: - case AR71XX_SOC_AR9344: ar91xx_usb_setup(); break; @@ -213,6 +234,12 @@ void __init ar71xx_add_device_usb(void) ar933x_usb_setup(); break; + case AR71XX_SOC_AR9341: + case AR71XX_SOC_AR9342: + case AR71XX_SOC_AR9344: + ar934x_usb_setup(); + break; + default: BUG(); } |