Files
openwrt_deco_e4r/target/linux/ar71xx/patches-3.3/663-QCA-MIPS-ath79-add-qca956x-usb2-support.patch

44 lines
1.1 KiB
Diff

--- a/arch/mips/ath79/dev-usb.c
+++ b/arch/mips/ath79/dev-usb.c
@@ -270,6 +270,21 @@ static void __init qca955x_usb_setup(u32 id)
}
}
+static void __init qca956x_usb_setup(u32 id)
+{
+ if (!id) {
+ ath79_usb_init_resource(ath79_ehci0_resources,
+ QCA956X_EHCI0_BASE, QCA956X_EHCI_SIZE,
+ ATH79_IP3_IRQ(0));
+ ath79_ehci0_device.dev.platform_data = &ath79_ehci0_pdata_v2;
+ } else {
+ ath79_usb_init_resource(ath79_ehci1_resources,
+ QCA956X_EHCI1_BASE, QCA956X_EHCI_SIZE,
+ ATH79_IP3_IRQ(1));
+ ath79_ehci1_device.dev.platform_data = &ath79_ehci1_pdata_v2;
+ }
+}
+
void ath79_init_usb_pdata(void)
{
if (soc_is_ar7241() || soc_is_ar7242())
@@ -285,6 +300,9 @@ void ath79_init_usb_pdata(void)
else if (soc_is_qca955x()) {
qca955x_usb_setup(0);
qca955x_usb_setup(1);
+ } else if (soc_is_qca956x()) {
+ qca956x_usb_setup(0);
+ qca956x_usb_setup(1);
} else
BUG();
}
@@ -299,7 +317,7 @@ void __init ath79_register_usb(void)
ath79_init_usb_pdata();
platform_device_register(&ath79_ehci0_device);
- if (soc_is_qca955x())
+ if (soc_is_qca955x() || soc_is_qca956x())
platform_device_register(&ath79_ehci1_device);
}
}