touch: Radyium: Move panel config structures to board files.
Robert Collins [Sun, 16 Sep 2012 18:10:45 +0000 (11:10 -0700)]
Reviewed-on: http://git-master/r/133110

Change-Id: I93343d2d67982fd05cb2c72b2d983c0f0cff5bf7
Signed-off-by: Robert Collins <rcollins@nvidia.com>
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/143115
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>

arch/arm/mach-tegra/board-cardhu.c
arch/arm/mach-tegra/board-cardhu.h
arch/arm/mach-tegra/board-kai.c
arch/arm/mach-tegra/board-touch-raydium.h [new file with mode: 0644]
arch/arm/mach-tegra/board-touch-raydium_spi.c
arch/arm/mach-tegra/board-touch.h

index fef9082..73d06ca 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/input.h>
 #include <linux/platform_data/tegra_usb.h>
 #include <linux/spi/spi.h>
+#include <linux/spi/rm31080a_ts.h>
 #include <linux/i2c/atmel_mxt_ts.h>
 #include <linux/tegra_uart.h>
 #include <linux/memblock.h>
@@ -73,7 +74,7 @@
 #include "board.h"
 #include "clock.h"
 #include "board-cardhu.h"
-#include "board-touch.h"
+#include "board-touch-raydium.h"
 #include "devices.h"
 #include "gpio-names.h"
 #include "fuse.h"
@@ -944,6 +945,75 @@ static __initdata struct tegra_clk_init_table spi_clk_init_table[] = {
        { NULL,         NULL,           0,              0},
 };
 
