Hi,
Giri submitted the initial patch that was put in update 1. The 2nd
fix is actually an issue with the chip select of
another SPI device slave. The chip select was stuck on and the
SPI device for the LCD device had its output
stuck high. This was actually broken outside Linux source but will
be fixed in the Linux source in the next
patch. (Actually, I plan on adding most of the non-memory chip
muxing into the kernel later.)
thanks,
Kevin
From: Burghardt Arne
[mailto:address@hidden
Sent: Tuesday, August 10, 2010 1:16 AM
To: Bangaragiri G
Cc: address@hidden; Kevin Wells
Subject: AW: [Ltib] EA3250: Touchscreen not functional with 2.6.34
kernel
Hi Giri,
this line is already patched in the current CVS repository.
The problem was solved with a fix from Kevin. Nevertheless thank you for your
help !
Arne
-----Ursprüngliche Nachricht-----
Von: Bangaragiri G [mailto:address@hidden]
Gesendet: Di 10.08.2010 07:20
An: Burghardt Arne
Cc: address@hidden; Kevin Wells
Betreff: RE: [Ltib] EA3250: Touchscreen not functional with 2.6.34 kernel
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
|