Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android
[firefly-linux-kernel-4.4.55.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 struct omap_dss_device;
31
32 /**
33  * struct panel_generic_dpi_data - panel driver configuration data
34  * @name: panel name
35  * @platform_enable: platform specific panel enable function
36  * @platform_disable: platform specific panel disable function
37  * @num_gpios: number of gpios connected to panel
38  * @gpios: gpio numbers on the platform
39  * @gpio_invert: configure gpio as active high or low
40  */
41 struct panel_generic_dpi_data {
42         const char *name;
43         int (*platform_enable)(struct omap_dss_device *dssdev);
44         void (*platform_disable)(struct omap_dss_device *dssdev);
45
46         int num_gpios;
47         int gpios[10];
48         bool gpio_invert[10];
49 };
50
51 /**
52  * struct panel_n8x0_data - N800 panel driver configuration data
53  */
54 struct panel_n8x0_data {
55         int (*platform_enable)(struct omap_dss_device *dssdev);
56         void (*platform_disable)(struct omap_dss_device *dssdev);
57         int panel_reset;
58         int ctrl_pwrdown;
59 };
60
61 /**
62  * struct nokia_dsi_panel_data - Nokia DSI panel driver configuration data
63  * @name: panel name
64  * @use_ext_te: use external TE
65  * @ext_te_gpio: external TE GPIO
66  * @esd_interval: interval of ESD checks, 0 = disabled (ms)
67  * @ulps_timeout: time to wait before entering ULPS, 0 = disabled (ms)
68  * @use_dsi_backlight: true if panel uses DSI command to control backlight
69  * @pin_config: DSI pin configuration
70  */
71
72 struct nokia_dsi_panel_data {
73         const char *name;
74
75         int reset_gpio;
76
77         bool use_ext_te;
78         int ext_te_gpio;
79
80         unsigned esd_interval;
81         unsigned ulps_timeout;
82
83         bool use_dsi_backlight;
84
85         struct omap_dsi_pin_config pin_config;
86 };
87
88 /**
89  * struct picodlp_panel_data - picodlp panel driver configuration data
90  * @picodlp_adapter_id: i2c_adapter number for picodlp
91  */
92 struct picodlp_panel_data {
93         int picodlp_adapter_id;
94         int emu_done_gpio;
95         int pwrgood_gpio;
96 };
97
98 /**
99  * struct tfp410_platform_data - tfp410 panel driver configuration data
100  * @i2c_bus_num: i2c bus id for the panel
101  * @power_down_gpio: gpio number for PD pin (or -1 if not available)
102  */
103 struct tfp410_platform_data {
104         int i2c_bus_num;
105         int power_down_gpio;
106 };
107
108 /**
109  * sharp ls panel driver configuration data
110  * @resb_gpio: reset signal
111  * @ini_gpio: power on control
112  * @mo_gpio: selection for resolution(VGA/QVGA)
113  * @lr_gpio: selection for horizontal scanning direction
114  * @ud_gpio: selection for vertical scanning direction
115  */
116 struct panel_sharp_ls037v7dw01_data {
117         int resb_gpio;
118         int ini_gpio;
119         int mo_gpio;
120         int lr_gpio;
121         int ud_gpio;
122 };
123
124 /**
125  * acx565akm panel driver configuration data
126  * @reset_gpio: reset signal
127  */
128 struct panel_acx565akm_data {
129         int reset_gpio;
130 };
131
132 /**
133  * nec nl8048 panel driver configuration data
134  * @res_gpio: reset signal
135  * @qvga_gpio: selection for resolution(QVGA/WVGA)
136  */
137 struct panel_nec_nl8048_data {
138         int res_gpio;
139         int qvga_gpio;
140 };
141
142 /**
143  * tpo td043 panel driver configuration data
144  * @nreset_gpio: reset signal
145  */
146 struct panel_tpo_td043_data {
147         int nreset_gpio;
148 };
149
150 #endif /* __OMAP_PANEL_DATA_H */