aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/gemini/patches-4.4/131-arm-gemini-add-usb-device.patch
diff options
context:
space:
mode:
authorRoman Yeryomin <roman@advem.lv>2016-08-22 02:36:50 +0300
committerJo-Philipp Wich <jo@mein.io>2016-08-23 15:41:27 +0200
commitf046737e92f9a13acbe9139e1ded83287d31eeb5 (patch)
treea99693b42935d5d4ea1addf3514003df4e7898bd /target/linux/gemini/patches-4.4/131-arm-gemini-add-usb-device.patch
parente58c20aac319e5d9722caed2d64b6338c6b04b85 (diff)
downloadupstream-f046737e92f9a13acbe9139e1ded83287d31eeb5.tar.gz
upstream-f046737e92f9a13acbe9139e1ded83287d31eeb5.tar.bz2
upstream-f046737e92f9a13acbe9139e1ded83287d31eeb5.zip
gemini: add Linux 4.4 support
Signed-off-by: Roman Yeryomin <roman@advem.lv> [Jo-Philipp Wich: change commit title] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'target/linux/gemini/patches-4.4/131-arm-gemini-add-usb-device.patch')
-rw-r--r--target/linux/gemini/patches-4.4/131-arm-gemini-add-usb-device.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/target/linux/gemini/patches-4.4/131-arm-gemini-add-usb-device.patch b/target/linux/gemini/patches-4.4/131-arm-gemini-add-usb-device.patch
new file mode 100644
index 0000000000..a75a5c1c6c
--- /dev/null
+++ b/target/linux/gemini/patches-4.4/131-arm-gemini-add-usb-device.patch
@@ -0,0 +1,77 @@
+--- a/arch/arm/mach-gemini/devices.c
++++ b/arch/arm/mach-gemini/devices.c
+@@ -187,3 +187,64 @@ int platform_register_ethernet(struct ge
+
+ return platform_device_register(&ethernet_device);
+ }
++
++static struct resource usb0_resources[] = {
++ {
++ .start = GEMINI_USB0_BASE,
++ .end = GEMINI_USB0_BASE + 0xfff,
++ .flags = IORESOURCE_MEM,
++ },
++ {
++ .start = IRQ_USB0,
++ .end = IRQ_USB0,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static struct resource usb1_resources[] = {
++ {
++ .start = GEMINI_USB1_BASE,
++ .end = GEMINI_USB1_BASE + 0xfff,
++ .flags = IORESOURCE_MEM,
++ },
++ {
++ .start = IRQ_USB1,
++ .end = IRQ_USB1,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static u64 usb0_dmamask = 0xffffffffUL;
++static u64 usb1_dmamask = 0xffffffffUL;
++
++static struct platform_device usb_device[] = {
++ {
++ .name = "ehci-fotg2",
++ .id = 0,
++ .dev = {
++ .dma_mask = &usb0_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++ .num_resources = ARRAY_SIZE(usb0_resources),
++ .resource = usb0_resources,
++ },
++ {
++ .name = "ehci-fotg2",
++ .id = 1,
++ .dev = {
++ .dma_mask = &usb1_dmamask,
++ .coherent_dma_mask = 0xffffffff,
++ },
++ .num_resources = ARRAY_SIZE(usb1_resources),
++ .resource = usb1_resources,
++ },
++};
++
++int __init platform_register_usb(unsigned int id)
++{
++ if (id > 1)
++ return -EINVAL;
++
++ return platform_device_register(&usb_device[id]);
++}
++
+--- a/arch/arm/mach-gemini/common.h
++++ b/arch/arm/mach-gemini/common.h
+@@ -30,6 +30,7 @@ extern int platform_register_pflash(unsi
+ unsigned int nr_parts);
+ extern int platform_register_watchdog(void);
+ extern int platform_register_ethernet(struct gemini_gmac_platform_data *pdata);
++extern int platform_register_usb(unsigned int id);
+
+ extern void gemini_restart(enum reboot_mode mode, const char *cmd);
+