diff options
author | Danny Nold <dannynold@freescale.com> | 2010-07-09 11:07:11 -0500 |
---|---|---|
committer | Justin Waters <justin.waters@timesys.com> | 2010-12-17 12:10:46 -0500 |
commit | 49f8eca63676cad6dfad51617e8604fd072ac4cd (patch) | |
tree | 45ed23f04e9bba11d79bbc1a10c600459fd14d3a /include | |
parent | 857cd6c5cee269eb34bd2b05752ab17ec1915a8a (diff) |
ENGR00124814-1 fb: Add i.MX EPDC fb driver
Added basic EPDC driver, including support for PXP conversions (rotation,
auto-waveform selection, CSC). Self-clock gating also supported.
Signed-off-by: Danny Nold <dannynold@freescale.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mxcfb.h | 64 |
1 files changed, 57 insertions, 7 deletions
diff --git a/include/linux/mxcfb.h b/include/linux/mxcfb.h index dc419e7a8eff..27f786e5f018 100644 --- a/include/linux/mxcfb.h +++ b/include/linux/mxcfb.h @@ -58,6 +58,56 @@ struct mxcfb_gamma { int slopek[16]; }; +struct mxcfb_rect { + __u32 top; + __u32 left; + __u32 width; + __u32 height; +}; + +#define GRAYSCALE_8BIT 0x1 +#define GRAYSCALE_8BIT_INVERTED 0x2 + +#define AUTO_UPDATE_MODE_REGION_MODE 0 +#define AUTO_UPDATE_MODE_AUTOMATIC_MODE 1 + +#define UPDATE_MODE_PARTIAL 0x0 +#define UPDATE_MODE_FULL 0x1 + +#define WAVEFORM_MODE_AUTO 257 + +#define TEMP_USE_AMBIENT 0x1000 + +struct mxcfb_alt_buffer_data { + __u32 phys_addr; + __u32 width; /* width of entire buffer */ + __u32 height; /* height of entire buffer */ + struct mxcfb_rect alt_update_region; /* region within buffer to update */ +}; + +struct mxcfb_update_data { + struct mxcfb_rect update_region; + __u32 waveform_mode; + __u32 update_mode; + __u32 update_marker; + int temp; + int use_alt_buffer; + struct mxcfb_alt_buffer_data alt_buffer_data; +}; + +/* + * Structure used to define waveform modes for driver + * Needed for driver to perform auto-waveform selection + */ +struct mxcfb_waveform_modes { + int mode_init; + int mode_du; + int mode_gc4; + int mode_gc8; + int mode_gc16; + int mode_gc32; +}; + #define MXCFB_WAIT_FOR_VSYNC _IOW('F', 0x20, u_int32_t) #define MXCFB_SET_GBL_ALPHA _IOW('F', 0x21, struct mxcfb_gbl_alpha) #define MXCFB_SET_CLR_KEY _IOW('F', 0x22, struct mxcfb_color_key) @@ -69,6 +119,13 @@ struct mxcfb_gamma { #define MXCFB_GET_FB_IPU_DI _IOR('F', 0x29, u_int32_t) #define MXCFB_GET_DIFMT _IOR('F', 0x2A, u_int32_t) +/* IOCTLs for E-ink panel updates */ +#define MXCFB_SET_WAVEFORM_MODES _IOW('F', 0x2B, struct mxcfb_waveform_modes) +#define MXCFB_SET_TEMPERATURE _IOW('F', 0x2C, int32_t) +#define MXCFB_SET_AUTO_UPDATE_MODE _IOW('F', 0x2D, __u32) +#define MXCFB_SEND_UPDATE _IOW('F', 0x2E, struct mxcfb_update_data) +#define MXCFB_WAIT_FOR_UPDATE_COMPLETE _IOW('F', 0x2F, __u32) + #ifdef __KERNEL__ extern struct fb_videomode mxcfb_modedb[]; @@ -80,13 +137,6 @@ enum { MXCFB_REFRESH_PARTIAL, }; -struct mxcfb_rect { - u32 top; - u32 left; - u32 width; - u32 height; -}; - int mxcfb_set_refresh_mode(struct fb_info *fbi, int mode, struct mxcfb_rect *update_region); |