summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Chen <frankc@nvidia.com>2016-07-05 14:01:30 -0700
committerMark Salyzyn <salyzyn@google.com>2016-08-19 11:23:02 -0700
commit230b60212abc38b04999b95be2cc9e693254b121 (patch)
tree957e2a99b1eb3479f819bc4ddaeac35c8aff34e2
parente693691b7f90d7516cb0c1261ab35fa233acbc91 (diff)
downloadtegra-230b60212abc38b04999b95be2cc9e693254b121.tar.gz
flounder: register camera devices using boardfiles
Stop using camera.pcl driver to do camera auto detect since it is causing security issues. Switch back to use kernel boardfiles for device registration. Bug: 30204201 Signed-off-by: Frank Chen <frankc@nvidia.com> Change-Id: I941d099a6da33cc9283fc97cccb0e8556062d49e
-rw-r--r--arch/arm/mach-tegra/board-flounder-sensors.c43
-rw-r--r--arch/arm/mach-tegra/board-flounder.c3
2 files changed, 26 insertions, 20 deletions
diff --git a/arch/arm/mach-tegra/board-flounder-sensors.c b/arch/arm/mach-tegra/board-flounder-sensors.c
index 4725e5f2c283..687a0292f3a0 100644
--- a/arch/arm/mach-tegra/board-flounder-sensors.c
+++ b/arch/arm/mach-tegra/board-flounder-sensors.c
@@ -304,6 +304,7 @@ static int flounder_imx219_power_off(struct imx219_power_rail *pw)
static struct imx219_platform_data flounder_imx219_pdata = {
.power_on = flounder_imx219_power_on,
.power_off = flounder_imx219_power_off,
+ .mclk_name = "mclk",
};
static int flounder_ov9760_power_on(struct ov9760_power_rail *pw)
@@ -394,25 +395,27 @@ static struct tps61310_platform_data flounder_tps61310_pdata = {
.pinstate = &flounder_tps61310_pinstate,
};
-static struct camera_data_blob flounder_camera_lut[] = {
- {"flounder_imx219_pdata", &flounder_imx219_pdata},
- {"flounder_drv201_pdata", &flounder_drv201_pdata},
- {"flounder_tps61310_pdata", &flounder_tps61310_pdata},
- {"flounder_ov9760_pdata", &flounder_ov9760_pdata},
- {},
+static struct i2c_board_info flounder_camera_board_info[] = {
+ {
+ I2C_BOARD_INFO("imx219", 0x10),
+ .platform_data = &flounder_imx219_pdata,
+ },
+ {
+ I2C_BOARD_INFO("ov9760", 0x36),
+ .platform_data = &flounder_ov9760_pdata,
+ },
+ {
+ I2C_BOARD_INFO("drv201", 0xe),
+ .platform_data = &flounder_drv201_pdata,
+ },
};
-void __init flounder_camera_auxdata(void *data)
-{
- struct of_dev_auxdata *aux_lut = data;
- while (aux_lut && aux_lut->compatible) {
- if (!strcmp(aux_lut->compatible, "nvidia,tegra124-camera")) {
- pr_info("%s: update camera lookup table.\n", __func__);
- aux_lut->platform_data = flounder_camera_lut;
- }
- aux_lut++;
- }
-}
+static struct i2c_board_info flounder_camera_torch_info[] = {
+ {
+ I2C_BOARD_INFO("tps61310", 0x33),
+ .platform_data = &flounder_tps61310_pdata,
+ },
+};
static int flounder_camera_init(void)
{
@@ -424,6 +427,12 @@ static int flounder_camera_init(void)
tegra_gpio_disable(TEGRA_GPIO_PBB0);
tegra_gpio_disable(TEGRA_GPIO_PCC0);
+ i2c_register_board_info(2, flounder_camera_board_info,
+ ARRAY_SIZE(flounder_camera_board_info));
+
+ i2c_register_board_info(0, flounder_camera_torch_info,
+ ARRAY_SIZE(flounder_camera_torch_info));
+
#if IS_ENABLED(CONFIG_SOC_CAMERA_PLATFORM)
platform_device_register(&flounder_soc_camera_device);
#endif
diff --git a/arch/arm/mach-tegra/board-flounder.c b/arch/arm/mach-tegra/board-flounder.c
index 7b837baadef6..540851d39706 100644
--- a/arch/arm/mach-tegra/board-flounder.c
+++ b/arch/arm/mach-tegra/board-flounder.c
@@ -1007,8 +1007,6 @@ static struct of_dev_auxdata flounder_auxdata_lookup[] __initdata = {
NULL),
OF_DEV_AUXDATA("nvidia,tegra124-xhci", 0x70090000, "tegra-xhci",
&xusb_pdata),
- OF_DEV_AUXDATA("nvidia,tegra124-camera", 0, "pcl-generic",
- NULL),
OF_DEV_AUXDATA("nvidia,tegra124-dfll", 0x70110000, "tegra_cl_dvfs",
NULL),
OF_DEV_AUXDATA("nvidia,tegra132-dfll", 0x70040084, "tegra_cl_dvfs",
@@ -1428,7 +1426,6 @@ static void __init tegra_flounder_dt_init(void)
{
tegra_flounder_early_init();
#ifdef CONFIG_USE_OF
- flounder_camera_auxdata(flounder_auxdata_lookup);
of_platform_populate(NULL,
of_default_bus_match_table, flounder_auxdata_lookup,
&platform_bus);