diff options
author | Frank Chen <frankc@nvidia.com> | 2016-07-05 14:01:30 -0700 |
---|---|---|
committer | Mark Salyzyn <salyzyn@google.com> | 2016-08-19 11:23:02 -0700 |
commit | 230b60212abc38b04999b95be2cc9e693254b121 (patch) | |
tree | 957e2a99b1eb3479f819bc4ddaeac35c8aff34e2 | |
parent | e693691b7f90d7516cb0c1261ab35fa233acbc91 (diff) | |
download | tegra-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.c | 43 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-flounder.c | 3 |
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); |