本帖最后由 xiaolonghun1 于 2015-7-27 20:47 编辑
我换成了之前cubieboard技术支持给我发送的那个镜像驱动,好像多了好多之前没有出现过的报错信息。
上面大致是GPIO 7不能够被设置成中断的形式,设备驱动的地方已经在别处定义了,不知道为什么会出现这个问题。
A20 源码里现在支持的触摸屏应该是三种,ft5x, gt82x, gslX680 源码分别是 ft5x_ts.c, gt82x.c gslX680.c。 在这三个文件头部都有触摸屏配置结构体的引用。
extern struct ctp_config_info config_info; 搜索源码可以看到用到了以下几处。 ctp_get_system_config里(被ft5x_ts_init调用)
twi_id = config_info.twi_id;
screen_max_x = config_info.screen_max_x;
screen_max_y = config_info.screen_max_y;
revert_x_flag = config_info.revert_x_flag;
revert_y_flag = config_info.revert_y_flag;
exchange_x_y_flag = config_info.exchange_x_y_flag; ft5x_ts_init函数里
config_info.ctp_used 很明显触摸屏几个关键参数是从外部的config_info这个结构体得到了。搜寻这个结构体。 在include/linux/ctp.h里找到他的定义 struct ctp_config_info{
int ctp_used;
__u32 twi_id;
int screen_max_x;
int screen_max_y;
int revert_x_flag;
int revert_y_flag;
int exchange_x_y_flag;
u32 irq_gpio_number;
u32 wakeup_gpio_number;
#ifdef TOUCH_KEY_LIGHT_SUPPORT
u32 key_light_gpio_number;
#endif
}; 在/drivers/input/init_ctp.c里找到变量的定义。 struct ctp_config_info config_info;
并且在ctp_fetch_sysconfig_para这个函数中给config_info赋值。 都是通过script_get_item从配置文件里取出值来给config_info赋值。 script_get_item("ctp_para", "ctp_used", &val) config_info.ctp_used = val.val; script_get_item("ctp_para", "ctp_twi_id", &val) config_info.twi_id = val.val; script_get_item("ctp_para", "ctp_screen_max_x", &val) config_info.screen_max_x = val.val; script_get_item("ctp_para", "ctp_screen_max_y", &val) config_info.screen_max_y = val.val; script_get_item("ctp_para", "ctp_revert_x_flag", &val) config_info.revert_x_flag = val.val; script_get_item("ctp_para", "ctp_revert_y_flag", &val) config_info.revert_y_flag = val.val; script_get_item("ctp_para", "ctp_exchange_x_y_flag", &val) config_info.exchange_x_y_flag = val.val;
|