aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2016-06-16 05:36:15 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2016-08-11 10:54:53 -0400
commit03d14c36af98dd2191c2e35b5ed55ff93b59d345 (patch)
tree80ce9c2dac706da03271214a645b0c04e10111cb /drivers/video
parentaf29897f1046d7c1ab86b57506fbfdcfba569de8 (diff)
video: ARM CLCD: support pads connected in reverse order
There are CLCDs connected with the pads in BGR rather than RGB order. It really doesn't matter since the CLCD has a flag and a bit to switch the position of the RGB and BGR components. This is needed to put something logical into the arm,pl11x,tft-r0g0b0-pads property of the device tree on the Nomadik which will then be <16 8 0>. Cc: Pawel Moll <pawel.moll@arm.com> Cc: Rob Herring <robh@kernel.org> Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/fbdev/amba-clcd.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
index 5bd20e8800bc..080e8a246faf 100644
--- a/drivers/video/fbdev/amba-clcd.c
+++ b/drivers/video/fbdev/amba-clcd.c
@@ -675,6 +675,7 @@ static int clcdfb_of_init_tft_panel(struct clcd_fb *fb, u32 r0, u32 g0, u32 b0)
675 } panels[] = { 675 } panels[] = {
676 { 0x110, 1, 7, 13, CLCD_CAP_5551 }, 676 { 0x110, 1, 7, 13, CLCD_CAP_5551 },
677 { 0x110, 0, 8, 16, CLCD_CAP_888 }, 677 { 0x110, 0, 8, 16, CLCD_CAP_888 },
678 { 0x110, 16, 8, 0, CLCD_CAP_888 },
678 { 0x111, 4, 14, 20, CLCD_CAP_444 }, 679 { 0x111, 4, 14, 20, CLCD_CAP_444 },
679 { 0x111, 3, 11, 19, CLCD_CAP_444 | CLCD_CAP_5551 }, 680 { 0x111, 3, 11, 19, CLCD_CAP_444 | CLCD_CAP_5551 },
680 { 0x111, 3, 10, 19, CLCD_CAP_444 | CLCD_CAP_5551 | 681 { 0x111, 3, 10, 19, CLCD_CAP_444 | CLCD_CAP_5551 |
@@ -702,6 +703,13 @@ static int clcdfb_of_init_tft_panel(struct clcd_fb *fb, u32 r0, u32 g0, u32 b0)
702 fb->panel->caps = panels[i].caps; 703 fb->panel->caps = panels[i].caps;
703 } 704 }
704 705
706 /*
707 * If we actually physically connected the R lines to B and
708 * vice versa
709 */
710 if (r0 != 0 && b0 == 0)
711 fb->panel->bgr_connection = true;
712
705 return fb->panel->caps ? 0 : -EINVAL; 713 return fb->panel->caps ? 0 : -EINVAL;
706} 714}
707 715