OSDN Git Service

[ARM] pxa: make ads7846 on corgi and spitz to sync on HSYNC
authorEric Miao <eric.miao@marvell.com>
Fri, 6 Feb 2009 08:49:23 +0000 (16:49 +0800)
committerEric Miao <eric.miao@marvell.com>
Mon, 27 Apr 2009 03:45:53 +0000 (11:45 +0800)
Signed-off-by: Eric Miao <eric.miao@marvell.com>
arch/arm/mach-pxa/corgi.c
arch/arm/mach-pxa/spitz.c

index cdf21dd..930e364 100644 (file)
@@ -427,12 +427,22 @@ static struct pxa2xx_spi_master corgi_spi_info = {
        .num_chipselect = 3,
 };
 
+static void corgi_wait_for_hsync(void)
+{
+       while (gpio_get_value(CORGI_GPIO_HSYNC))
+               cpu_relax();
+
+       while (!gpio_get_value(CORGI_GPIO_HSYNC))
+               cpu_relax();
+}
+
 static struct ads7846_platform_data corgi_ads7846_info = {
        .model                  = 7846,
        .vref_delay_usecs       = 100,
        .x_plate_ohms           = 419,
        .y_plate_ohms           = 486,
        .gpio_pendown           = CORGI_GPIO_TP_INT,
+       .wait_for_sync          = corgi_wait_for_hsync,
 };
 
 static void corgi_ads7846_cs(u32 command)
index 8c61dda..c18e34a 100644 (file)
@@ -299,12 +299,22 @@ static struct pxa2xx_spi_master spitz_spi_info = {
        .num_chipselect = 3,
 };
 
+static void spitz_wait_for_hsync(void)
+{
+       while (gpio_get_value(SPITZ_GPIO_HSYNC))
+               cpu_relax();
+
+       while (!gpio_get_value(SPITZ_GPIO_HSYNC))
+               cpu_relax();
+}
+
 static struct ads7846_platform_data spitz_ads7846_info = {
        .model                  = 7846,
        .vref_delay_usecs       = 100,
        .x_plate_ohms           = 419,
        .y_plate_ohms           = 486,
        .gpio_pendown           = SPITZ_GPIO_TP_INT,
+       .wait_for_sync          = spitz_wait_for_hsync,
 };
 
 static void spitz_ads7846_cs(u32 command)