mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
Merge branch 'for-florian' of git://gitorious.org/linux-omap-dss2/linux into fbdev-next
This commit is contained in:
commit
ef26b7943c
68 changed files with 6495 additions and 4596 deletions
37
include/video/omap-panel-dvi.h
Normal file
37
include/video/omap-panel-dvi.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* Header for DVI output driver
|
||||
*
|
||||
* Copyright (C) 2011 Texas Instruments Inc
|
||||
* Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 as published by
|
||||
* the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __OMAP_PANEL_DVI_H
|
||||
#define __OMAP_PANEL_DVI_H
|
||||
|
||||
struct omap_dss_device;
|
||||
|
||||
/**
|
||||
* struct panel_dvi_platform_data - panel driver configuration data
|
||||
* @platform_enable: platform specific panel enable function
|
||||
* @platform_disable: platform specific panel disable function
|
||||
* @i2c_bus_num: i2c bus id for the panel
|
||||
*/
|
||||
struct panel_dvi_platform_data {
|
||||
int (*platform_enable)(struct omap_dss_device *dssdev);
|
||||
void (*platform_disable)(struct omap_dss_device *dssdev);
|
||||
u16 i2c_bus_num;
|
||||
};
|
||||
|
||||
#endif /* __OMAP_PANEL_DVI_H */
|
||||
15
include/video/omap-panel-n8x0.h
Normal file
15
include/video/omap-panel-n8x0.h
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef __OMAP_PANEL_N8X0_H
|
||||
#define __OMAP_PANEL_N8X0_H
|
||||
|
||||
struct omap_dss_device;
|
||||
|
||||
struct panel_n8x0_data {
|
||||
int (*platform_enable)(struct omap_dss_device *dssdev);
|
||||
void (*platform_disable)(struct omap_dss_device *dssdev);
|
||||
int panel_reset;
|
||||
int ctrl_pwrdown;
|
||||
|
||||
int (*set_backlight)(struct omap_dss_device *dssdev, int level);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -10,9 +10,7 @@ struct omap_dss_device;
|
|||
* @ext_te_gpio: external TE GPIO
|
||||
* @esd_interval: interval of ESD checks, 0 = disabled (ms)
|
||||
* @ulps_timeout: time to wait before entering ULPS, 0 = disabled (ms)
|
||||
* @max_backlight_level: maximum backlight level
|
||||
* @set_backlight: pointer to backlight set function
|
||||
* @get_backlight: pointer to backlight get function
|
||||
* @use_dsi_backlight: true if panel uses DSI command to control backlight
|
||||
*/
|
||||
struct nokia_dsi_panel_data {
|
||||
const char *name;
|
||||
|
|
@ -25,9 +23,7 @@ struct nokia_dsi_panel_data {
|
|||
unsigned esd_interval;
|
||||
unsigned ulps_timeout;
|
||||
|
||||
int max_backlight_level;
|
||||
int (*set_backlight)(struct omap_dss_device *dssdev, int level);
|
||||
int (*get_backlight)(struct omap_dss_device *dssdev);
|
||||
bool use_dsi_backlight;
|
||||
};
|
||||
|
||||
#endif /* __OMAP_NOKIA_DSI_PANEL_H */
|
||||
|
|
|
|||
23
include/video/omap-panel-picodlp.h
Normal file
23
include/video/omap-panel-picodlp.h
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
* panel data for picodlp panel
|
||||
*
|
||||
* Copyright (C) 2011 Texas Instruments
|
||||
*
|
||||
* Author: Mayuresh Janorkar <mayur@ti.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
#ifndef __PANEL_PICODLP_H
|
||||
#define __PANEL_PICODLP_H
|
||||
/**
|
||||
* struct : picodlp panel data
|
||||
* picodlp_adapter_id: i2c_adapter number for picodlp
|
||||
*/
|
||||
struct picodlp_panel_data {
|
||||
int picodlp_adapter_id;
|
||||
int emu_done_gpio;
|
||||
int pwrgood_gpio;
|
||||
};
|
||||
#endif /* __PANEL_PICODLP_H */
|
||||
|
|
@ -41,8 +41,13 @@
|
|||
#define DISPC_IRQ_WAKEUP (1 << 16)
|
||||
#define DISPC_IRQ_SYNC_LOST2 (1 << 17)
|
||||
#define DISPC_IRQ_VSYNC2 (1 << 18)
|
||||
#define DISPC_IRQ_VID3_END_WIN (1 << 19)
|
||||
#define DISPC_IRQ_VID3_FIFO_UNDERFLOW (1 << 20)
|
||||
#define DISPC_IRQ_ACBIAS_COUNT_STAT2 (1 << 21)
|
||||
#define DISPC_IRQ_FRAMEDONE2 (1 << 22)
|
||||
#define DISPC_IRQ_FRAMEDONEWB (1 << 23)
|
||||
#define DISPC_IRQ_FRAMEDONETV (1 << 24)
|
||||
#define DISPC_IRQ_WBBUFFEROVERFLOW (1 << 25)
|
||||
|
||||
struct omap_dss_device;
|
||||
struct omap_overlay_manager;
|
||||
|
|
@ -60,7 +65,8 @@ enum omap_display_type {
|
|||
enum omap_plane {
|
||||
OMAP_DSS_GFX = 0,
|
||||
OMAP_DSS_VIDEO1 = 1,
|
||||
OMAP_DSS_VIDEO2 = 2
|
||||
OMAP_DSS_VIDEO2 = 2,
|
||||
OMAP_DSS_VIDEO3 = 3,
|
||||
};
|
||||
|
||||
enum omap_channel {
|
||||
|
|
@ -129,6 +135,18 @@ enum omap_dss_venc_type {
|
|||
OMAP_DSS_VENC_TYPE_SVIDEO,
|
||||
};
|
||||
|
||||
enum omap_dss_dsi_pixel_format {
|
||||
OMAP_DSS_DSI_FMT_RGB888,
|
||||
OMAP_DSS_DSI_FMT_RGB666,
|
||||
OMAP_DSS_DSI_FMT_RGB666_PACKED,
|
||||
OMAP_DSS_DSI_FMT_RGB565,
|
||||
};
|
||||
|
||||
enum omap_dss_dsi_mode {
|
||||
OMAP_DSS_DSI_CMD_MODE = 0,
|
||||
OMAP_DSS_DSI_VIDEO_MODE,
|
||||
};
|
||||
|
||||
enum omap_display_caps {
|
||||
OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE = 1 << 0,
|
||||
OMAP_DSS_DISPLAY_CAP_TEAR_ELIM = 1 << 1,
|
||||
|
|
@ -162,11 +180,13 @@ enum omap_dss_rotation_angle {
|
|||
|
||||
enum omap_overlay_caps {
|
||||
OMAP_DSS_OVL_CAP_SCALE = 1 << 0,
|
||||
OMAP_DSS_OVL_CAP_DISPC = 1 << 1,
|
||||
OMAP_DSS_OVL_CAP_GLOBAL_ALPHA = 1 << 1,
|
||||
OMAP_DSS_OVL_CAP_PRE_MULT_ALPHA = 1 << 2,
|
||||
OMAP_DSS_OVL_CAP_ZORDER = 1 << 3,
|
||||
};
|
||||
|
||||
enum omap_overlay_manager_caps {
|
||||
OMAP_DSS_OVL_MGR_CAP_DISPC = 1 << 0,
|
||||
OMAP_DSS_DUMMY_VALUE, /* add a dummy value to prevent compiler error */
|
||||
};
|
||||
|
||||
enum omap_dss_clk_source {
|
||||
|
|
@ -215,26 +235,67 @@ void rfbi_bus_lock(void);
|
|||
void rfbi_bus_unlock(void);
|
||||
|
||||
/* DSI */
|
||||
|
||||
struct omap_dss_dsi_videomode_data {
|
||||
/* DSI video mode blanking data */
|
||||
/* Unit: byte clock cycles */
|
||||
u16 hsa;
|
||||
u16 hfp;
|
||||
u16 hbp;
|
||||
/* Unit: line clocks */
|
||||
u16 vsa;
|
||||
u16 vfp;
|
||||
u16 vbp;
|
||||
|
||||
/* DSI blanking modes */
|
||||
int blanking_mode;
|
||||
int hsa_blanking_mode;
|
||||
int hbp_blanking_mode;
|
||||
int hfp_blanking_mode;
|
||||
|
||||
/* Video port sync events */
|
||||
int vp_de_pol;
|
||||
int vp_hsync_pol;
|
||||
int vp_vsync_pol;
|
||||
bool vp_vsync_end;
|
||||
bool vp_hsync_end;
|
||||
|
||||
bool ddr_clk_always_on;
|
||||
int window_sync;
|
||||
};
|
||||
|
||||
void dsi_bus_lock(struct omap_dss_device *dssdev);
|
||||
void dsi_bus_unlock(struct omap_dss_device *dssdev);
|
||||
int dsi_vc_dcs_write(struct omap_dss_device *dssdev, int channel, u8 *data,
|
||||
int len);
|
||||
int dsi_vc_dcs_write_0(struct omap_dss_device *dssdev, int channel,
|
||||
u8 dcs_cmd);
|
||||
int dsi_vc_generic_write(struct omap_dss_device *dssdev, int channel, u8 *data,
|
||||
int len);
|
||||
int dsi_vc_dcs_write_0(struct omap_dss_device *dssdev, int channel, u8 dcs_cmd);
|
||||
int dsi_vc_generic_write_0(struct omap_dss_device *dssdev, int channel);
|
||||
int dsi_vc_dcs_write_1(struct omap_dss_device *dssdev, int channel, u8 dcs_cmd,
|
||||
u8 param);
|
||||
int dsi_vc_generic_write_1(struct omap_dss_device *dssdev, int channel,
|
||||
u8 param);
|
||||
int dsi_vc_generic_write_2(struct omap_dss_device *dssdev, int channel,
|
||||
u8 param1, u8 param2);
|
||||
int dsi_vc_dcs_write_nosync(struct omap_dss_device *dssdev, int channel,
|
||||
u8 *data, int len);
|
||||
int dsi_vc_generic_write_nosync(struct omap_dss_device *dssdev, int channel,
|
||||
u8 *data, int len);
|
||||
int dsi_vc_dcs_read(struct omap_dss_device *dssdev, int channel, u8 dcs_cmd,
|
||||
u8 *buf, int buflen);
|
||||
int dsi_vc_dcs_read_1(struct omap_dss_device *dssdev, int channel, u8 dcs_cmd,
|
||||
u8 *data);
|
||||
int dsi_vc_dcs_read_2(struct omap_dss_device *dssdev, int channel, u8 dcs_cmd,
|
||||
u8 *data1, u8 *data2);
|
||||
int dsi_vc_generic_read_0(struct omap_dss_device *dssdev, int channel, u8 *buf,
|
||||
int buflen);
|
||||
int dsi_vc_generic_read_1(struct omap_dss_device *dssdev, int channel, u8 param,
|
||||
u8 *buf, int buflen);
|
||||
int dsi_vc_generic_read_2(struct omap_dss_device *dssdev, int channel,
|
||||
u8 param1, u8 param2, u8 *buf, int buflen);
|
||||
int dsi_vc_set_max_rx_packet_size(struct omap_dss_device *dssdev, int channel,
|
||||
u16 len);
|
||||
int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel);
|
||||
int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel);
|
||||
int dsi_video_mode_enable(struct omap_dss_device *dssdev, int channel);
|
||||
void dsi_video_mode_disable(struct omap_dss_device *dssdev, int channel);
|
||||
|
||||
/* Board specific data */
|
||||
struct omap_dss_board_info {
|
||||
|
|
@ -242,7 +303,8 @@ struct omap_dss_board_info {
|
|||
int num_devices;
|
||||
struct omap_dss_device **devices;
|
||||
struct omap_dss_device *default_device;
|
||||
void (*dsi_mux_pads)(bool enable);
|
||||
int (*dsi_enable_pads)(int dsi_id, unsigned lane_mask);
|
||||
void (*dsi_disable_pads)(int dsi_id, unsigned lane_mask);
|
||||
};
|
||||
|
||||
#if defined(CONFIG_OMAP2_DSS_MODULE) || defined(CONFIG_OMAP2_DSS)
|
||||
|
|
@ -300,7 +362,6 @@ struct omap_overlay_info {
|
|||
bool enabled;
|
||||
|
||||
u32 paddr;
|
||||
void __iomem *vaddr;
|
||||
u32 p_uv_addr; /* for NV12 format */
|
||||
u16 screen_width;
|
||||
u16 width;
|
||||
|
|
@ -316,6 +377,7 @@ struct omap_overlay_info {
|
|||
u16 out_height; /* if 0, out_height == height */
|
||||
u8 global_alpha;
|
||||
u8 pre_mult_alpha;
|
||||
u8 zorder;
|
||||
};
|
||||
|
||||
struct omap_overlay {
|
||||
|
|
@ -324,7 +386,7 @@ struct omap_overlay {
|
|||
|
||||
/* static fields */
|
||||
const char *name;
|
||||
int id;
|
||||
enum omap_plane id;
|
||||
enum omap_color_mode supported_modes;
|
||||
enum omap_overlay_caps caps;
|
||||
|
||||
|
|
@ -332,6 +394,7 @@ struct omap_overlay {
|
|||
struct omap_overlay_manager *manager;
|
||||
struct omap_overlay_info info;
|
||||
|
||||
bool manager_changed;
|
||||
/* if true, info has been changed, but not applied() yet */
|
||||
bool info_dirty;
|
||||
|
||||
|
|
@ -354,7 +417,7 @@ struct omap_overlay_manager_info {
|
|||
u32 trans_key;
|
||||
bool trans_enabled;
|
||||
|
||||
bool alpha_enabled;
|
||||
bool partial_alpha_enabled;
|
||||
|
||||
bool cpr_enable;
|
||||
struct omap_dss_cpr_coefs cpr_coefs;
|
||||
|
|
@ -366,7 +429,7 @@ struct omap_overlay_manager {
|
|||
|
||||
/* static fields */
|
||||
const char *name;
|
||||
int id;
|
||||
enum omap_channel id;
|
||||
enum omap_overlay_manager_caps caps;
|
||||
int num_overlays;
|
||||
struct omap_overlay **overlays;
|
||||
|
|
@ -454,6 +517,7 @@ struct omap_dss_device {
|
|||
} dispc;
|
||||
|
||||
struct {
|
||||
/* regn is one greater than TRM's REGN value */
|
||||
u16 regn;
|
||||
u16 regm;
|
||||
u16 regm_dispc;
|
||||
|
|
@ -464,6 +528,7 @@ struct omap_dss_device {
|
|||
} dsi;
|
||||
|
||||
struct {
|
||||
/* regn is one greater than TRM's REGN value */
|
||||
u16 regn;
|
||||
u16 regm2;
|
||||
} hdmi;
|
||||
|
|
@ -477,6 +542,10 @@ struct omap_dss_device {
|
|||
int acb; /* ac-bias pin frequency */
|
||||
|
||||
enum omap_panel_config config;
|
||||
|
||||
enum omap_dss_dsi_pixel_format dsi_pix_fmt;
|
||||
enum omap_dss_dsi_mode dsi_mode;
|
||||
struct omap_dss_dsi_videomode_data dsi_vm_data;
|
||||
} panel;
|
||||
|
||||
struct {
|
||||
|
|
@ -557,6 +626,9 @@ struct omap_dss_driver {
|
|||
|
||||
int (*set_wss)(struct omap_dss_device *dssdev, u32 wss);
|
||||
u32 (*get_wss)(struct omap_dss_device *dssdev);
|
||||
|
||||
int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len);
|
||||
bool (*detect)(struct omap_dss_device *dssdev);
|
||||
};
|
||||
|
||||
int omap_dss_register_driver(struct omap_dss_driver *);
|
||||
|
|
|
|||
Loading…
Reference in a new issue