blob: baf40450aae45376a63a42de0462fe651113b20e [file] [log] [blame]
Archit Tanejaa0d8dde2013-02-12 16:46:46 +05301/*
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
Tomi Valkeinendbc23842013-05-24 14:22:20 +030030#include <video/omapdss.h>
Tomi Valkeinen04f0ff02013-05-24 14:21:56 +030031#include <video/display_timing.h>
32
Archit Tanejaa0d8dde2013-02-12 16:46:46 +053033struct 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
Tomi Valkeinenc3f80cb2013-02-12 14:59:17 +053040 * @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
Archit Tanejaa0d8dde2013-02-12 16:46:46 +053043 */
44struct 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);
Tomi Valkeinenc3f80cb2013-02-12 14:59:17 +053048
49 int num_gpios;
50 int gpios[10];
51 bool gpio_invert[10];
Archit Tanejaa0d8dde2013-02-12 16:46:46 +053052};
53
54/**
55 * struct panel_n8x0_data - N800 panel driver configuration data
56 */
57struct 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;
Archit Tanejaa0d8dde2013-02-12 16:46:46 +053062};
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
75struct 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 */
95struct 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 */
106struct tfp410_platform_data {
107 int i2c_bus_num;
108 int power_down_gpio;
109};
110
Tomi Valkeinenc3f80cb2013-02-12 14:59:17 +0530111/**
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 */
119struct 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 */
131struct 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 */
140struct 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 */
149struct panel_tpo_td043_data {
150 int nreset_gpio;
151};
152
Tomi Valkeinen2773fef2013-05-24 14:18:30 +0300153/**
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 */
159struct encoder_tfp410_platform_data {
160 const char *name;
161 const char *source;
162 int power_down_gpio;
163 int data_lines;
164};
165
Tomi Valkeinena0ee5772013-05-24 14:20:14 +0300166/**
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 */
173struct 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
Tomi Valkeinen348077b2013-05-24 14:20:45 +0300182/**
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 */
188struct connector_dvi_platform_data {
189 const char *name;
190 const char *source;
191 int i2c_bus_num;
192};
193
Tomi Valkeinen3cb07ee2013-05-24 14:21:08 +0300194/**
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 */
199struct connector_hdmi_platform_data {
200 const char *name;
201 const char *source;
202};
203
Tomi Valkeinen61a7f242013-05-24 14:21:30 +0300204/**
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 */
211struct 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
Tomi Valkeinen04f0ff02013-05-24 14:21:56 +0300219/**
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 */
228struct 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
Tomi Valkeinendbc23842013-05-24 14:22:20 +0300240/**
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 */
251struct 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
Tomi Valkeinen84192742013-05-24 14:22:31 +0300267/**
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 */
274struct panel_acx565akm_platform_data {
275 const char *name;
276 const char *source;
277
278 int reset_gpio;
279
280 int datapairs;
281};
282
Tomi Valkeinenf92f1682013-05-21 17:14:29 +0300283/**
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 */
291struct 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
Archit Tanejaa0d8dde2013-02-12 16:46:46 +0530301#endif /* __OMAP_PANEL_DATA_H */