summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiu Ying <Ying.Liu@freescale.com>2013-08-05 15:41:46 +0800
committerJason Liu <r64343@freescale.com>2013-10-30 09:54:26 +0800
commit8014adda7cfe857f497f28ec3af34d3e5489e8f0 (patch)
tree822ce66c96d86615773864d57388d661fc93ba06
parent115498d03d9ea754703eabb0fa21098043a1a859 (diff)
ENGR00273854 mxcfb: header file split up
This patch splits mxcfb header file up to include/linux/ directory and include/uapi/linux/ directory so that the userspace may include the mxcfb header file. This patch also fixes some annotations and macros about the header file's naming. Signed-off-by: Liu Ying <Ying.Liu@freescale.com>
-rw-r--r--include/linux/mxcfb.h153
-rw-r--r--include/uapi/linux/Kbuild1
-rw-r--r--include/uapi/linux/mxcfb.h174
3 files changed, 179 insertions, 149 deletions
diff --git a/include/linux/mxcfb.h b/include/linux/mxcfb.h
index d96d1b773a3c..67db5ee3fd11 100644
--- a/include/linux/mxcfb.h
+++ b/include/linux/mxcfb.h
@@ -12,160 +12,16 @@
*/
/*
- * @file arch-mxc/ mxcfb.h
+ * @file linux/mxcfb.h
*
* @brief Global header file for the MXC Frame buffer
*
* @ingroup Framebuffer
*/
-#ifndef __ASM_ARCH_MXCFB_H__
-#define __ASM_ARCH_MXCFB_H__
+#ifndef __LINUX_MXCFB_H__
+#define __LINUX_MXCFB_H__
-#include <linux/fb.h>
-
-#define FB_SYNC_OE_LOW_ACT 0x80000000
-#define FB_SYNC_CLK_LAT_FALL 0x40000000
-#define FB_SYNC_DATA_INVERT 0x20000000
-#define FB_SYNC_CLK_IDLE_EN 0x10000000
-#define FB_SYNC_SHARP_MODE 0x08000000
-#define FB_SYNC_SWAP_RGB 0x04000000
-#define FB_ACCEL_TRIPLE_FLAG 0x00000000
-#define FB_ACCEL_DOUBLE_FLAG 0x00000001
-
-struct mxcfb_gbl_alpha {
- int enable;
- int alpha;
-};
-
-struct mxcfb_loc_alpha {
- int enable;
- int alpha_in_pixel;
- unsigned long alpha_phy_addr0;
- unsigned long alpha_phy_addr1;
-};
-
-struct mxcfb_color_key {
- int enable;
- __u32 color_key;
-};
-
-struct mxcfb_pos {
- __u16 x;
- __u16 y;
-};
-
-struct mxcfb_gamma {
- int enable;
- int constk[16];
- int slopek[16];
-};
-
-struct mxcfb_rect {
- __u32 top;
- __u32 left;
- __u32 width;
- __u32 height;
-};
-
-#define GRAYSCALE_8BIT 0x1
-#define GRAYSCALE_8BIT_INVERTED 0x2
-#define GRAYSCALE_4BIT 0x3
-#define GRAYSCALE_4BIT_INVERTED 0x4
-
-#define AUTO_UPDATE_MODE_REGION_MODE 0
-#define AUTO_UPDATE_MODE_AUTOMATIC_MODE 1
-
-#define UPDATE_SCHEME_SNAPSHOT 0
-#define UPDATE_SCHEME_QUEUE 1
-#define UPDATE_SCHEME_QUEUE_AND_MERGE 2
-
-#define UPDATE_MODE_PARTIAL 0x0
-#define UPDATE_MODE_FULL 0x1
-
-#define WAVEFORM_MODE_AUTO 257
-
-#define TEMP_USE_AMBIENT 0x1000
-
-#define EPDC_FLAG_ENABLE_INVERSION 0x01
-#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 EPDC_FLAG_USE_DITHERING_Y1 0x2000
-#define EPDC_FLAG_USE_DITHERING_Y4 0x4000
-
-#define FB_POWERDOWN_DISABLE -1
-
-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;
- unsigned int flags;
- 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
- */
-struct mxcfb_waveform_modes {
- int mode_init;
- int mode_du;
- int mode_gc4;
- int mode_gc8;
- int mode_gc16;
- int mode_gc32;
-};
-
-/*
- * Structure used to define a 5*3 matrix of parameters for
- * setting IPU DP CSC module related to this framebuffer.
- */
-struct mxcfb_csc_matrix {
- int param[5][3];
-};
-
-#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)
-#define MXCFB_SET_OVERLAY_POS _IOWR('F', 0x24, struct mxcfb_pos)
-#define MXCFB_GET_FB_IPU_CHAN _IOR('F', 0x25, u_int32_t)
-#define MXCFB_SET_LOC_ALPHA _IOWR('F', 0x26, struct mxcfb_loc_alpha)
-#define MXCFB_SET_LOC_ALP_BUF _IOW('F', 0x27, unsigned long)
-#define MXCFB_SET_GAMMA _IOW('F', 0x28, 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)
-#define MXCFB_GET_FB_BLANK _IOR('F', 0x2B, u_int32_t)
-#define MXCFB_SET_DIFMT _IOW('F', 0x2C, u_int32_t)
-#define MXCFB_CSC_UPDATE _IOW('F', 0x2D, struct mxcfb_csc_matrix)
-
-/* 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 _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)
-#define MXCFB_GET_WORK_BUFFER _IOWR('F', 0x34, unsigned long)
-
-#ifdef __KERNEL__
+#include <uapi/linux/mxcfb.h>
extern struct fb_videomode mxcfb_modedb[];
extern int mxcfb_modedb_sz;
@@ -187,5 +43,4 @@ int mxc_elcdif_frame_addr_setup(dma_addr_t phys);
void mxcfb_elcdif_register_mode(const struct fb_videomode *modedb,
int num_modes, int dev_mode);
-#endif /* __KERNEL__ */
#endif
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index 501638c74af1..a19cdb19899d 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -250,6 +250,7 @@ header-y += mroute6.h
header-y += msdos_fs.h
header-y += msg.h
header-y += mtio.h
+header-y += mxcfb.h
header-y += n_r3964.h
header-y += nbd.h
header-y += ncp.h
diff --git a/include/uapi/linux/mxcfb.h b/include/uapi/linux/mxcfb.h
new file mode 100644
index 000000000000..672696184897
--- /dev/null
+++ b/include/uapi/linux/mxcfb.h
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2013 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+/*
+ * @file uapi/linux/mxcfb.h
+ *
+ * @brief Global header file for the MXC frame buffer
+ *
+ * @ingroup Framebuffer
+ */
+#ifndef __ASM_ARCH_MXCFB_H__
+#define __ASM_ARCH_MXCFB_H__
+
+#include <linux/fb.h>
+
+#define FB_SYNC_OE_LOW_ACT 0x80000000
+#define FB_SYNC_CLK_LAT_FALL 0x40000000
+#define FB_SYNC_DATA_INVERT 0x20000000
+#define FB_SYNC_CLK_IDLE_EN 0x10000000
+#define FB_SYNC_SHARP_MODE 0x08000000
+#define FB_SYNC_SWAP_RGB 0x04000000
+#define FB_ACCEL_TRIPLE_FLAG 0x00000000
+#define FB_ACCEL_DOUBLE_FLAG 0x00000001
+
+struct mxcfb_gbl_alpha {
+ int enable;
+ int alpha;
+};
+
+struct mxcfb_loc_alpha {
+ int enable;
+ int alpha_in_pixel;
+ unsigned long alpha_phy_addr0;
+ unsigned long alpha_phy_addr1;
+};
+
+struct mxcfb_color_key {
+ int enable;
+ __u32 color_key;
+};
+
+struct mxcfb_pos {
+ __u16 x;
+ __u16 y;
+};
+
+struct mxcfb_gamma {
+ int enable;
+ int constk[16];
+ int slopek[16];
+};
+
+struct mxcfb_rect {
+ __u32 top;
+ __u32 left;
+ __u32 width;
+ __u32 height;
+};
+
+#define GRAYSCALE_8BIT 0x1
+#define GRAYSCALE_8BIT_INVERTED 0x2
+#define GRAYSCALE_4BIT 0x3
+#define GRAYSCALE_4BIT_INVERTED 0x4
+
+#define AUTO_UPDATE_MODE_REGION_MODE 0
+#define AUTO_UPDATE_MODE_AUTOMATIC_MODE 1
+
+#define UPDATE_SCHEME_SNAPSHOT 0
+#define UPDATE_SCHEME_QUEUE 1
+#define UPDATE_SCHEME_QUEUE_AND_MERGE 2
+
+#define UPDATE_MODE_PARTIAL 0x0
+#define UPDATE_MODE_FULL 0x1
+
+#define WAVEFORM_MODE_AUTO 257
+
+#define TEMP_USE_AMBIENT 0x1000
+
+#define EPDC_FLAG_ENABLE_INVERSION 0x01
+#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 EPDC_FLAG_USE_DITHERING_Y1 0x2000
+#define EPDC_FLAG_USE_DITHERING_Y4 0x4000
+
+#define FB_POWERDOWN_DISABLE -1
+
+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;
+ unsigned int flags;
+ 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
+ */
+struct mxcfb_waveform_modes {
+ int mode_init;
+ int mode_du;
+ int mode_gc4;
+ int mode_gc8;
+ int mode_gc16;
+ int mode_gc32;
+};
+
+/*
+ * Structure used to define a 5*3 matrix of parameters for
+ * setting IPU DP CSC module related to this framebuffer.
+ */
+struct mxcfb_csc_matrix {
+ int param[5][3];
+};
+
+#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)
+#define MXCFB_SET_OVERLAY_POS _IOWR('F', 0x24, struct mxcfb_pos)
+#define MXCFB_GET_FB_IPU_CHAN _IOR('F', 0x25, u_int32_t)
+#define MXCFB_SET_LOC_ALPHA _IOWR('F', 0x26, struct mxcfb_loc_alpha)
+#define MXCFB_SET_LOC_ALP_BUF _IOW('F', 0x27, unsigned long)
+#define MXCFB_SET_GAMMA _IOW('F', 0x28, 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)
+#define MXCFB_GET_FB_BLANK _IOR('F', 0x2B, u_int32_t)
+#define MXCFB_SET_DIFMT _IOW('F', 0x2C, u_int32_t)
+#define MXCFB_CSC_UPDATE _IOW('F', 0x2D, struct mxcfb_csc_matrix)
+
+/* 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 _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)
+#define MXCFB_GET_WORK_BUFFER _IOWR('F', 0x34, unsigned long)
+#endif