linux/include/video/omap-panel-data.h
<<
>>
Prefs
   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
  33struct 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 */
  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);
  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 */
  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;
  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
  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
 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 */
 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
 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 */
 159struct 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 */
 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
 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 */
 188struct 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 */
 199struct 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 */
 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
 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 */
 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
 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 */
 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
 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 */
 274struct 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 */
 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
 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 */
 312struct 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 */
 332struct 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 */
 349struct 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#endif /* __OMAP_PANEL_DATA_H */
 360