Merge branch 'late/clksrc' into late/cleanup
[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         int (*set_backlight)(struct omap_dss_device *dssdev, int level);
61 };
62
63 /**
64  * struct nokia_dsi_panel_data - Nokia DSI panel driver configuration data
65  * @name: panel name
66  * @use_ext_te: use external TE
67  * @ext_te_gpio: external TE GPIO
68  * @esd_interval: interval of ESD checks, 0 = disabled (ms)
69  * @ulps_timeout: time to wait before entering ULPS, 0 = disabled (ms)
70  * @use_dsi_backlight: true if panel uses DSI command to control backlight
71  * @pin_config: DSI pin configuration
72  */
73
74 struct nokia_dsi_panel_data {
75         const char *name;
76
77         int reset_gpio;
78
79         bool use_ext_te;
80         int ext_te_gpio;
81
82         unsigned esd_interval;
83         unsigned ulps_timeout;
84
85         bool use_dsi_backlight;
86
87         struct omap_dsi_pin_config pin_config;
88 };
89
90 /**
91  * struct picodlp_panel_data - picodlp panel driver configuration data
92  * @picodlp_adapter_id: i2c_adapter number for picodlp
93  */
94 struct picodlp_panel_data {
95         int picodlp_adapter_id;
96         int emu_done_gpio;
97         int pwrgood_gpio;
98 };
99
100 /**
101  * struct tfp410_platform_data - tfp410 panel driver configuration data
102  * @i2c_bus_num: i2c bus id for the panel
103  * @power_down_gpio: gpio number for PD pin (or -1 if not available)
104  */
105 struct tfp410_platform_data {
106         int i2c_bus_num;
107         int power_down_gpio;
108 };
109
110 /**
111  * sharp ls panel driver configuration data
112  * @resb_gpio: reset signal
113  * @ini_gpio: power on control
114  * @mo_gpio: selection for resolution(VGA/QVGA)
115  * @lr_gpio: selection for horizontal scanning direction
116  * @ud_gpio: selection for vertical scanning direction
117  */
118 struct panel_sharp_ls037v7dw01_data {
119         int resb_gpio;
120         int ini_gpio;
121         int mo_gpio;
122         int lr_gpio;
123         int ud_gpio;
124 };
125
126 /**
127  * acx565akm panel driver configuration data
128  * @reset_gpio: reset signal
129  */
130 struct panel_acx565akm_data {
131         int reset_gpio;
132 };
133
134 /**
135  * nec nl8048 panel driver configuration data
136  * @res_gpio: reset signal
137  * @qvga_gpio: selection for resolution(QVGA/WVGA)
138  */
139 struct panel_nec_nl8048_data {
140         int res_gpio;
141         int qvga_gpio;
142 };
143
144 /**
145  * tpo td043 panel driver configuration data
146  * @nreset_gpio: reset signal
147  */
148 struct panel_tpo_td043_data {
149         int nreset_gpio;
150 };
151
152 #endif /* __OMAP_PANEL_DATA_H */