1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- --- 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(ðernet_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);
-
|