
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 {