devices: msm8625: Add USB OTG, gadget and host platform devices
To support single binary for 7627a and 8625, define
USB OTG, gadget and host platform device for 8625.
Change-Id: I73e9b9e8e2d9083b8360d5a27fc29a5875b208bd
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
diff --git a/arch/arm/mach-msm/devices-msm7x27a.c b/arch/arm/mach-msm/devices-msm7x27a.c
index 043ec0e..bd08257 100644
--- a/arch/arm/mach-msm/devices-msm7x27a.c
+++ b/arch/arm/mach-msm/devices-msm7x27a.c
@@ -178,17 +178,6 @@
&msm_device_hsusb_host,
};
-int msm_add_host(unsigned int host, struct msm_usb_host_platform_data *plat)
-{
- struct platform_device *pdev;
-
- pdev = msm_host_devices[host];
- if (!pdev)
- return -ENODEV;
- pdev->dev.platform_data = plat;
- return platform_device_register(pdev);
-}
-
static struct resource msm_dmov_resource[] = {
{
.start = INT_ADM_AARM,
@@ -1126,6 +1115,96 @@
return platform_device_register(pdev);
}
+static struct resource msm8625_resources_hsusb_otg[] = {
+ {
+ .start = MSM_HSUSB_PHYS,
+ .end = MSM_HSUSB_PHYS + SZ_1K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .start = MSM8625_INT_USB_HS,
+ .end = MSM8625_INT_USB_HS,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+struct platform_device msm8625_device_otg = {
+ .name = "msm_otg",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(msm8625_resources_hsusb_otg),
+ .resource = msm8625_resources_hsusb_otg,
+ .dev = {
+ .dma_mask = &dma_mask,
+ .coherent_dma_mask = 0xffffffffULL,
+ },
+};
+
+static struct resource msm8625_resources_gadget_peripheral[] = {
+ {
+ .start = MSM_HSUSB_PHYS,
+ .end = MSM_HSUSB_PHYS + SZ_1K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .start = MSM8625_INT_USB_HS,
+ .end = MSM8625_INT_USB_HS,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+struct platform_device msm8625_device_gadget_peripheral = {
+ .name = "msm_hsusb",
+ .id = -1,
+ .num_resources = ARRAY_SIZE(msm8625_resources_gadget_peripheral),
+ .resource = msm8625_resources_gadget_peripheral,
+ .dev = {
+ .dma_mask = &dma_mask,
+ .coherent_dma_mask = 0xffffffffULL,
+ },
+};
+
+static struct resource msm8625_resources_hsusb_host[] = {
+ {
+ .start = MSM_HSUSB_PHYS,
+ .end = MSM_HSUSB_PHYS + SZ_1K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .start = MSM8625_INT_USB_HS,
+ .end = MSM8625_INT_USB_HS,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+struct platform_device msm8625_device_hsusb_host = {
+ .name = "msm_hsusb_host",
+ .id = 0,
+ .num_resources = ARRAY_SIZE(msm8625_resources_hsusb_host),
+ .resource = msm8625_resources_hsusb_host,
+ .dev = {
+ .dma_mask = &dma_mask,
+ .coherent_dma_mask = 0xffffffffULL,
+ },
+};
+
+static struct platform_device *msm8625_host_devices[] = {
+ &msm8625_device_hsusb_host,
+};
+
+int msm_add_host(unsigned int host, struct msm_usb_host_platform_data *plat)
+{
+ struct platform_device *pdev;
+
+ if (cpu_is_msm8625())
+ pdev = msm8625_host_devices[host];
+ else
+ pdev = msm_host_devices[host];
+ if (!pdev)
+ return -ENODEV;
+ pdev->dev.platform_data = plat;
+ return platform_device_register(pdev);
+}
+
static struct clk_lookup msm_clock_8625_dummy[] = {
CLK_DUMMY("core_clk", adm_clk.c, "msm_dmov", 0),
CLK_DUMMY("adsp_clk", adsp_clk.c, NULL, 0),
diff --git a/arch/arm/mach-msm/devices.h b/arch/arm/mach-msm/devices.h
index 2cc208a..c2bf4ba 100644
--- a/arch/arm/mach-msm/devices.h
+++ b/arch/arm/mach-msm/devices.h
@@ -134,6 +134,9 @@
extern struct platform_device msm8625_device_sdc2;
extern struct platform_device msm8625_device_sdc3;
extern struct platform_device msm8625_device_sdc4;
+extern struct platform_device msm8625_device_gadget_peripheral;
+extern struct platform_device msm8625_device_hsusb_host;
+extern struct platform_device msm8625_device_otg;
extern struct platform_device msm_slim_ctrl;
extern struct platform_device msm_device_sps;