diff options
author | Danny Nold <dannynold@freescale.com> | 2012-02-14 17:15:23 -0600 |
---|---|---|
committer | Danny Nold <dannynold@freescale.com> | 2012-02-15 10:21:35 -0600 |
commit | e3a4868791aceef59dc43610f678d4a92f5c1df8 (patch) | |
tree | bc457bf2e1234449b4e560a65013b7703459e123 /include | |
parent | 3ecb0177d966e739b45b1bd1dae490da56a23f2b (diff) |
ENGR00174106-3 - EPDC fb: Support EPDC v2.0
- Added new register definitions for EPDCv2.0
- Added support for 64 LUTs
- Conditionalized code for EPDC versions 1.0, 2.0, and 2.1
- Support for EPDC auto-waveform selection
- Support for collision test mode
- Support for PxP bypassing
- Support for LUT cancellation
- Support for new PxP limitations
- Support for collision minimization EPDC feature
- Added workaround for collision status bug (can't clear
IRQ before reading collision status for LUTs 16-63)
Signed-off-by: Danny Nold <dannynold@freescale.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mxcfb.h | 11 | ||||
-rw-r--r-- | include/linux/mxcfb_epdc_kernel.h | 6 |
2 files changed, 13 insertions, 4 deletions
diff --git a/include/linux/mxcfb.h b/include/linux/mxcfb.h index 3bc7c05310db..5fb07b44063d 100644 --- a/include/linux/mxcfb.h +++ b/include/linux/mxcfb.h @@ -1,5 +1,5 @@ /* - * Copyright 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright 2004-2012 Freescale Semiconductor, Inc. All Rights Reserved. */ /* @@ -88,6 +88,8 @@ struct mxcfb_rect { #define EPDC_FLAG_FORCE_MONOCHROME 0x02 #define EPDC_FLAG_USE_CMAP 0x04 #define EPDC_FLAG_USE_ALT_BUFFER 0x100 +#define EPDC_FLAG_TEST_COLLISION 0x200 +#define EPDC_FLAG_GROUP_UPDATE 0x400 #define FB_POWERDOWN_DISABLE -1 @@ -108,6 +110,11 @@ struct mxcfb_update_data { struct mxcfb_alt_buffer_data alt_buffer_data; }; +struct mxcfb_update_marker_data { + __u32 update_marker; + __u32 collision_test; +}; + /* * Structure used to define waveform modes for driver * Needed for driver to perform auto-waveform selection @@ -139,7 +146,7 @@ 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) +#define MXCFB_WAIT_FOR_UPDATE_COMPLETE _IOWR('F', 0x2F, struct mxcfb_update_marker_data) #define MXCFB_SET_PWRDOWN_DELAY _IOW('F', 0x30, int32_t) #define MXCFB_GET_PWRDOWN_DELAY _IOR('F', 0x31, int32_t) #define MXCFB_SET_UPDATE_SCHEME _IOW('F', 0x32, __u32) diff --git a/include/linux/mxcfb_epdc_kernel.h b/include/linux/mxcfb_epdc_kernel.h index a0cf4acb161b..017202f8a861 100644 --- a/include/linux/mxcfb_epdc_kernel.h +++ b/include/linux/mxcfb_epdc_kernel.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. + * Copyright (C) 2010-2012 Freescale Semiconductor, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,7 +25,9 @@ int mxc_epdc_fb_set_temperature(int temperature, struct fb_info *info); int mxc_epdc_fb_set_auto_update(u32 auto_mode, struct fb_info *info); int mxc_epdc_fb_send_update(struct mxcfb_update_data *upd_data, struct fb_info *info); -int mxc_epdc_fb_wait_update_complete(u32 update_marker, struct fb_info *info); +int mxc_epdc_fb_wait_update_complete( + struct mxcfb_update_marker_data *marker_data, + struct fb_info *info); int mxc_epdc_fb_set_pwrdown_delay(u32 pwrdown_delay, struct fb_info *info); int mxc_epdc_get_pwrdown_delay(struct fb_info *info); |