diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2016-06-16 05:36:15 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2016-08-11 10:54:53 -0400 |
commit | 03d14c36af98dd2191c2e35b5ed55ff93b59d345 (patch) | |
tree | 80ce9c2dac706da03271214a645b0c04e10111cb /drivers/video | |
parent | af29897f1046d7c1ab86b57506fbfdcfba569de8 (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.c | 8 |
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 | ||