Hi
Arne,
We
found the touch screen problem while we were debugging another problem, the
problem is in GPIO driver code.
On GPIO driver (arch/arm/mach-lpc32xx/gpiolib.c) GPIO3_PIN_IN_SEL
macro definition is incorrect it return the complete content of the register
instead of 1/0 it has to be and-ed with 1, this was stopping the touch panel
from working (might affect other devices that are connected to GPIO bank 3)
The patch for this problem is as shown below:
diff --git a/arch/arm/mach-lpc32xx/gpiolib.c
b/arch/arm/mach-lpc32xx/gpiolib.c
index 69061ea..073bc9b 100644
--- a/arch/arm/mach-lpc32xx/gpiolib.c
+++ b/arch/arm/mach-lpc32xx/gpiolib.c
@@ -59,7 +59,7 @@
#define GPO3_PIN_TO_BIT(x) (1
<< (x))
#define GPIO012_PIN_IN_SEL(x, y) (((x)
>> (y)) & 1)
#define GPIO3_PIN_IN_SHIFT(x) ((x)
== 5 ? 24 : 10 + (x))
-#define GPIO3_PIN_IN_SEL(x, y) ((x)
>> GPIO3_PIN_IN_SHIFT(y))
+#define GPIO3_PIN_IN_SEL(x, y) (((x)
>> GPIO3_PIN_IN_SHIFT(y)) & 1)
#define GPIO3_PIN5_IN_SEL(x) (((x)
>> 24) & 1)
#define GPI3_PIN_IN_SEL(x, y) (((x)
>> (y)) & 1)
Can
you please try with this patch?
Regards,
Giri
-----------------------------------------------------------------
Bangaragiri
G
E-mail:
address@hidden
From:
address@hidden [mailto:address@hidden
On Behalf Of Burghardt Arne
Sent: 2010 Aug 10 12:05 AM
To: Kevin Wells
Cc: address@hidden
Subject: AW: [Ltib] EA3250: Touchscreen not functional with 2.6.34
kernel
Hi Kevin,
i will try your patch tomorrow morning, when i am back in the office again.
To be honest, i am a little bit unsure, if this patch really changes the
behaviour of the SPI1 MISO pin. As far as i can see you have made the changes
in the LCD controller section to pin GPI05, but MISO for SPI1 is pin GPI_25.
Is there any relationship between these two pins ?
Best regards
Arne (4 characters... ;-) )
-----Ursprüngliche Nachricht-----
Von: Kevin Wells [mailto:address@hidden]
Gesendet: Mo 09.08.2010 19:18
An: Kevin Wells; Burghardt Arne
Cc: address@hidden
Betreff: RE: [Ltib] EA3250: Touchscreen not functional with 2.6.34 kernel
Hi Ame,
Please add the following change to your ea3250.c file in the rpm/BUILD/Linux-2.6.34/arch/arm/mach-lpc32xx
directory.
This worked at one point, so I suspect there is a small difference between the
original board loader and the updated v2 loader with initial pin states.
I've added this as a bug in our tracker. This should be updated in about a week
with a new patch once it's looked at a little more..
Kevin
---
ea3250.c.bak
2010-08-09 03:10:01.210875666 -0700
+++ ea3250.c 2010-08-09 03:13:14.284813544 -0700
@@ -56,6 +56,7 @@
#define
LCD_CS_GPIO LPC32XX_GPIO(LPC32XX_GPO_P3_GRP, 4)
#define
LCD_RS_GPIO LPC32XX_GPIO(LPC32XX_GPO_P3_GRP, 5)
#define
BKL_POW_GPIO
LPC32XX_GPIO(LPC32XX_GPO_P3_GRP, 14)
+#define SSEL0_GPIO5 LPC32XX_GPIO(LPC32XX_GPIO_P3_GRP, 5)
/*
* LCD controller functions
@@ -311,6 +312,11 @@
fb->fb.fix.smem_len =
PANEL_SIZE;
fb->panel =
&conn_lcd_panel;
+ if
(gpio_request(SSEL0_GPIO5, "Unused GPIO5 input"))
+
return -EIO;
+
if(gpio_direction_input(SSEL0_GPIO5))
+
return -EIO;
+
/* Configure LCDC RS GPIO pin
*/
if (gpio_request(LCD_RS_GPIO,
"LCDC RS"))
return -EIO;
Subject: RE: [Ltib] EA3250: Touchscreen not functional with 2.6.34 kernel
Hi Ame,
Sorry, it does seem broken. I'll try to get a quick fix for this in the next
day.
thanks,
Kevin
From: Burghardt Arne [mailto:address@hidden]
Sent: Monday, August 09, 2010 5:48 AM
To: Kevin Wells
Cc: address@hidden
Subject: [Ltib] EA3250: Touchscreen not functional with 2.6.34 kernel
Hi Kevin,
i have attached a scope to the SPI signals of the TSC2046 touchscreen
controller and got some interesting results:
1) CS, CLK & MOSI signals are ok
2) MISO has a low level of ~2.0 V ! High level is ~3.1V
That smells, if there are some output drivers connected...
Could you please check, if the signal SPI1_DATIN (GPI_25) is configured as an
input ? I have already searched for the init procedure, where all GPIOs or SPI
related registers are initialized, but without success.
Thanks for your help !
Best regards
Arne