aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-mxc/include
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2011-12-01 08:58:52 -0500
committerVinod Koul <vinod.koul@linux.intel.com>2011-12-08 02:29:03 -0500
commitf910fb8fcd1c97788f2291c8646597bcd87ee061 (patch)
treeb13f6aef306f3c708a6338bdbdaa3268d62d0508 /arch/arm/plat-mxc/include
parentc99e78435342a65a6a0bf9b86f87fd05831858d2 (diff)
video i.MX IPU: Fix display connections
The IPU internally works on 32bit colors. It can arbitrarily map between pixel formats and internal representation and also between internal representation and the physical connection to the display. The driver used to change the mapping between internal representation and display connection depending on the user selected bpp which is wrong. Instead, the mapping is specified by the hardware, so an additional field in platform data is added to describe the connection between i.MX and the display. The default for this field is RGB666 which seems to be the only configuration which works without this patch, so I assumed that all in Kernel boards are connected this way. This patch has been tested on a RGB666 connected display and a RGB888 connected display in both 16bpp and 32bpp modes. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Diffstat (limited to 'arch/arm/plat-mxc/include')
-rw-r--r--arch/arm/plat-mxc/include/mach/mx3fb.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/plat-mxc/include/mach/mx3fb.h b/arch/arm/plat-mxc/include/mach/mx3fb.h
index ac24c5c4bc83..fdbe60001542 100644
--- a/arch/arm/plat-mxc/include/mach/mx3fb.h
+++ b/arch/arm/plat-mxc/include/mach/mx3fb.h
@@ -22,6 +22,20 @@
22#define FB_SYNC_SWAP_RGB 0x04000000 22#define FB_SYNC_SWAP_RGB 0x04000000
23#define FB_SYNC_CLK_SEL_EN 0x02000000 23#define FB_SYNC_CLK_SEL_EN 0x02000000
24 24
25/*
26 * Specify the way your display is connected. The IPU can arbitrarily
27 * map the internal colors to the external data lines. We only support
28 * the following mappings at the moment.
29 */
30enum disp_data_mapping {
31 /* blue -> d[0..5], green -> d[6..11], red -> d[12..17] */
32 IPU_DISP_DATA_MAPPING_RGB666,
33 /* blue -> d[0..4], green -> d[5..10], red -> d[11..15] */
34 IPU_DISP_DATA_MAPPING_RGB565,
35 /* blue -> d[0..7], green -> d[8..15], red -> d[16..23] */
36 IPU_DISP_DATA_MAPPING_RGB888,
37};
38
25/** 39/**
26 * struct mx3fb_platform_data - mx3fb platform data 40 * struct mx3fb_platform_data - mx3fb platform data
27 * 41 *
@@ -33,6 +47,7 @@ struct mx3fb_platform_data {
33 const char *name; 47 const char *name;
34 const struct fb_videomode *mode; 48 const struct fb_videomode *mode;
35 int num_modes; 49 int num_modes;
50 enum disp_data_mapping disp_data_fmt;
36}; 51};
37 52
38#endif 53#endif