From af4e12857ae917ea1428c5b4fdb439ec837d9731 Mon Sep 17 00:00:00 2001 From: lhh Date: Wed, 8 Sep 2010 22:20:32 +0800 Subject: [PATCH] add it50 touch --- arch/arm/configs/rk2818_info_defconfig | 4 ++-- arch/arm/configs/rk2818_info_it50_defconfig | 2 +- arch/arm/mach-rk2818/board-infoit50.c | 2 +- drivers/input/touchscreen/xpt2046_ts.c | 10 ++++++++++ 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/arch/arm/configs/rk2818_info_defconfig b/arch/arm/configs/rk2818_info_defconfig index 5483cb7218f0..f5fa5e576021 100755 --- a/arch/arm/configs/rk2818_info_defconfig +++ b/arch/arm/configs/rk2818_info_defconfig @@ -890,7 +890,7 @@ CONFIG_GPIOLIB=y CONFIG_IOEXTEND_TCA6424=y CONFIG_EXPANDED_GPIO_NUM=24 CONFIG_EXPANDED_GPIO_IRQ_NUM=24 -CONFIG_SOFT_INTERRUPT=y +CONFIG_EXPAND_GPIO_SOFT_INTERRUPT=y CONFIG_SPI_FPGA_GPIO_NUM=0 CONFIG_SPI_FPGA_GPIO_IRQ_NUM=0 # CONFIG_W1 is not set @@ -1913,4 +1913,4 @@ CONFIG_REED_SOLOMON_DEC8=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y -CONFIG_NLATTR=y \ No newline at end of file +CONFIG_NLATTR=y diff --git a/arch/arm/configs/rk2818_info_it50_defconfig b/arch/arm/configs/rk2818_info_it50_defconfig index d3c84c1d9fce..6be18d7e8884 100644 --- a/arch/arm/configs/rk2818_info_it50_defconfig +++ b/arch/arm/configs/rk2818_info_it50_defconfig @@ -863,7 +863,7 @@ CONFIG_GPIOLIB=y CONFIG_IOEXTEND_TCA6424=y CONFIG_EXPANDED_GPIO_NUM=24 CONFIG_EXPANDED_GPIO_IRQ_NUM=24 -CONFIG_SOFT_INTERRUPT=y +CONFIG_EXPAND_GPIO_SOFT_INTERRUPT=y CONFIG_SPI_FPGA_GPIO_NUM=0 CONFIG_SPI_FPGA_GPIO_IRQ_NUM=0 # CONFIG_W1 is not set diff --git a/arch/arm/mach-rk2818/board-infoit50.c b/arch/arm/mach-rk2818/board-infoit50.c index 20761408772a..6d02d50baccf 100644 --- a/arch/arm/mach-rk2818/board-infoit50.c +++ b/arch/arm/mach-rk2818/board-infoit50.c @@ -913,7 +913,7 @@ struct rk2818_spi_platform_data rk2818_spi_platdata = { static struct xpt2046_platform_data xpt2046_info = { .model = 2046, .keep_vref_on = 1, - .swap_xy = 1, + .swap_xy = 0, .x_min = 0, .x_max = 800, .y_min = 0, diff --git a/drivers/input/touchscreen/xpt2046_ts.c b/drivers/input/touchscreen/xpt2046_ts.c index de597bef2a42..d2a6d64c2684 100755 --- a/drivers/input/touchscreen/xpt2046_ts.c +++ b/drivers/input/touchscreen/xpt2046_ts.c @@ -54,12 +54,22 @@ #endif #define LCD_MAX_LENGTH 800 #define LCD_MAX_WIDTH 480 + +#ifdef CONFIG_MACH_RK2818INFO_IT50 +#define PT2046_TOUCH_AD_LEFT 4000 +#define PT2046_TOUCH_AD_RIGHT 110 +#define PT2046_TOUCH_AD_TOP 110 +#define PT2046_TOUCH_AD_BOTTOM 3800 +#define AD_TO_Y(adx) (LCD_MAX_WIDTH * ( PT2046_TOUCH_AD_BOTTOM - adx) / ( PT2046_TOUCH_AD_BOTTOM - PT2046_TOUCH_AD_TOP )) +#define AD_TO_X(ady) (LCD_MAX_LENGTH * (PT2046_TOUCH_AD_LEFT - ady) / (PT2046_TOUCH_AD_LEFT - PT2046_TOUCH_AD_RIGHT)) +#else #define PT2046_TOUCH_AD_LEFT 3855 #define PT2046_TOUCH_AD_RIGHT 260 #define PT2046_TOUCH_AD_TOP 300 #define PT2046_TOUCH_AD_BOTTOM 3755 #define AD_TO_X(adx) (LCD_MAX_WIDTH * (adx - PT2046_TOUCH_AD_TOP) / ( PT2046_TOUCH_AD_BOTTOM - PT2046_TOUCH_AD_TOP )) #define AD_TO_Y(ady) (LCD_MAX_LENGTH * (PT2046_TOUCH_AD_LEFT - ady) / (PT2046_TOUCH_AD_LEFT - PT2046_TOUCH_AD_RIGHT)) +#endif #define TS_POLL_DELAY (10 * 1000000) /* ns delay before the first sample */ #define TS_POLL_PERIOD (20 * 1000000) /* ns delay between samples */ -- 2.34.1