},\r
};\r
\r
+\r
+/*HANNSTAR_P1003 touch*/\r
+#if defined (CONFIG_HANNSTAR_P1003)\r
+#define TOUCH_POWER_PIN RK29_PIN6_PD2\r
+#define TOUCH_RESET_PIN RK29_PIN6_PC3\r
+#define TOUCH_INT_PIN RK29_PIN0_PA2\r
+\r
+int p1003_init_platform_hw(void)\r
+{\r
+ if(gpio_request(TOUCH_RESET_PIN,NULL) != 0){\r
+ gpio_free(TOUCH_RESET_PIN);\r
+ printk("p1003_init_platform_hw gpio_request error\n");\r
+ return -EIO;\r
+ }\r
+\r
+ if(gpio_request(TOUCH_POWER_PIN,NULL) != 0){\r
+ gpio_free(TOUCH_POWER_PIN);\r
+ printk("p1003_init_platform_hw gpio_request error\n");\r
+ return -EIO;\r
+ }\r
+\r
+ if(gpio_request(TOUCH_INT_PIN,NULL) != 0){\r
+ gpio_free(TOUCH_INT_PIN);\r
+ printk("p1003_init_platform_hw gpio_request error\n");\r
+ return -EIO;\r
+ }\r
+ gpio_pull_updown(TOUCH_INT_PIN, 1);\r
+ gpio_direction_output(TOUCH_RESET_PIN, 0);\r
+ gpio_direction_output(TOUCH_POWER_PIN, 1);\r
+ gpio_set_value(TOUCH_POWER_PIN,GPIO_HIGH);\r
+ mdelay(500);\r
+ gpio_set_value(TOUCH_RESET_PIN,GPIO_LOW);\r
+ mdelay(500);\r
+ gpio_set_value(TOUCH_RESET_PIN,GPIO_HIGH);\r
+ \r
+ return 0;\r
+}\r
+\r
+\r
+struct p1003_platform_data p1003_info = {\r
+ .model= 1003,\r
+ .init_platform_hw= p1003_init_platform_hw,\r
+ \r
+};\r
+#endif\r
+\r
+\r
/*****************************************************************************************\r
* i2c devices\r
* author: kfx@rock-chips.com\r
\r
#ifdef CONFIG_I2C2_RK29\r
static struct i2c_board_info __initdata board_i2c2_devices[] = {\r
+#if defined (CONFIG_HANNSTAR_P1003)\r
+ {\r
+ .type = "p1003_touch",\r
+ .addr = 0x04,\r
+ .flags = 0,\r
+ .irq = RK29_PIN0_PA2,\r
+ .platform_data = &p1003_info,\r
+ },\r
+#endif\r
};\r
#endif\r
\r
int (*io_deinit)(void);
};
+/*p1003 touch */
+struct p1003_platform_data {
+ u16 model;
+
+ int (*get_pendown_state)(void);
+ int (*init_platform_hw)(void);
+ int (*p1003_platform_sleep)(void);
+ int (*p1003_platform_wakeup)(void);
+ void (*exit_platform_hw)(void);
+};
+
void __init rk29_map_common_io(void);
void __init rk29_clock_init(void);