xref: /OK3568_Linux_fs/kernel/include/linux/platform_data/video-mx3fb.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (C) 2008
4*4882a593Smuzhiyun  * Guennadi Liakhovetski, DENX Software Engineering, <lg@denx.de>
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef __ASM_ARCH_MX3FB_H__
8*4882a593Smuzhiyun #define __ASM_ARCH_MX3FB_H__
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #include <linux/device.h>
11*4882a593Smuzhiyun #include <linux/fb.h>
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun /* Proprietary FB_SYNC_ flags */
14*4882a593Smuzhiyun #define FB_SYNC_OE_ACT_HIGH	0x80000000
15*4882a593Smuzhiyun #define FB_SYNC_CLK_INVERT	0x40000000
16*4882a593Smuzhiyun #define FB_SYNC_DATA_INVERT	0x20000000
17*4882a593Smuzhiyun #define FB_SYNC_CLK_IDLE_EN	0x10000000
18*4882a593Smuzhiyun #define FB_SYNC_SHARP_MODE	0x08000000
19*4882a593Smuzhiyun #define FB_SYNC_SWAP_RGB	0x04000000
20*4882a593Smuzhiyun #define FB_SYNC_CLK_SEL_EN	0x02000000
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun /*
23*4882a593Smuzhiyun  * Specify the way your display is connected. The IPU can arbitrarily
24*4882a593Smuzhiyun  * map the internal colors to the external data lines. We only support
25*4882a593Smuzhiyun  * the following mappings at the moment.
26*4882a593Smuzhiyun  */
27*4882a593Smuzhiyun enum disp_data_mapping {
28*4882a593Smuzhiyun 	/* blue -> d[0..5], green -> d[6..11], red -> d[12..17] */
29*4882a593Smuzhiyun 	IPU_DISP_DATA_MAPPING_RGB666,
30*4882a593Smuzhiyun 	/* blue -> d[0..4], green -> d[5..10], red -> d[11..15] */
31*4882a593Smuzhiyun 	IPU_DISP_DATA_MAPPING_RGB565,
32*4882a593Smuzhiyun 	/* blue -> d[0..7], green -> d[8..15], red -> d[16..23] */
33*4882a593Smuzhiyun 	IPU_DISP_DATA_MAPPING_RGB888,
34*4882a593Smuzhiyun };
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun /**
37*4882a593Smuzhiyun  * struct mx3fb_platform_data - mx3fb platform data
38*4882a593Smuzhiyun  *
39*4882a593Smuzhiyun  * @dma_dev:	pointer to the dma-device, used for dma-slave connection
40*4882a593Smuzhiyun  * @mode:	pointer to a platform-provided per mxc_register_fb() videomode
41*4882a593Smuzhiyun  */
42*4882a593Smuzhiyun struct mx3fb_platform_data {
43*4882a593Smuzhiyun 	struct device			*dma_dev;
44*4882a593Smuzhiyun 	const char			*name;
45*4882a593Smuzhiyun 	const struct fb_videomode	*mode;
46*4882a593Smuzhiyun 	int				num_modes;
47*4882a593Smuzhiyun 	enum disp_data_mapping		disp_data_fmt;
48*4882a593Smuzhiyun };
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun #endif
51