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

Mike Dunn mikedunn at newsguy.com
Sun Apr 7 18:41:00 CEST 2013


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 at 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



More information about the U-Boot mailing list