[PATCH 1/3] ARM: pxa: palmtreo: fix lcd initialization on treo680
From: marex@denx.de (Marek Vasut)
Date: 2012-12-23 03:18:49
Dear Mike Dunn, I think you should Cc Haojian (done)
This patch gets the LCD working on my Palm Treo680. Changing the Palm Centro code is avoided (I don't have a Centro for testing at the moment), but some initialization is shuffled around a bit.
I think I have a spare device somewhere around. I might get it available to you somehow eventually -- but that'll need some further discussion. Let's postpone it for now.
This basically adds some code that manages the three gpios that interface to the lcd on the Treo 680. The precise role of each gpio in the hardware architecture is not entirely clear to me; this patch is the result of trial-and-error and observing how the PalmOS code initializes the lcd.
Yay, good old times ;-)
The need for this patch is not evident when Linux is loaded from PalmOS, because at that point the lcd-related gpios have already been configured. But when booting the kernel by other means, this patch is required unless the bootloader has performed the necessary initialializations.
You mean U-Boot ? Makes sense. [...]
static void __init treo680_init(void)
{
pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config));
palmphone_common_init();
+ treo680_lcd_init();I think you want to do treo680_gpio_configure() kind of thing and then call palm27x_lcd_init() from here. Even better of course would be to integrate this kind of GPIO fiddling with the backlight subsystem, so the LCD can be properly powered down when going LPM.
quoted hunk ↗ jump to hunk
palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, GPIO_NR_TREO680_SD_READONLY, GPIO_NR_TREO680_SD_POWER, 0); }@@ -438,6 +488,7 @@ static void __init centro_init(void) { pxa2xx_mfp_config(ARRAY_AND_SIZE(centro685_pin_config)); palmphone_common_init(); + palm27x_lcd_init(GPIO_NR_TREO_BL_POWER, &palm_320x320_new_lcd_mode); palm27x_mmc_init(GPIO_NR_TREO_SD_DETECT_N, -1, GPIO_NR_CENTRO_SD_POWER, 1); }
Best regards, Marek Vasut