[U-Boot] [PATCH 3/8] pxa_lcd: allow L_BIAS line to be unused

Mike Dunn
2013-04-07T16:41:00Z

This patch adds a config option CONFIG_SYS_LCD_PXA_NO_L_BIAS, which causes the
lcd controller initialization code to leave as an ordinary gpio the line that is
typically configured as the lcd L_BIAS alternate function (this is the gpio 77
line).

For some reason (I don't have a datasheet), the lcd device on the palmtreo680
board does not use the L_BIAS line. PalmOS does not configure the gpio 77 line
for the L_BIAS alternate function, and if it is configured as such, the lcd does
not work.

Signed-off-by: Mike Dunn <mikedunn@newsguy.com>
---

This is a little ugly, I know, but I didn't want to try and get too fancy.

drivers/video/pxa_lcd.c | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/drivers/video/pxa_lcd.c b/drivers/video/pxa_lcd.c
index fd848ef..29f62e9 100644
--- a/drivers/video/pxa_lcd.c
+++ b/drivers/video/pxa_lcd.c
@@ -478,8 +478,13 @@ static void pxafb_setup_gpio (vidinfo_t *vid)

/* bits 74-77 */
writel(readl(GPDR2) | (0xf << 10), GPDR2);
+#ifdef CONFIG_SYS_LCD_PXA_NO_L_BIAS
+ writel((readl(GAFR2_L) & ~(0xff << 20)) | (0x2a << 20),
+ GAFR2_L);
+#else
writel((readl(GAFR2_L) & ~(0xff << 20)) | (0xaa << 20),
- GAFR2_L);
+ GAFR2_L);
+#endif
}

/* 8 bit interface */
@@ -497,8 +502,13 @@ static void pxafb_setup_gpio (vidinfo_t *vid)

/* bits 74-77 */
writel(readl(GPDR2) | (0xf << 10), GPDR2);
+#ifdef CONFIG_SYS_LCD_PXA_NO_L_BIAS
+ writel((readl(GAFR2_L) & ~(0xff << 20)) | (0x2a << 20),
+ GAFR2_L);
+#else
writel((readl(GAFR2_L) & ~(0xff << 20)) | (0xaa << 20),
- GAFR2_L);
+ GAFR2_L);
+#endif
}

/* 16 bit interface */
@@ -511,7 +521,11 @@ static void pxafb_setup_gpio (vidinfo_t *vid)

writel((readl(GAFR1_U) & ~(0xfff << 20)) | (0xaaa << 20),
GAFR1_U);
+#ifdef CONFIG_SYS_LCD_PXA_NO_L_BIAS
+ writel((readl(GAFR2_L) & 0xf0000000) | 0x02aaaaaa, GAFR2_L);
+#else
writel((readl(GAFR2_L) & 0xf0000000) | 0x0aaaaaaa, GAFR2_L);
+#endif
}
else
{
--
1.7.8.6