msm: camera: Convert CSIPHY into platform device
Make CSIPHY platform devices as well as
v4l2 sub-devices. They are created at system boot-up,
and registered during camera open.
The subdevices are decoupled from the v4l2 devices by
using device model APIs to find and register them.
Change-Id: Ie7cb68fb0ef41735c07ee2001b75cb6c139a3eb4
Signed-off-by: Kevin Chan <ktchan@codeaurora.org>
diff --git a/arch/arm/mach-msm/devices-8960.c b/arch/arm/mach-msm/devices-8960.c
index 5d0a13c..d9bf7db 100644
--- a/arch/arm/mach-msm/devices-8960.c
+++ b/arch/arm/mach-msm/devices-8960.c
@@ -1035,18 +1035,6 @@
.flags = IORESOURCE_IRQ,
},
{
- .name = "csiphy0",
- .start = 0x04800C00,
- .end = 0x04800C00 + SZ_1K - 1,
- .flags = IORESOURCE_MEM,
- },
- {
- .name = "csiphy0",
- .start = CSIPHY_4LN_IRQ,
- .end = CSIPHY_4LN_IRQ,
- .flags = IORESOURCE_IRQ,
- },
- {
.name = "csid1",
.start = 0x04800400,
.end = 0x04800400 + SZ_1K - 1,
@@ -1059,18 +1047,6 @@
.flags = IORESOURCE_IRQ,
},
{
- .name = "csiphy1",
- .start = 0x04801000,
- .end = 0x04801000 + SZ_1K - 1,
- .flags = IORESOURCE_MEM,
- },
- {
- .name = "csiphy1",
- .start = MSM8960_CSIPHY_2LN_IRQ,
- .end = MSM8960_CSIPHY_2LN_IRQ,
- .flags = IORESOURCE_IRQ,
- },
- {
.name = "s3d_rw",
.start = 0x008003E0,
.end = 0x008003E0 + SZ_16 - 1,
@@ -1091,6 +1067,50 @@
s_info->num_resources = ARRAY_SIZE(msm_camera_resources);
return 0;
}
+
+static struct resource msm_csiphy0_resources[] = {
+ {
+ .name = "csiphy",
+ .start = 0x04800C00,
+ .end = 0x04800C00 + SZ_1K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .name = "csiphy",
+ .start = CSIPHY_4LN_IRQ,
+ .end = CSIPHY_4LN_IRQ,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static struct resource msm_csiphy1_resources[] = {
+ {
+ .name = "csiphy",
+ .start = 0x04801000,
+ .end = 0x04801000 + SZ_1K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .name = "csiphy",
+ .start = MSM8960_CSIPHY_2LN_IRQ,
+ .end = MSM8960_CSIPHY_2LN_IRQ,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+struct platform_device msm8960_device_csiphy0 = {
+ .name = "msm_csiphy",
+ .id = 0,
+ .resource = msm_csiphy0_resources,
+ .num_resources = ARRAY_SIZE(msm_csiphy0_resources),
+};
+
+struct platform_device msm8960_device_csiphy1 = {
+ .name = "msm_csiphy",
+ .id = 1,
+ .resource = msm_csiphy1_resources,
+ .num_resources = ARRAY_SIZE(msm_csiphy1_resources),
+};
#endif
static struct resource resources_ssbi_pm8921[] = {