aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/omap3isp
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2011-05-25 03:16:28 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-07-27 16:56:07 -0400
commit1752cd5d3e7ac53025e3010219d06d2b962e1395 (patch)
treeb9970ea54bddc8afc81d275b7557855743cb0fa6 /drivers/media/video/omap3isp
parent75ccf268d504070b70b6d964b06e2f0626856b5a (diff)
[media] omap3isp: Support configurable HS/VS polarities
Add two fields to the ISP parallel platform data to set the HS and VS signals polarities. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Sakari Ailus <sakari.ailus@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/omap3isp')
-rw-r--r--drivers/media/video/omap3isp/isp.h6
-rw-r--r--drivers/media/video/omap3isp/ispccdc.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/media/video/omap3isp/isp.h b/drivers/media/video/omap3isp/isp.h
index 2620c405f5e4..529e582ef948 100644
--- a/drivers/media/video/omap3isp/isp.h
+++ b/drivers/media/video/omap3isp/isp.h
@@ -139,6 +139,10 @@ struct isp_reg {
139 * 3 - CAMEXT[13:6] -> CAM[7:0] 139 * 3 - CAMEXT[13:6] -> CAM[7:0]
140 * @clk_pol: Pixel clock polarity 140 * @clk_pol: Pixel clock polarity
141 * 0 - Non Inverted, 1 - Inverted 141 * 0 - Non Inverted, 1 - Inverted
142 * @hs_pol: Horizontal synchronization polarity
143 * 0 - Active high, 1 - Active low
144 * @vs_pol: Vertical synchronization polarity
145 * 0 - Active high, 1 - Active low
142 * @bridge: CCDC Bridge input control 146 * @bridge: CCDC Bridge input control
143 * ISPCTRL_PAR_BRIDGE_DISABLE - Disable 147 * ISPCTRL_PAR_BRIDGE_DISABLE - Disable
144 * ISPCTRL_PAR_BRIDGE_LENDIAN - Little endian 148 * ISPCTRL_PAR_BRIDGE_LENDIAN - Little endian
@@ -147,6 +151,8 @@ struct isp_reg {
147struct isp_parallel_platform_data { 151struct isp_parallel_platform_data {
148 unsigned int data_lane_shift:2; 152 unsigned int data_lane_shift:2;
149 unsigned int clk_pol:1; 153 unsigned int clk_pol:1;
154 unsigned int hs_pol:1;
155 unsigned int vs_pol:1;
150 unsigned int bridge:4; 156 unsigned int bridge:4;
151}; 157};
152 158
diff --git a/drivers/media/video/omap3isp/ispccdc.c b/drivers/media/video/omap3isp/ispccdc.c
index 67662470661d..9d3459de04b2 100644
--- a/drivers/media/video/omap3isp/ispccdc.c
+++ b/drivers/media/video/omap3isp/ispccdc.c
@@ -1148,6 +1148,8 @@ static void ccdc_configure(struct isp_ccdc_device *ccdc)
1148 omap3isp_configure_bridge(isp, ccdc->input, pdata, shift); 1148 omap3isp_configure_bridge(isp, ccdc->input, pdata, shift);
1149 1149
1150 ccdc->syncif.datsz = depth_out; 1150 ccdc->syncif.datsz = depth_out;
1151 ccdc->syncif.hdpol = pdata ? pdata->hs_pol : 0;
1152 ccdc->syncif.vdpol = pdata ? pdata->vs_pol : 0;
1151 ccdc_config_sync_if(ccdc, &ccdc->syncif); 1153 ccdc_config_sync_if(ccdc, &ccdc->syncif);
1152 1154
1153 /* CCDC_PAD_SINK */ 1155 /* CCDC_PAD_SINK */
@@ -2256,8 +2258,6 @@ int omap3isp_ccdc_init(struct isp_device *isp)
2256 ccdc->syncif.fldout = 0; 2258 ccdc->syncif.fldout = 0;
2257 ccdc->syncif.fldpol = 0; 2259 ccdc->syncif.fldpol = 0;
2258 ccdc->syncif.fldstat = 0; 2260 ccdc->syncif.fldstat = 0;
2259 ccdc->syncif.hdpol = 0;
2260 ccdc->syncif.vdpol = 0;
2261 2261
2262 ccdc->clamp.oblen = 0; 2262 ccdc->clamp.oblen = 0;
2263 ccdc->clamp.dcsubval = 0; 2263 ccdc->clamp.dcsubval = 0;