phonepad:add ft5306 touch support
authorlw <lw@rock-chips.com>
Wed, 12 Sep 2012 08:43:32 +0000 (16:43 +0800)
committerlw <lw@rock-chips.com>
Wed, 12 Sep 2012 08:43:32 +0000 (16:43 +0800)
arch/arm/configs/rk30_phonepad_c8003_defconfig
arch/arm/mach-rk30/board-rk30-phonepad.c

index 12c23a06e0b249924f3628d679942d6fcbee112b..de15e700eccbf18f1e6542e182e21d333fd13909 100755 (executable)
@@ -242,15 +242,7 @@ CONFIG_TABLET_USB_HANWANG=y
 CONFIG_TABLET_USB_KBTAB=y
 CONFIG_TABLET_USB_WACOM=y
 CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_SYNAPTICS_RMI4_I2C_RK=y
-CONFIG_TOUCHSCREEN_SYNAPTICS_S3202=y
-CONFIG_RMI4_BUS=y
-CONFIG_RMI4_I2C=y
-CONFIG_RMI4_I2C_SCL_RATE=200000
-CONFIG_RMI4_GENERIC=y
-CONFIG_RMI4_F1A=y
-CONFIG_RMI4_F11=y
-CONFIG_RMI4_F34=y
+CONFIG_TOUCHSCREEN_FT5306=y
 CONFIG_INPUT_MISC=y
 CONFIG_INPUT_KEYCHORD=y
 CONFIG_INPUT_UINPUT=y
@@ -314,10 +306,13 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 # CONFIG_BACKLIGHT_GENERIC is not set
 CONFIG_DISPLAY_SUPPORT=y
-CONFIG_LCD_HV070WSA100=y
+CONFIG_LCD_HJ080NA=y
 CONFIG_FB_ROCKCHIP=y
+# CONFIG_DUAL_DISP_IN_KERNEL is not set
 CONFIG_LCDC_RK30=y
+# CONFIG_LCDC1_RK30 is not set
 CONFIG_RK_HDMI=y
+CONFIG_HDMI_RK30=y
 CONFIG_RGA_RK30=y
 CONFIG_LOGO=y
 # CONFIG_LOGO_LINUX_MONO is not set
index eb75c9443a95bf37fc935a79e9aeec7187535deb..5a01a3899d38dc1731f54aae80324817a3aa2e18 100755 (executable)
@@ -770,6 +770,77 @@ struct goodix_platform_data goodix_info = {
 };
 #endif
 
+#if defined(CONFIG_TOUCHSCREEN_FT5306)
+
+#define TOUCH_RESET_PIN         RK30_PIN4_PD0
+#define TOUCH_INT_PIN   RK30_PIN4_PC2
+int ft5306_init_platform_hw(void)
+{
+       printk("ft5406_init_platform_hw\n");
+
+       rk30_mux_api_set(GPIO4C2_SMCDATA2_TRACEDATA2_NAME, 0);
+       if(gpio_request(TOUCH_RESET_PIN,NULL) != 0){
+               gpio_free(TOUCH_RESET_PIN);
+               printk("ft5406_init_platform_hw gpio_request error\n");
+               return -EIO;
+       }
+
+       if(gpio_request(TOUCH_INT_PIN,NULL) != 0){
+               gpio_free(TOUCH_INT_PIN);
+               printk("ift5406_init_platform_hw gpio_request error\n");
+               return -EIO;
+       }
+       
+       rk30_mux_api_set(GPIO4D0_SMCDATA8_TRACEDATA8_NAME, 0);
+
+       gpio_direction_output(TOUCH_RESET_PIN, 0);
+       gpio_set_value(TOUCH_RESET_PIN,GPIO_LOW);
+       mdelay(10);
+       gpio_direction_input(TOUCH_INT_PIN);
+       mdelay(10);
+       gpio_set_value(TOUCH_RESET_PIN,GPIO_HIGH);
+       msleep(300);
+       return 0;
+
+}
+
+void ft5306_exit_platform_hw(void)
+{
+       printk("ft5306_exit_platform_hw\n");
+       gpio_free(TOUCH_RESET_PIN);
+       gpio_free(TOUCH_INT_PIN);
+}
+
+int ft5306_platform_sleep(void)
+{
+       //printk("ft5306_platform_sleep\n");
+       gpio_set_value(TOUCH_RESET_PIN,GPIO_LOW);
+       return 0;
+}
+
+int ft5306_platform_wakeup(void)
+{
+       //printk("ft5306_platform_wakeup\n");
+       gpio_set_value(TOUCH_RESET_PIN,GPIO_HIGH);
+       msleep(300);
+       return 0;
+}
+
+struct ft5x0x_platform_data ft5306_info = {
+       .max_x = 1024,
+       .max_y = 768,
+       .key_min_x = 1024,
+       .init_platform_hw= ft5306_init_platform_hw,
+       .exit_platform_hw= ft5306_exit_platform_hw,
+       .ft5x0x_platform_sleep  = ft5306_platform_sleep,
+       .ft5x0x_platform_wakeup = ft5306_platform_wakeup,
+
+};
+
+
+#endif
+
+
 static struct spi_board_info board_spi_devices[] = {
 };
 
@@ -2246,6 +2317,17 @@ static struct i2c_board_info __initdata i2c2_info[] = {
        .platform_data = &s3202_platformdata,
 },
 #endif
+
+#if defined (CONFIG_TOUCHSCREEN_FT5306)
+{
+       .type           = "ft5x0x_ts",
+       .addr           = 0x3e,
+       .flags          = 0,
+       .irq            = RK30_PIN4_PC2,
+       .platform_data = &ft5306_info,
+},
+#endif
+
 };
 #endif