From cb82e83af2ade12557bf152047f2a9443d2d0ec5 Mon Sep 17 00:00:00 2001 From: Wojciech Bieganski Date: Thu, 27 Aug 2015 10:34:01 +0200 Subject: TC358743 HDMI to CSI-2 bridge support known issues: - HDMI input works only in 640x480 mode, 720p only in test pattern mode, any 4-lane mode doesn't work - set HDMI transmitter to VGA mode before starting the stream Acked-by: Marcel Ziswiler Acked-by: Dominik Sliwa --- arch/arm/mach-tegra/board-ardbeg-sensors.c | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'arch') diff --git a/arch/arm/mach-tegra/board-ardbeg-sensors.c b/arch/arm/mach-tegra/board-ardbeg-sensors.c index c57d94f329cb..54a19d25a748 100644 --- a/arch/arm/mach-tegra/board-ardbeg-sensors.c +++ b/arch/arm/mach-tegra/board-ardbeg-sensors.c @@ -444,6 +444,47 @@ static struct platform_device ardbeg_ov5640_soc_camera_device = { }; #endif +#if IS_ENABLED(CONFIG_SOC_CAMERA_TC358743) +static int ardbeg_tc358743_power(struct device *dev, int enable) +{ + if(enable) { + tegra_io_dpd_disable(&csia_io); + } else { + tegra_io_dpd_enable(&csia_io); + } + return 0; +} + +static struct i2c_board_info ardbeg_tc358743_camera_i2c_device = { + I2C_BOARD_INFO("tc358743", 0x0f), +}; + +static struct tegra_camera_platform_data ardbeg_tc358743_camera_platform_data = { + .flip_v = 0, + .flip_h = 0, + .port = TEGRA_CAMERA_PORT_CSI_A, + .lanes = 2, + .continuous_clk = 0, +}; + +static struct soc_camera_link tc358743_iclink = { + .bus_id = 0, /* This must match the .id of tegra_vi01_device */ + .board_info = &ardbeg_tc358743_camera_i2c_device, + .module_name = "tc358743", + .i2c_adapter_id = 2, /* change to 1 if you have auvidea's B100 HDMI to CSI-2 Bridge */ + .power = ardbeg_tc358743_power, + .priv = &ardbeg_tc358743_camera_platform_data, +}; + +static struct platform_device ardbeg_tc358743_soc_camera_device = { + .name = "soc-camera-pdrv", + .id = 4, + .dev = { + .platform_data = &tc358743_iclink, + }, +}; +#endif + static struct regulator *ardbeg_vcmvdd; static int ardbeg_get_extra_regulators(void) @@ -1651,6 +1692,9 @@ static int ardbeg_camera_init(void) #endif #if IS_ENABLED(CONFIG_SOC_CAMERA_OV5640) platform_device_register(&ardbeg_ov5640_soc_camera_device); +#endif +#if IS_ENABLED(CONFIG_SOC_CAMERA_TC358743) + platform_device_register(&ardbeg_tc358743_soc_camera_device); #endif return 0; } -- cgit v1.2.3