picodlp pdata header
[linux-omap-dss2:linux.git] / include / video / omap-panel-data.h
1 /*
2  * Header containing platform_data structs for omap panels
3  *
4  * Copyright (C) 2013 Texas Instruments
5  * Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
6  *         Archit Taneja <archit@ti.com>
7  *
8  * Copyright (C) 2011 Texas Instruments
9  * Author: Mayuresh Janorkar <mayur@ti.com>
10  *
11  * Copyright (C) 2010 Canonical Ltd.
12  * Author: Bryan Wu <bryan.wu@canonical.com>
13  *
14  * This program is free software; you can redistribute it and/or modify it
15  * under the terms of the GNU General Public License version 2 as published by
16  * the Free Software Foundation.
17  *
18  * This program is distributed in the hope that it will be useful, but WITHOUT
19  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
21  * more details.
22  *
23  * You should have received a copy of the GNU General Public License along with
24  * this program.  If not, see <http://www.gnu.org/licenses/>.
25  */
26
27 #ifndef __OMAP_PANEL_DATA_H
28 #define __OMAP_PANEL_DATA_H
29
30 #include <video/omapdss.h>
31 #include <video/display_timing.h>
32
33 struct omap_dss_device;
34
35 /**
36  * struct panel_generic_dpi_data - panel driver configuration data
37  * @name: panel name
38  * @platform_enable: platform specific panel enable function
39  * @platform_disable: platform specific panel disable function
40  * @num_gpios: number of gpios connected to panel
41  * @gpios: gpio numbers on the platform
42  * @gpio_invert: configure gpio as active high or low
43  */
44 struct panel_generic_dpi_data {
45         const char *name;
46         int (*platform_enable)(struct omap_dss_device *dssdev);
47         void (*platform_disable)(struct omap_dss_device *dssdev);
48
49         int num_gpios;
50         int gpios[10];
51         bool gpio_invert[10];
52 };
53
54 /**
55  * struct panel_n8x0_data - N800 panel driver configuration data
56  */
57 struct panel_n8x0_data {
58         int (*platform_enable)(struct omap_dss_device *dssdev);
59         void (*platform_disable)(struct omap_dss_device *dssdev);
60         int panel_reset;
61         int ctrl_pwrdown;
62 };
63
64 /**
65  * struct nokia_dsi_panel_data - Nokia DSI panel driver configuration data
66  * @name: panel name
67  * @use_ext_te: use external TE
68  * @ext_te_gpio: external TE GPIO
69  * @esd_interval: interval of ESD checks, 0 = disabled (ms)
70  * @ulps_timeout: time to wait before entering ULPS, 0 = disabled (ms)
71  * @use_dsi_backlight: true if panel uses DSI command to control backlight
72  * @pin_config: DSI pin configuration
73  */
74
75 struct nokia_dsi_panel_data {
76         const char *name;
77
78         int reset_gpio;
79
80         bool use_ext_te;
81         int ext_te_gpio;
82
83         unsigned esd_interval;
84         unsigned ulps_timeout;
85
86         bool use_dsi_backlight;
87
88         struct omap_dsi_pin_config pin_config;
89 };
90
91 /**
92  * struct picodlp_panel_data - picodlp panel driver configuration data
93  * @picodlp_adapter_id: i2c_adapter number for picodlp
94  */
95 struct picodlp_panel_data {
96         int picodlp_adapter_id;
97         int emu_done_gpio;
98         int pwrgood_gpio;
99 };
100
101 /**
102  * struct tfp410_platform_data - tfp410 panel driver configuration data
103  * @i2c_bus_num: i2c bus id for the panel
104  * @power_down_gpio: gpio number for PD pin (or -1 if not available)
105  */
106 struct tfp410_platform_data {
107         int i2c_bus_num;
108         int power_down_gpio;
109 };
110
111 /**
112  * sharp ls panel driver configuration data
113  * @resb_gpio: reset signal
114  * @ini_gpio: power on control
115  * @mo_gpio: selection for resolution(VGA/QVGA)
116  * @lr_gpio: selection for horizontal scanning direction
117  * @ud_gpio: selection for vertical scanning direction
118  */
119 struct panel_sharp_ls037v7dw01_data {
120         int resb_gpio;
121         int ini_gpio;
122         int mo_gpio;
123         int lr_gpio;
124         int ud_gpio;
125 };
126
127 /**
128  * acx565akm panel driver configuration data
129  * @reset_gpio: reset signal
130  */
131 struct panel_acx565akm_data {
132         int reset_gpio;
133 };
134
135 /**
136  * nec nl8048 panel driver configuration data
137  * @res_gpio: reset signal
138  * @qvga_gpio: selection for resolution(QVGA/WVGA)
139  */
140 struct panel_nec_nl8048_data {
141         int res_gpio;
142         int qvga_gpio;
143 };
144
145 /**
146  * tpo td043 panel driver configuration data
147  * @nreset_gpio: reset signal
148  */
149 struct panel_tpo_td043_data {
150         int nreset_gpio;
151 };
152
153 /**
154  * encoder_tfp410 platform data
155  * @name: name for this display entity
156  * @power_down_gpio: gpio number for PD pin (or -1 if not available)
157  * @data_lines: number of DPI datalines
158  */
159 struct encoder_tfp410_platform_data {
160         const char *name;
161         const char *source;
162         int power_down_gpio;
163         int data_lines;
164 };
165
166 /**
167  * encoder_tpd12s015 platform data
168  * @name: name for this display entity
169  * @ct_cp_hpd_gpio: CT_CP_HPD gpio number
170  * @ls_oe_gpio: LS_OE gpio number
171  * @hpd_gpio: HPD gpio number
172  */
173 struct encoder_tpd12s015_platform_data {
174         const char *name;
175         const char *source;
176
177         int ct_cp_hpd_gpio;
178         int ls_oe_gpio;
179         int hpd_gpio;
180 };
181
182 /**
183  * connector_dvi platform data
184  * @name: name for this display entity
185  * @source: name of the display entity used as a video source
186  * @i2c_bus_num: i2c bus number to be used for reading EDID
187  */
188 struct connector_dvi_platform_data {
189         const char *name;
190         const char *source;
191         int i2c_bus_num;
192 };
193
194 /**
195  * connector_hdmi platform data
196  * @name: name for this display entity
197  * @source: name of the display entity used as a video source
198  */
199 struct connector_hdmi_platform_data {
200         const char *name;
201         const char *source;
202 };
203
204 /**
205  * connector_atv platform data
206  * @name: name for this display entity
207  * @source: name of the display entity used as a video source
208  * @connector_type: composite/svideo
209  * @invert_polarity: invert signal polarity
210  */
211 struct connector_atv_platform_data {
212         const char *name;
213         const char *source;
214
215         enum omap_dss_venc_type connector_type;
216         bool invert_polarity;
217 };
218
219 /**
220  * panel_dpi platform data
221  * @name: name for this display entity
222  * @source: name of the display entity used as a video source
223  * @data_lines: number of DPI datalines
224  * @display_timing: timings for this panel
225  * @backlight_gpio: gpio to enable/disable the backlight (or -1)
226  * @enable_gpio: gpio to enable/disable the panel (or -1)
227  */
228 struct panel_dpi_platform_data {
229         const char *name;
230         const char *source;
231
232         int data_lines;
233
234         const struct display_timing *display_timing;
235
236         int backlight_gpio;
237         int enable_gpio;
238 };
239
240 /**
241  * panel_dsicm platform data
242  * @name: name for this display entity
243  * @source: name of the display entity used as a video source
244  * @reset_gpio: gpio to reset the panel (or -1)
245  * @use_ext_te: use external TE GPIO
246  * @ext_te_gpio: external TE GPIO
247  * @ulps_timeout: time to wait before entering ULPS, 0 = disabled (ms)
248  * @use_dsi_backlight: true if panel uses DSI command to control backlight
249  * @pin_config: DSI pin configuration
250  */
251 struct panel_dsicm_platform_data {
252         const char *name;
253         const char *source;
254
255         int reset_gpio;
256
257         bool use_ext_te;
258         int ext_te_gpio;
259
260         unsigned ulps_timeout;
261
262         bool use_dsi_backlight;
263
264         struct omap_dsi_pin_config pin_config;
265 };
266
267 /**
268  * panel_acx565akm platform data
269  * @name: name for this display entity
270  * @source: name of the display entity used as a video source
271  * @reset_gpio: gpio to reset the panel (or -1)
272  * @datapairs: number of SDI datapairs
273  */
274 struct panel_acx565akm_platform_data {
275         const char *name;
276         const char *source;
277
278         int reset_gpio;
279
280         int datapairs;
281 };
282
283 /**
284  * panel_lb035q02 platform data
285  * @name: name for this display entity
286  * @source: name of the display entity used as a video source
287  * @data_lines: number of DPI datalines
288  * @backlight_gpio: gpio to enable/disable the backlight (or -1)
289  * @enable_gpio: gpio to enable/disable the panel (or -1)
290  */
291 struct panel_lb035q02_platform_data {
292         const char *name;
293         const char *source;
294
295         int data_lines;
296
297         int backlight_gpio;
298         int enable_gpio;
299 };
300
301 /**
302  * panel_sharp_ls037v7dw01 platform data
303  * @name: name for this display entity
304  * @source: name of the display entity used as a video source
305  * @data_lines: number of DPI datalines
306  * @resb_gpio: reset signal GPIO
307  * @ini_gpio: power on control GPIO
308  * @mo_gpio: selection for resolution(VGA/QVGA) GPIO
309  * @lr_gpio: selection for horizontal scanning direction GPIO
310  * @ud_gpio: selection for vertical scanning direction GPIO
311  */
312 struct panel_sharp_ls037v7dw01_platform_data {
313         const char *name;
314         const char *source;
315
316         int data_lines;
317
318         int resb_gpio;
319         int ini_gpio;
320         int mo_gpio;
321         int lr_gpio;
322         int ud_gpio;
323 };
324
325 /**
326  * panel-tpo-td043mtea1 platform data
327  * @name: name for this display entity
328  * @source: name of the display entity used as a video source
329  * @data_lines: number of DPI datalines
330  * @nreset_gpio: reset signal
331  */
332 struct panel_tpo_td043mtea1_platform_data {
333         const char *name;
334         const char *source;
335
336         int data_lines;
337
338         int nreset_gpio;
339 };
340
341 /**
342  * panel-nec-nl8048hl11 platform data
343  * @name: name for this display entity
344  * @source: name of the display entity used as a video source
345  * @data_lines: number of DPI datalines
346  * @res_gpio: reset signal
347  * @qvga_gpio: selection for resolution(QVGA/WVGA)
348  */
349 struct panel_nec_nl8048hl11_platform_data {
350         const char *name;
351         const char *source;
352
353         int data_lines;
354
355         int res_gpio;
356         int qvga_gpio;
357 };
358
359 /**
360  * panel-ti-picodlp platform data
361  * @name: name for this display entity
362  * @source: name of the display entity used as a video source
363  */
364 struct panel_ti_picodlp_platform_data {
365         const char *name;
366         const char *source;
367
368         int emu_done_gpio;
369         int pwrgood_gpio;
370 };
371
372 #endif /* __OMAP_PANEL_DATA_H */