Commit ac7c4ea0 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Simon Horman

ARM: shmobile: marzen: add USB OHCI driver support

This patch supports CN21/CN22 USB 1.x (port 0/1/2),
and enable input event on defconfig
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
parent 94e1f7fb
...@@ -61,9 +61,8 @@ CONFIG_SMSC911X=y ...@@ -61,9 +61,8 @@ CONFIG_SMSC911X=y
# CONFIG_NET_VENDOR_STMICRO is not set # CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_WLAN is not set # CONFIG_WLAN is not set
# CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_KEYBOARD is not set CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_MOUSE is not set
# CONFIG_SERIO is not set
# CONFIG_VT is not set # CONFIG_VT is not set
# CONFIG_LEGACY_PTYS is not set # CONFIG_LEGACY_PTYS is not set
# CONFIG_DEVKMEM is not set # CONFIG_DEVKMEM is not set
...@@ -86,6 +85,8 @@ CONFIG_MMC=y ...@@ -86,6 +85,8 @@ CONFIG_MMC=y
CONFIG_MMC_SDHI=y CONFIG_MMC_SDHI=y
CONFIG_USB=y CONFIG_USB=y
CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_HCD_PLATFORM=y
CONFIG_USB_EHCI_HCD_PLATFORM=y CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_STORAGE=y CONFIG_USB_STORAGE=y
CONFIG_UIO=y CONFIG_UIO=y
......
...@@ -30,6 +30,7 @@ config ARCH_R8A7779 ...@@ -30,6 +30,7 @@ config ARCH_R8A7779
select CPU_V7 select CPU_V7
select SH_CLK_CPG select SH_CLK_CPG
select USB_ARCH_HAS_EHCI select USB_ARCH_HAS_EHCI
select USB_ARCH_HAS_OHCI
config ARCH_EMEV2 config ARCH_EMEV2
bool "Emma Mobile EV2" bool "Emma Mobile EV2"
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <linux/mfd/tmio.h> #include <linux/mfd/tmio.h>
#include <linux/usb/otg.h> #include <linux/usb/otg.h>
#include <linux/usb/ehci_pdriver.h> #include <linux/usb/ehci_pdriver.h>
#include <linux/usb/ohci_pdriver.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/r8a7779.h> #include <mach/r8a7779.h>
...@@ -255,9 +256,65 @@ static struct platform_device ehci1_device = { ...@@ -255,9 +256,65 @@ static struct platform_device ehci1_device = {
.resource = ehci1_resources, .resource = ehci1_resources,
}; };
static struct usb_ohci_pdata ohcix_pdata = {
.power_on = usb_power_on,
.power_off = usb_power_off,
.power_suspend = usb_power_off,
};
static struct resource ohci0_resources[] = {
[0] = {
.start = 0xffe70400,
.end = 0xffe70800 - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = gic_spi(44),
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device ohci0_device = {
.name = "ohci-platform",
.id = 0,
.dev = {
.dma_mask = &ohci0_device.dev.coherent_dma_mask,
.coherent_dma_mask = 0xffffffff,
.platform_data = &ohcix_pdata,
},
.num_resources = ARRAY_SIZE(ohci0_resources),
.resource = ohci0_resources,
};
static struct resource ohci1_resources[] = {
[0] = {
.start = 0xfff70400,
.end = 0xfff70800 - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = gic_spi(45),
.flags = IORESOURCE_IRQ,
},
};
static struct platform_device ohci1_device = {
.name = "ohci-platform",
.id = 1,
.dev = {
.dma_mask = &ohci1_device.dev.coherent_dma_mask,
.coherent_dma_mask = 0xffffffff,
.platform_data = &ohcix_pdata,
},
.num_resources = ARRAY_SIZE(ohci1_resources),
.resource = ohci1_resources,
};
static struct platform_device *marzen_late_devices[] __initdata = { static struct platform_device *marzen_late_devices[] __initdata = {
&ehci0_device, &ehci0_device,
&ehci1_device, &ehci1_device,
&ohci0_device,
&ohci1_device,
}; };
void __init marzen_init_late(void) void __init marzen_init_late(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment