]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
ARM: ardbeg: enable imx135 V4L2 sensor driver
authorBryan Wu <pengw@nvidia.com>
Sat, 15 Feb 2014 01:22:06 +0000 (17:22 -0800)
committerWinnie Hsu <whsu@nvidia.com>
Fri, 26 Sep 2014 17:49:36 +0000 (10:49 -0700)
Bug 1380143

Change-Id: I9292465b0652c5287db6bbc97a08c76c1ad48484
Signed-off-by: Bryan Wu <pengw@nvidia.com>
Reviewed-on: http://git-master/r/337471
(cherry picked from commit e83a8827e9888f567a5859ecac6a1041edcf0db9)
Reviewed-on: http://git-master/r/498937
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
Reviewed-by: Winnie Hsu <whsu@nvidia.com>
arch/arm/mach-tegra/board-ardbeg-sensors.c

index 8fa254fb04976d2ea0a22107c8b3c6210d8a660f..e67e1f528dd402b586120a5b53704a551812f968 100644 (file)
@@ -184,7 +184,7 @@ static struct tegra_camera_platform_data ardbeg_camera_platform_data = {
 };
 
 static struct soc_camera_link ardbeg_soc_camera_link = {
-       .bus_id         = 0, /* This must match the .id of tegra_vi01_device */
+       .bus_id         = 1, /* This must match the .id of tegra_vi01_device */
        .add_device     = ardbeg_soc_camera_add,
        .del_device     = ardbeg_soc_camera_del,
        .module_name    = "soc_camera_platform",
@@ -213,13 +213,52 @@ static void ardbeg_soc_camera_del(struct soc_camera_device *icd)
 
 static struct platform_device ardbeg_soc_camera_device = {
        .name   = "soc-camera-pdrv",
-       .id     = 0,
+       .id     = 1,
        .dev    = {
                .platform_data = &ardbeg_soc_camera_link,
        },
 };
 #endif
 
+#if IS_ENABLED(CONFIG_SOC_CAMERA_IMX135)
+static int ardbeg_imx135_power(struct device *dev, int enable)
+{
+       return 0;
+}
+
+struct imx135_platform_data ardbeg_imx135_data;
+
+static struct i2c_board_info ardbeg_imx135_camera_i2c_device = {
+       I2C_BOARD_INFO("imx135_v4l2", 0x10),
+       .platform_data = &ardbeg_imx135_data,
+};
+
+static struct tegra_camera_platform_data ardbeg_imx135_camera_platform_data = {
+       .flip_v                 = 0,
+       .flip_h                 = 0,
+       .port                   = TEGRA_CAMERA_PORT_CSI_A,
+       .lanes                  = 4,
+       .continuous_clk         = 0,
+};
+
+static struct soc_camera_link imx135_iclink = {
+       .bus_id         = 0, /* This must match the .id of tegra_vi01_device */
+       .board_info     = &ardbeg_imx135_camera_i2c_device,
+       .module_name    = "imx135_v4l2",
+       .i2c_adapter_id = 2,
+       .power          = ardbeg_imx135_power,
+       .priv           = &ardbeg_imx135_camera_platform_data,
+};
+
+static struct platform_device ardbeg_imx135_soc_camera_device = {
+       .name   = "soc-camera-pdrv",
+       .id     = 0,
+       .dev    = {
+               .platform_data = &imx135_iclink,
+       },
+};
+#endif
+
 static struct regulator *ardbeg_vcmvdd;
 
 static int ardbeg_get_extra_regulators(void)
@@ -1099,6 +1138,10 @@ static int ardbeg_camera_init(void)
        platform_device_register(&ardbeg_soc_camera_device);
 #endif
 
+#if IS_ENABLED(CONFIG_SOC_CAMERA_IMX135)
+       platform_device_register(&ardbeg_imx135_soc_camera_device);
+#endif
+
        return 0;
 }