mirror of
https://github.com/genesi/linux-legacy.git
synced 2026-09-22 14:44:23 +00:00
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>
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user