summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDanny Nold <dannynold@freescale.com>2010-07-09 11:07:11 -0500
committerJustin Waters <justin.waters@timesys.com>2010-12-17 12:10:46 -0500
commit49f8eca63676cad6dfad51617e8604fd072ac4cd (patch)
tree45ed23f04e9bba11d79bbc1a10c600459fd14d3a /include
parent857cd6c5cee269eb34bd2b05752ab17ec1915a8a (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.h64
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);