summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Ziswiler <marcel.ziswiler@toradex.com>2015-12-15 00:00:23 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2015-12-15 13:40:22 +0100
commitc8ead507f45de63a125b40096f0d59cb0aaa6780 (patch)
tree6f7b32d4de7c1a36a9ff8c58975310466cf8a8c0
parent2f4e897589ceeaffb5def6bf9119e9b9c4f3c9ee (diff)
Add Aptina AS0260 camera platform data. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
-rw-r--r--arch/arm/mach-tegra/board-colibri_t20.c47
-rw-r--r--arch/arm/mach-tegra/board-colibri_t30.c47
2 files changed, 88 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/board-colibri_t20.c b/arch/arm/mach-tegra/board-colibri_t20.c
index 3d67ebc5582e..014487d702c7 100644
--- a/arch/arm/mach-tegra/board-colibri_t20.c
+++ b/arch/arm/mach-tegra/board-colibri_t20.c
@@ -180,6 +180,43 @@ static struct platform_device soc_camera_adv7280 = {
};
#endif /* CONFIG_VIDEO_ADV7280 | CONFIG_VIDEO_ADV7280_MODULE */
+#if defined(CONFIG_SOC_CAMERA_AS0260) || \
+ defined(CONFIG_SOC_CAMERA_AS0260_MODULE)
+static struct i2c_board_info camera_i2c_as0260soc = {
+ I2C_BOARD_INFO("as0260soc", 0x48),
+};
+
+static struct tegra_camera_platform_data as0260soc_platform_data = {
+ .continuous_clk = true,
+ .disable_camera = tegra_camera_disable,
+ .enable_camera = tegra_camera_enable,
+ .flip_h = 0,
+ .flip_v = 0,
+ .internal_sync = false,
+ .lanes = 2,
+ .port = TEGRA_CAMERA_PORT_VIP,
+ .vip_h_active_start = 0,
+// .vip_h_active_start = 8F,
+ .vip_v_active_start = 0,
+// .vip_v_active_start = 12,
+};
+
+static struct soc_camera_link iclink_as0260soc = {
+ .board_info = &camera_i2c_as0260soc,
+ .bus_id = -1, /* This must match the .id of tegra_vi01_device */
+ .i2c_adapter_id = 0,
+ .priv = &as0260soc_platform_data,
+};
+
+static struct platform_device soc_camera_as0260soc = {
+ .dev = {
+ .platform_data = &iclink_as0260soc,
+ },
+ .id = 2,
+ .name = "soc-camera-pdrv",
+};
+#endif /* CONFIG_SOC_CAMERA_AS0260 | CONFIG_SOC_CAMERA_AS0260_MODULE */
+
#if defined(CONFIG_SOC_CAMERA_MAX9526) || \
defined(CONFIG_SOC_CAMERA_MAX9526_MODULE)
static struct i2c_board_info camera_i2c_max9526 = {
@@ -208,7 +245,7 @@ static struct platform_device soc_camera_max9526 = {
.dev = {
.platform_data = &iclink_max9526,
},
- .id = 2,
+ .id = 3,
.name = "soc-camera-pdrv",
};
#endif /* CONFIG_SOC_CAMERA_MAX9526 | CONFIG_SOC_CAMERA_MAX9526_MODULE */
@@ -241,7 +278,7 @@ static struct platform_device soc_camera_ov7670soc = {
.dev = {
.platform_data = &iclink_ov7670soc,
},
- .id = 3,
+ .id = 4,
.name = "soc-camera-pdrv",
};
#endif /* CONFIG_SOC_CAMERA_OV7670SOC | CONFIG_SOC_CAMERA_OV7670SOC_MODULE */
@@ -274,7 +311,7 @@ static struct platform_device soc_camera_tvp5150soc = {
.dev = {
.platform_data = &iclink_tvp5150soc,
},
- .id = 4,
+ .id = 5,
.name = "soc-camera-pdrv",
};
#endif /* CONFIG_SOC_CAMERA_TVP5150 | CONFIG_SOC_CAMERA_TVP5150_MODULE */
@@ -1680,6 +1717,10 @@ static void __init colibri_t20_init(void)
#if defined(CONFIG_VIDEO_ADV7280) || defined(CONFIG_VIDEO_ADV7280_MODULE)
platform_device_register(&soc_camera_adv7280);
#endif
+#if defined(CONFIG_SOC_CAMERA_AS0260) || \
+ defined(CONFIG_SOC_CAMERA_AS0260_MODULE)
+ platform_device_register(&soc_camera_as0260soc);
+#endif
#if defined(CONFIG_SOC_CAMERA_MAX9526) || \
defined(CONFIG_SOC_CAMERA_MAX9526_MODULE)
platform_device_register(&soc_camera_max9526);
diff --git a/arch/arm/mach-tegra/board-colibri_t30.c b/arch/arm/mach-tegra/board-colibri_t30.c
index 74fb5be46a25..e81d8e944a2b 100644
--- a/arch/arm/mach-tegra/board-colibri_t30.c
+++ b/arch/arm/mach-tegra/board-colibri_t30.c
@@ -175,6 +175,43 @@ static struct platform_device soc_camera_adv7280 = {
};
#endif /* CONFIG_VIDEO_ADV7280 | CONFIG_VIDEO_ADV7280_MODULE */
+#if defined(CONFIG_SOC_CAMERA_AS0260) || \
+ defined(CONFIG_SOC_CAMERA_AS0260_MODULE)
+static struct i2c_board_info camera_i2c_as0260soc = {
+ I2C_BOARD_INFO("as0260soc", 0x48),
+};
+
+static struct tegra_camera_platform_data as0260soc_platform_data = {
+ .continuous_clk = true,
+ .disable_camera = tegra_camera_disable,
+ .enable_camera = tegra_camera_enable,
+ .flip_h = 0,
+ .flip_v = 0,
+ .internal_sync = false,
+ .lanes = 2,
+ .port = TEGRA_CAMERA_PORT_VIP,
+ .vip_h_active_start = 0,
+// .vip_h_active_start = 8F,
+ .vip_v_active_start = 0,
+// .vip_v_active_start = 12,
+};
+
+static struct soc_camera_link iclink_as0260soc = {
+ .board_info = &camera_i2c_as0260soc,
+ .bus_id = -1, /* This must match the .id of tegra_vi01_device */
+ .i2c_adapter_id = 0,
+ .priv = &as0260soc_platform_data,
+};
+
+static struct platform_device soc_camera_as0260soc = {
+ .dev = {
+ .platform_data = &iclink_as0260soc,
+ },
+ .id = 2,
+ .name = "soc-camera-pdrv",
+};
+#endif /* CONFIG_SOC_CAMERA_AS0260 | CONFIG_SOC_CAMERA_AS0260_MODULE */
+
#if defined(CONFIG_SOC_CAMERA_MAX9526) || \
defined(CONFIG_SOC_CAMERA_MAX9526_MODULE)
static struct i2c_board_info camera_i2c_max9526 = {
@@ -203,7 +240,7 @@ static struct platform_device soc_camera_max9526 = {
.dev = {
.platform_data = &iclink_max9526,
},
- .id = 2,
+ .id = 3,
.name = "soc-camera-pdrv",
};
#endif /* CONFIG_SOC_CAMERA_MAX9526 | CONFIG_SOC_CAMERA_MAX9526_MODULE */
@@ -236,7 +273,7 @@ static struct platform_device soc_camera_ov7670soc = {
.dev = {
.platform_data = &iclink_ov7670soc,
},
- .id = 3,
+ .id = 4,
.name = "soc-camera-pdrv",
};
#endif /* CONFIG_SOC_CAMERA_OV7670SOC | CONFIG_SOC_CAMERA_OV7670SOC_MODULE */
@@ -269,7 +306,7 @@ static struct platform_device soc_camera_tvp5150soc = {
.dev = {
.platform_data = &iclink_tvp5150soc,
},
- .id = 4,
+ .id = 5,
.name = "soc-camera-pdrv",
};
#endif /* CONFIG_SOC_CAMERA_TVP5150 | CONFIG_SOC_CAMERA_TVP5150_MODULE */
@@ -1622,6 +1659,10 @@ static void __init colibri_t30_init(void)
#if defined(CONFIG_VIDEO_ADV7280) || defined(CONFIG_VIDEO_ADV7280_MODULE)
platform_device_register(&soc_camera_adv7280);
#endif
+#if defined(CONFIG_SOC_CAMERA_AS0260) || \
+ defined(CONFIG_SOC_CAMERA_AS0260_MODULE)
+ platform_device_register(&soc_camera_as0260soc);
+#endif
#if defined(CONFIG_SOC_CAMERA_MAX9526) || \
defined(CONFIG_SOC_CAMERA_MAX9526_MODULE)
platform_device_register(&soc_camera_max9526);