44 lines
1.1 KiB
Diff
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);
|
|
}
|
|
}
|