+/* Raydium touchscreen                     Driver data */
+/*-----------------------------------------------------*/
+static const u8 rm31080_config_cardhu[] = {
+       0x00, 0x00, 0x00, 0x00, 0x30, 0x1e, 0x20, 0x0f,
+       0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x10, 0x10, 0x06, 0x06, 0x04, 0x01, 0x02, 0x00,
+       0x00, 0x0a, 0x00, 0xd5, 0x2b, 0x00, 0x00, 0x09,
+       0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x28, 0xf8, 0x50, 0xce, 0x0a, 0x0c, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x16, 0x1b, 0x14, 0x16, 0x16, 0x18, 0x32, 0x19,
+       0x1d, 0x08, 0x30, 0x19, 0x10, 0xf6, 0xe2, 0x08,
+       0x28, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x21, 0x00, 0x00, 0x21, 0x00, 0x00, 0x21,
+       0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x80,
+       0x00, 0xc0, 0x00, 0xc2, 0x00, 0xf0, 0xed, 0x02,
+       0xed, 0x02, 0x00, 0x90, 0x0a, 0x06, 0x80, 0x02,
+       0x00, 0x04, 0x00, 0x20, 0x03, 0x02, 0x08, 0x03,
+       0x10, 0x20, 0x20, 0x40, 0x10, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x10, 0x10, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x50, 0x80, 0x02, 0x02, 0x02, 0x00, 0x00, 0x33,
+       0x32, 0x00, 0x01, 0x4c, 0xfa, 0x00, 0x00, 0x43,
+       0x3c, 0x00, 0x01, 0x38, 0xe6, 0x00, 0x00, 0x26,
+       0x19, 0x00, 0x02, 0x66, 0x19, 0x00, 0x02, 0x50,
+       0x64, 0x00, 0x00, 0x36, 0x4a, 0x00, 0x00, 0x0c,
+       0x19, 0x00, 0x02, 0x64, 0x96, 0xab, 0x88, 0x78,
+       0x88, 0x78, 0x04, 0x0f, 0x38, 0xff, 0x02, 0x04,
+       0x80, 0xe0, 0x13, 0x01, 0x00, 0x44, 0x61, 0x12,
+       0x41, 0x00, 0x00, 0x00, 0x00, 0x97, 0x01, 0x0c,
+       0x44, 0x61, 0x12, 0x29, 0x29, 0x41, 0x00, 0x00,
+       0x97, 0x06, 0x0c, 0x12, 0x41, 0x44, 0x52, 0x52,
+       0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x80, 0x80, 0x01, 0x80, 0x01, 0x80,
+       0x22, 0x33, 0x22, 0x33, 0x66, 0x20, 0xff, 0xc9,
+       0x19, 0xd0, 0xd0, 0x44, 0x00, 0x10, 0x00, 0x80,
+       0x05, 0x44, 0xff, 0x00, 0x00, 0x10, 0x50, 0x00,
+       0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x18, 0x0f,
+       0x0f, 0xf0, 0xf0, 0x00, 0x00, 0x10, 0x10, 0x00,
+       0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
+       0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x10, 0x01, 0x10, 0x01, 0x02,
+};
+
+struct rm_spi_ts_platform_data rm31080ts_cardhu_data = {
+       .gpio_reset = 0,
+       .config = 0,
+};
+
+struct spi_board_info rm31080a_cardhu_spi_board[1] = {
+       {
+        .modalias = "rm_ts_spidev",
+        .bus_num = 0,
+        .chip_select = 0,
+        .max_speed_hz = 13 * 1000 * 1000,
+        .mode = SPI_MODE_0,
+        .platform_data = &rm31080ts_cardhu_data,
+        },
+};
+
 static int __init cardhu_touch_init(void)
 {
        struct board_info BoardInfo, DisplayBoardInfo;
@@ -952,8 +1022,14 @@ static int __init cardhu_touch_init(void)
        tegra_get_display_board_info(&DisplayBoardInfo);
        if (DisplayBoardInfo.board_id == BOARD_DISPLAY_PM313) {
                tegra_clk_init_from_table(spi_clk_init_table);
-
-               touch_init_raydium(TEGRA_GPIO_PH4, TEGRA_GPIO_PH6, 2);
+               rm31080ts_cardhu_data.config = (char *) rm31080_config_cardhu;
+               rm31080ts_cardhu_data.platform_id = RM_PLATFORM_C210;
+               rm31080a_cardhu_spi_board[0].irq = gpio_to_irq(TOUCH_GPIO_IRQ_RAYDIUM_SPI);
+               touch_init_raydium(TOUCH_GPIO_IRQ_RAYDIUM_SPI,
+                                       TOUCH_GPIO_RST_RAYDIUM_SPI,
+                                       &rm31080ts_cardhu_data,
+                                       &rm31080a_cardhu_spi_board[0],
+                                       ARRAY_SIZE(rm31080a_cardhu_spi_board));
        } else {
                gpio_request(TEGRA_GPIO_PH4, "atmel-irq");
                gpio_direction_input(TEGRA_GPIO_PH4);
index 211dbce..8e2bb0b 100644 (file)
@@ -226,6 +226,13 @@ extern struct tegra_uart_platform_data cardhu_irda_pdata;
 #define MPU_TYPE_MPU3050       1
 #define MPU_TYPE_MPU6050       2
 #define MPU_GYRO_TYPE          MPU_TYPE_MPU3050
+
+/* Touch definitions */
+#define TOUCH_GPIO_IRQ_RAYDIUM_SPI      TEGRA_GPIO_PH4
+#define TOUCH_GPIO_RST_RAYDIUM_SPI      TEGRA_GPIO_PH6
+
+/* Sensor definitions */
+#define MPU_GYRO_NAME          "mpu3050"
 #define MPU_GYRO_IRQ_GPIO      TEGRA_GPIO_PX1
 #define MPU_GYRO_ADDR          0x68
 #define MPU_GYRO_BUS_NUM       2
index ad4fc0d..619dbe8 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/input.h>
 #include <linux/platform_data/tegra_usb.h>
 #include <linux/spi/spi.h>
+#include <linux/spi/rm31080a_ts.h>
 #include <linux/tegra_uart.h>
 #include <linux/memblock.h>
 #include <linux/spi-tegra.h>
@@ -67,7 +68,7 @@
 #include "board.h"
 #include "clock.h"
 #include "board-kai.h"
-#include "board-touch.h"
+#include "board-touch-raydium.h"
 #include "devices.h"
 #include "gpio-names.h"
 #include "fuse.h"
@@ -664,6 +665,127 @@ static __initdata struct tegra_clk_init_table touch_clk_init_table[] = {
        { NULL,         NULL,           0,              0},
 };
 
+
+/* Wintek 7" PCB (01.18.10.01.10), TS IC is on the mainboard */
+static const u8 rm31080_config_kai_pcb[] = {
+       0x00, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x20, 0x0f,
+       0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x07,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x19, 0x19, 0x06, 0x06, 0x04, 0x10, 0x02, 0x00,
+       0x00, 0x0a, 0x00, 0xd5, 0x2b, 0x00, 0x00, 0x09,
+       0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x28, 0xec, 0x5f, 0xce, 0x14, 0x0a, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x14, 0x19, 0x14, 0x19, 0x10, 0x10, 0x32, 0x12,
+       0x1d, 0x08, 0x20, 0x19, 0x10, 0xf6, 0xe2, 0x08,
+       0x1c, 0x04, 0x04, 0x20, 0x0f, 0x1c, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x28, 0x00, 0x10, 0x22, 0x00, 0x00, 0x21,
+       0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x60,
+       0x00, 0xa8, 0x00, 0xa8, 0x00, 0xd0, 0xed, 0x02,
+       0xed, 0x02, 0x00, 0x90, 0x0a, 0x06, 0x20, 0x02,
+       0x70, 0x03, 0x20, 0x1b, 0x03, 0x02, 0x08, 0x03,
+       0x10, 0x20, 0x20, 0x40, 0x10, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x20, 0x20, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x50, 0x80, 0x02, 0x02, 0x02, 0x00, 0x00, 0x33,
+       0x32, 0x00, 0x01, 0x60, 0xfa, 0x00, 0x00, 0x43,
+       0x3c, 0x00, 0x01, 0x4c, 0xe6, 0x00, 0x00, 0x26,
+       0x19, 0x00, 0x02, 0x7a, 0x19, 0x00, 0x02, 0x50,
+       0x64, 0x00, 0x00, 0x36, 0x4a, 0x00, 0x00, 0x0c,
+       0x19, 0x00, 0x02, 0x64, 0x96, 0xab, 0x88, 0x78,
+       0x88, 0x78, 0x04, 0x0f, 0x38, 0xff, 0x02, 0x04,
+       0x80, 0xe0, 0x13, 0x02, 0x00, 0x28, 0x17, 0x4b,
+       0x2e, 0x00, 0x00, 0x00, 0x00, 0x97, 0x06, 0x0c,
+       0x28, 0x17, 0x2e, 0x3c, 0x3c, 0x4b, 0x00, 0x00,
+       0x97, 0x06, 0x0c, 0x12, 0x41, 0x44, 0x52, 0x52,
+       0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x80, 0x80, 0x01, 0x80, 0x01, 0x80,
+       0x21, 0x33, 0x21, 0x33, 0x66, 0x20, 0xff, 0xc9,
+       0x19, 0xd0, 0xd0, 0x44, 0x00, 0x10, 0x00, 0x80,
+       0x05, 0x44, 0xff, 0x00, 0x00, 0x10, 0x50, 0x00,
+       0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x18, 0x0f,
+       0x0f, 0xf0, 0xf0, 0x00, 0x00, 0x10, 0x10, 0x00,
+       0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
+       0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x10, 0x01, 0x10, 0x01, 0x02,
+};
+
+/* Wintek 7" MB (01.18.10.01.10) */
+static const u8 rm31080_config_kai_mainboard[] = {
+       0x00, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x20, 0x0f,
+       0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x07,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x19, 0x19, 0x06, 0x06, 0x04, 0x10, 0x02, 0x00,
+       0x00, 0x0a, 0x00, 0xd5, 0x2b, 0x00, 0x00, 0x09,
+       0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x28, 0xec, 0x5f, 0xce, 0x14, 0x0a, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x14, 0x19, 0x14, 0x19, 0x10, 0x10, 0x32, 0x12,
+       0x1d, 0x08, 0x20, 0x19, 0x10, 0xf6, 0xe2, 0x08,
+       0x1c, 0x04, 0x04, 0x20, 0x0f, 0x1c, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x28, 0x00, 0x10, 0x22, 0x00, 0x00, 0x21,
+       0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x60,
+       0x00, 0xa8, 0x00, 0xa8, 0x00, 0xd0, 0xed, 0x02,
+       0xed, 0x02, 0x00, 0x90, 0x0a, 0x06, 0x20, 0x02,
+       0x70, 0x03, 0x20, 0x1b, 0x03, 0x02, 0x08, 0x03,
+       0x10, 0x20, 0x20, 0x40, 0x10, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x20, 0x20, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x50, 0x80, 0x02, 0x02, 0x02, 0x00, 0x00, 0x33,
+       0x32, 0x00, 0x01, 0x60, 0xfa, 0x00, 0x00, 0x43,
+       0x3c, 0x00, 0x01, 0x4c, 0xe6, 0x00, 0x00, 0x26,
+       0x19, 0x00, 0x02, 0x7a, 0x19, 0x00, 0x02, 0x50,
+       0x64, 0x00, 0x00, 0x36, 0x4a, 0x00, 0x00, 0x0c,
+       0x19, 0x00, 0x02, 0x64, 0x96, 0xab, 0x88, 0x78,
+       0x88, 0x78, 0x04, 0x0f, 0x38, 0xff, 0x02, 0x04,
+       0x80, 0xe0, 0x13, 0x02, 0x00, 0x2c, 0x1b, 0x4b,
+       0x2e, 0x00, 0x00, 0x00, 0x00, 0x97, 0x06, 0x0c,
+       0x2c, 0x1b, 0x2e, 0x3c, 0x3c, 0x4b, 0x00, 0x00,
+       0x97, 0x06, 0x0c, 0x12, 0x41, 0x44, 0x52, 0x52,
+       0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x80, 0x80, 0x01, 0x80, 0x01, 0x80,
+       0x21, 0x33, 0x21, 0x33, 0x66, 0x20, 0xff, 0xc9,
+       0x19, 0xd0, 0xd0, 0x44, 0x00, 0x10, 0x00, 0x80,
+       0x05, 0x44, 0xff, 0x00, 0x00, 0x10, 0x50, 0x00,
+       0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x18, 0x0f,
+       0x0f, 0xf0, 0xf0, 0x00, 0x00, 0x10, 0x10, 0x00,
+       0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
+       0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+       0x00, 0x00, 0x00, 0x10, 0x01, 0x10, 0x01, 0x02,
+};
+
+struct rm_spi_ts_platform_data rm31080ts_kai_data = {
+       .gpio_reset = 0,
+       .config = 0,
+};
+
+struct spi_board_info rm31080a_kai_spi_board[1] = {
+       {
+        .modalias = "rm_ts_spidev",
+        .bus_num = 0,
+        .chip_select = 0,
+        .max_speed_hz = 13 * 1000 * 1000,
+        .mode = SPI_MODE_0,
+        .platform_data = &rm31080ts_kai_data,
+        },
+};
+
 static int __init kai_touch_init(void)
 {
        int touch_id;
@@ -691,15 +813,28 @@ static int __init kai_touch_init(void)
        case 0:
                pr_info("Raydium PCB based touch init\n");
                tegra_clk_init_from_table(spi_clk_init_table);
-               touch_init_raydium(TEGRA_GPIO_PZ3, TEGRA_GPIO_PN5, 0);
+               rm31080ts_kai_data.config = (char *) rm31080_config_kai_pcb;
+               rm31080ts_kai_data.platform_id = RM_PLATFORM_K007;
+               rm31080a_kai_spi_board[0].irq = gpio_to_irq(TOUCH_GPIO_IRQ_RAYDIUM_SPI);
+               touch_init_raydium(TOUCH_GPIO_IRQ_RAYDIUM_SPI,
+                                       TOUCH_GPIO_RST_RAYDIUM_SPI,
+                                       &rm31080ts_kai_data,
+                                       &rm31080a_kai_spi_board[0],
+                                       ARRAY_SIZE(rm31080a_kai_spi_board));
                break;
        case 1:
                pr_info("Raydium On-Board touch init\n");
                tegra_clk_init_from_table(spi_clk_init_table);
                tegra_clk_init_from_table(touch_clk_init_table);
                clk_enable(tegra_get_clock_by_name("clk_out_3"));
-
-               touch_init_raydium(TEGRA_GPIO_PZ3, TEGRA_GPIO_PN5, 1);
+               rm31080ts_kai_data.config = (char *) rm31080_config_kai_mainboard;
+               rm31080ts_kai_data.platform_id = RM_PLATFORM_K107;
+               rm31080a_kai_spi_board[0].irq = gpio_to_irq(TOUCH_GPIO_IRQ_RAYDIUM_SPI);
+               touch_init_raydium(TOUCH_GPIO_IRQ_RAYDIUM_SPI,
+                                       TOUCH_GPIO_RST_RAYDIUM_SPI,
+                                       &rm31080ts_kai_data,
+                                       &rm31080a_kai_spi_board[0],
+                                       ARRAY_SIZE(rm31080a_kai_spi_board));
                break;
        case 3:
                pr_info("Synaptics PCB based touch init\n");
diff --git a/arch/arm/mach-tegra/board-touch-raydium.h b/arch/arm/mach-tegra/board-touch-raydium.h
new file mode 100644 (file)
index 0000000..7535a89
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * arch/arm/mach-tegra/board-touch-raydium.h
+ *
+ * Copyright (c) 2012, NVIDIA CORPORATION.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _MACH_TEGRA_BOARD_TOUCH_RAYDIUM_H
+#define _MACH_TEGRA_BOARD_TOUCH_RAYDIUM_H
+
+int __init touch_init_raydium(int irq_gpio, int reset_gpio, struct rm_spi_ts_platform_data *rm31080ts_data, struct spi_board_info *rm31080a_spi_board, int size);
+
+#endif
index 6015418..b12f1bd 100644 (file)
 
 #include <mach/gpio-tegra.h>
 
-/* Raydium touchscreen                     Driver data */
-/*-----------------------------------------------------*/
-static const u8 rm31080_config_cardhu[] = {
-       0x00, 0x00, 0x00, 0x00, 0x30, 0x1e, 0x20, 0x0f,
-       0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x10, 0x10, 0x06, 0x06, 0x04, 0x01, 0x02, 0x00,
-       0x00, 0x0a, 0x00, 0xd5, 0x2b, 0x00, 0x00, 0x09,
-       0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x28, 0xf8, 0x50, 0xce, 0x0a, 0x0c, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x16, 0x1b, 0x14, 0x16, 0x16, 0x18, 0x32, 0x19,
-       0x1d, 0x08, 0x30, 0x19, 0x10, 0xf6, 0xe2, 0x08,
-       0x28, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x21, 0x00, 0x00, 0x21, 0x00, 0x00, 0x21,
-       0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x80,
-       0x00, 0xc0, 0x00, 0xc2, 0x00, 0xf0, 0xed, 0x02,
-       0xed, 0x02, 0x00, 0x90, 0x0a, 0x06, 0x80, 0x02,
-       0x00, 0x04, 0x00, 0x20, 0x03, 0x02, 0x08, 0x03,
-       0x10, 0x20, 0x20, 0x40, 0x10, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x10, 0x10, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x50, 0x80, 0x02, 0x02, 0x02, 0x00, 0x00, 0x33,
-       0x32, 0x00, 0x01, 0x4c, 0xfa, 0x00, 0x00, 0x43,
-       0x3c, 0x00, 0x01, 0x38, 0xe6, 0x00, 0x00, 0x26,
-       0x19, 0x00, 0x02, 0x66, 0x19, 0x00, 0x02, 0x50,
-       0x64, 0x00, 0x00, 0x36, 0x4a, 0x00, 0x00, 0x0c,
-       0x19, 0x00, 0x02, 0x64, 0x96, 0xab, 0x88, 0x78,
-       0x88, 0x78, 0x04, 0x0f, 0x38, 0xff, 0x02, 0x04,
-       0x80, 0xe0, 0x13, 0x01, 0x00, 0x44, 0x61, 0x12,
-       0x41, 0x00, 0x00, 0x00, 0x00, 0x97, 0x01, 0x0c,
-       0x44, 0x61, 0x12, 0x29, 0x29, 0x41, 0x00, 0x00,
-       0x97, 0x06, 0x0c, 0x12, 0x41, 0x44, 0x52, 0x52,
-       0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x80, 0x80, 0x01, 0x80, 0x01, 0x80,
-       0x22, 0x33, 0x22, 0x33, 0x66, 0x20, 0xff, 0xc9,
-       0x19, 0xd0, 0xd0, 0x44, 0x00, 0x10, 0x00, 0x80,
-       0x05, 0x44, 0xff, 0x00, 0x00, 0x10, 0x50, 0x00,
-       0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x18, 0x0f,
-       0x0f, 0xf0, 0xf0, 0x00, 0x00, 0x10, 0x10, 0x00,
-       0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
-       0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x10, 0x01, 0x10, 0x01, 0x02,
-};
-
-/* Wintek 7" MB (01.18.10.01.10) */
-static const u8 rm31080_config_kai_mainboard[] = {
-       0x00, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x20, 0x0f,
-       0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x07,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x19, 0x19, 0x06, 0x06, 0x04, 0x10, 0x02, 0x00,
-       0x00, 0x0a, 0x00, 0xd5, 0x2b, 0x00, 0x00, 0x09,
-       0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x28, 0xec, 0x5f, 0xce, 0x14, 0x0a, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x14, 0x19, 0x14, 0x19, 0x10, 0x10, 0x32, 0x12,
-       0x1d, 0x08, 0x20, 0x19, 0x10, 0xf6, 0xe2, 0x08,
-       0x1c, 0x04, 0x04, 0x20, 0x0f, 0x1c, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x28, 0x00, 0x10, 0x22, 0x00, 0x00, 0x21,
-       0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x60,
-       0x00, 0xa8, 0x00, 0xa8, 0x00, 0xd0, 0xed, 0x02,
-       0xed, 0x02, 0x00, 0x90, 0x0a, 0x06, 0x20, 0x02,
-       0x70, 0x03, 0x20, 0x1b, 0x03, 0x02, 0x08, 0x03,
-       0x10, 0x20, 0x20, 0x40, 0x10, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x20, 0x20, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x50, 0x80, 0x02, 0x02, 0x02, 0x00, 0x00, 0x33,
-       0x32, 0x00, 0x01, 0x60, 0xfa, 0x00, 0x00, 0x43,
-       0x3c, 0x00, 0x01, 0x4c, 0xe6, 0x00, 0x00, 0x26,
-       0x19, 0x00, 0x02, 0x7a, 0x19, 0x00, 0x02, 0x50,
-       0x64, 0x00, 0x00, 0x36, 0x4a, 0x00, 0x00, 0x0c,
-       0x19, 0x00, 0x02, 0x64, 0x96, 0xab, 0x88, 0x78,
-       0x88, 0x78, 0x04, 0x0f, 0x38, 0xff, 0x02, 0x04,
-       0x80, 0xe0, 0x13, 0x02, 0x00, 0x2c, 0x1b, 0x4b,
-       0x2e, 0x00, 0x00, 0x00, 0x00, 0x97, 0x06, 0x0c,
-       0x2c, 0x1b, 0x2e, 0x3c, 0x3c, 0x4b, 0x00, 0x00,
-       0x97, 0x06, 0x0c, 0x12, 0x41, 0x44, 0x52, 0x52,
-       0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x80, 0x80, 0x01, 0x80, 0x01, 0x80,
-       0x21, 0x33, 0x21, 0x33, 0x66, 0x20, 0xff, 0xc9,
-       0x19, 0xd0, 0xd0, 0x44, 0x00, 0x10, 0x00, 0x80,
-       0x05, 0x44, 0xff, 0x00, 0x00, 0x10, 0x50, 0x00,
-       0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x18, 0x0f,
-       0x0f, 0xf0, 0xf0, 0x00, 0x00, 0x10, 0x10, 0x00,
-       0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
-       0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x10, 0x01, 0x10, 0x01, 0x02,
-};
-
-/* Wintek 7" PCB (01.18.10.01.10), TS IC is on the mainboard */
-static const u8 rm31080_config_kai_pcb[] = {
-       0x00, 0x00, 0x00, 0x00, 0x1e, 0x12, 0x20, 0x0f,
-       0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x07,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x19, 0x19, 0x06, 0x06, 0x04, 0x10, 0x02, 0x00,
-       0x00, 0x0a, 0x00, 0xd5, 0x2b, 0x00, 0x00, 0x09,
-       0x2c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x28, 0xec, 0x5f, 0xce, 0x14, 0x0a, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x14, 0x19, 0x14, 0x19, 0x10, 0x10, 0x32, 0x12,
-       0x1d, 0x08, 0x20, 0x19, 0x10, 0xf6, 0xe2, 0x08,
-       0x1c, 0x04, 0x04, 0x20, 0x0f, 0x1c, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x28, 0x00, 0x10, 0x22, 0x00, 0x00, 0x21,
-       0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x60,
-       0x00, 0xa8, 0x00, 0xa8, 0x00, 0xd0, 0xed, 0x02,
-       0xed, 0x02, 0x00, 0x90, 0x0a, 0x06, 0x20, 0x02,
-       0x70, 0x03, 0x20, 0x1b, 0x03, 0x02, 0x08, 0x03,
-       0x10, 0x20, 0x20, 0x40, 0x10, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x20, 0x20, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x50, 0x80, 0x02, 0x02, 0x02, 0x00, 0x00, 0x33,
-       0x32, 0x00, 0x01, 0x60, 0xfa, 0x00, 0x00, 0x43,
-       0x3c, 0x00, 0x01, 0x4c, 0xe6, 0x00, 0x00, 0x26,
-       0x19, 0x00, 0x02, 0x7a, 0x19, 0x00, 0x02, 0x50,
-       0x64, 0x00, 0x00, 0x36, 0x4a, 0x00, 0x00, 0x0c,
-       0x19, 0x00, 0x02, 0x64, 0x96, 0xab, 0x88, 0x78,
-       0x88, 0x78, 0x04, 0x0f, 0x38, 0xff, 0x02, 0x04,
-       0x80, 0xe0, 0x13, 0x02, 0x00, 0x28, 0x17, 0x4b,
-       0x2e, 0x00, 0x00, 0x00, 0x00, 0x97, 0x06, 0x0c,
-       0x28, 0x17, 0x2e, 0x3c, 0x3c, 0x4b, 0x00, 0x00,
-       0x97, 0x06, 0x0c, 0x12, 0x41, 0x44, 0x52, 0x52,
-       0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x80, 0x80, 0x01, 0x80, 0x01, 0x80,
-       0x21, 0x33, 0x21, 0x33, 0x66, 0x20, 0xff, 0xc9,
-       0x19, 0xd0, 0xd0, 0x44, 0x00, 0x10, 0x00, 0x80,
-       0x05, 0x44, 0xff, 0x00, 0x00, 0x10, 0x50, 0x00,
-       0x00, 0x00, 0x30, 0x00, 0x00, 0x18, 0x18, 0x0f,
-       0x0f, 0xf0, 0xf0, 0x00, 0x00, 0x10, 0x10, 0x00,
-       0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00,
-       0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
-       0x00, 0x00, 0x00, 0x10, 0x01, 0x10, 0x01, 0x02,
-};
-
-struct rm_spi_ts_platform_data rm31080ts_data = {
-       .gpio_reset = 0,
-       .config = 0,
-};
-
-struct spi_board_info rm31080a_spi_board[1] = {
-       {
-        .modalias = "rm_ts_spidev",
-        .bus_num = 0,
-        .chip_select = 0,
-        .max_speed_hz = 13 * 1000 * 1000,
-        .mode = SPI_MODE_0,
-        .platform_data = &rm31080ts_data,
-        },
-};
-
-int __init touch_init_raydium(int irq_gpio, int reset_gpio, int platform)
+int __init touch_init_raydium(int irq_gpio, int reset_gpio, struct rm_spi_ts_platform_data *rm31080ts_data, struct spi_board_info *rm31080a_spi_board, int asize)
 {
        int err = 0;
        gpio_request(irq_gpio, "raydium-irq");
@@ -209,35 +36,14 @@ int __init touch_init_raydium(int irq_gpio, int reset_gpio, int platform)
        gpio_request(reset_gpio, "raydium-reset");
        gpio_direction_output(reset_gpio, 0);
 
-       rm31080ts_data.gpio_reset = reset_gpio;
+       rm31080ts_data->gpio_reset = reset_gpio;
 
-       msleep(1);
+       msleep(5);
        gpio_set_value(reset_gpio, 1);
-       msleep(100);
-
-       rm31080a_spi_board[0].irq = gpio_to_irq(irq_gpio);
-
-       switch (platform) {
-       case 0:
-               pr_info("Raydium Kai PCB based touch init\n");
-               rm31080ts_data.config = (char *) rm31080_config_kai_pcb;
-               break;
-       case 1:
-               pr_info("Raydium Kai On-Board touch init\n");
-               rm31080ts_data.config = (char *) rm31080_config_kai_mainboard;
-               break;
-       case 2:
-               pr_info("Raydium cardhu touch init\n");
-               rm31080ts_data.config = (char *) rm31080_config_cardhu;
-               break;
-       default:
-               pr_err("touch_id error, no touch\n");
-               err = -ENODEV;
-       }
+       msleep(5);
 
        if(!err)
-               spi_register_board_info(rm31080a_spi_board,
-                               ARRAY_SIZE(rm31080a_spi_board));
+               spi_register_board_info(rm31080a_spi_board, asize);
 
        return err;
 }
index 61b64d3..96ee670 100644 (file)
@@ -19,7 +19,4 @@
 #ifndef _MACH_TEGRA_BOARD_TOUCH_H
 #define _MACH_TEGRA_BOARD_TOUCH_H
 
-
-int __init touch_init_raydium(int irq_gpio, int reset_gpio, int platform);
-
 #endif