diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2011-05-25 03:16:28 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-07-27 16:56:07 -0400 |
commit | 1752cd5d3e7ac53025e3010219d06d2b962e1395 (patch) | |
tree | b9970ea54bddc8afc81d275b7557855743cb0fa6 /drivers | |
parent | 75ccf268d504070b70b6d964b06e2f0626856b5a (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')
-rw-r--r-- | drivers/media/video/omap3isp/isp.h | 6 | ||||
-rw-r--r-- | drivers/media/video/omap3isp/ispccdc.c | 4 |
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 { | |||
147 | struct isp_parallel_platform_data { | 151 | struct 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; |