aboutsummaryrefslogtreecommitdiffstats
path: root/include/media
diff options
context:
space:
mode:
authorManjunath Hadli <manjunath.hadli@ti.com>2011-04-30 02:01:40 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-01-06 06:42:46 -0500
commit9a7f95ad1c946efdd7a7a72df27db738260a0fd8 (patch)
tree8b9e16b88db14a0578145ddbb5ca49d523b85141 /include/media
parentd80dd5d036147e00a27e3c649aec64bf9e572e9b (diff)
[media] davinci vpbe: add dm365 VPBE display driver changes
This patch implements the core additions to the display driver, mainly controlling the VENC and other encoders for dm365. This patch also includes addition of amplifier subdevice to the vpbe driver and interfacing with venc subdevice. Signed-off-by: Manjunath Hadli <manjunath.hadli@ti.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media')
-rw-r--r--include/media/davinci/vpbe.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/media/davinci/vpbe.h b/include/media/davinci/vpbe.h
index 8b11fb037980..8bc1b3c0e679 100644
--- a/include/media/davinci/vpbe.h
+++ b/include/media/davinci/vpbe.h
@@ -63,6 +63,7 @@ struct vpbe_output {
63 * output basis. If per mode is needed, we may have to move this to 63 * output basis. If per mode is needed, we may have to move this to
64 * mode_info structure 64 * mode_info structure
65 */ 65 */
66 enum v4l2_mbus_pixelcode if_params;
66}; 67};
67 68
68/* encoder configuration info */ 69/* encoder configuration info */
@@ -74,6 +75,15 @@ struct encoder_config_info {
74 struct i2c_board_info board_info; 75 struct i2c_board_info board_info;
75}; 76};
76 77
78/*amplifier configuration info */
79struct amp_config_info {
80 char module_name[32];
81 /* Is this an i2c device ? */
82 unsigned int is_i2c:1;
83 /* i2c subdevice board info */
84 struct i2c_board_info board_info;
85};
86
77/* structure for defining vpbe display subsystem components */ 87/* structure for defining vpbe display subsystem components */
78struct vpbe_config { 88struct vpbe_config {
79 char module_name[32]; 89 char module_name[32];
@@ -84,6 +94,8 @@ struct vpbe_config {
84 /* external encoder information goes here */ 94 /* external encoder information goes here */
85 int num_ext_encoders; 95 int num_ext_encoders;
86 struct encoder_config_info *ext_encoders; 96 struct encoder_config_info *ext_encoders;
97 /* amplifier information goes here */
98 struct amp_config_info *amp;
87 int num_outputs; 99 int num_outputs;
88 /* Order is venc outputs followed by LCD and then external encoders */ 100 /* Order is venc outputs followed by LCD and then external encoders */
89 struct vpbe_output *outputs; 101 struct vpbe_output *outputs;
@@ -158,6 +170,8 @@ struct vpbe_device {
158 struct v4l2_subdev **encoders; 170 struct v4l2_subdev **encoders;
159 /* current encoder index */ 171 /* current encoder index */
160 int current_sd_index; 172 int current_sd_index;
173 /* external amplifier v4l2 subdevice */
174 struct v4l2_subdev *amp;
161 struct mutex lock; 175 struct mutex lock;
162 /* device initialized */ 176 /* device initialized */
163 int initialized; 177 int initialized;
@@ -165,6 +179,8 @@ struct vpbe_device {
165 struct clk *dac_clk; 179 struct clk *dac_clk;
166 /* osd_device pointer */ 180 /* osd_device pointer */
167 struct osd_state *osd_device; 181 struct osd_state *osd_device;
182 /* venc device pointer */
183 struct venc_platform_data *venc_device;
168 /* 184 /*
169 * fields below are accessed by users of vpbe_device. Not the 185 * fields below are accessed by users of vpbe_device. Not the
170 * ones above 186 * ones above