- 论坛徽章:
- 0
|
我最近在做触摸屏的驱动和microwindow的移植,在microwindow中会对触摸屏设备进行读取,首先是:
pd_fd=open(TS_DEVICE_FILE,O_NONBLOCK)打开设备文件,这里open后返回的是什么值,怎么打开的,调用的什么函数,
后面又用:
bytes_read=read(pd_fd,&event,sizeof(event))
来读取数据,这里read又是怎么读取,调用什么函数,按道理这里读到的数据应该是驱动里面吐出的数据,但是我不知道它是怎么个读法
驱动里面是调用中断函数进行触摸参数的读取,然后写入到下面s3c2410ts定义的结构中。
我的里面总是打印错误:
[ADS] wrong number of bytes 3 read from touch panel (expected 6)
我的evnet结构定义为:
struct ts_event{
short x;
short y;
short pressure;
};
驱动的设备结构定义为:
struct s3c2410ts{
struct input_dev *dev;
long xp;
long yp;
int count;
int shift;
}
static struct platform_driver s3c2410ts_driver = {
.driver = {
.name = "s3c2410-ts",
.owner = THIS_MODULE,
},
.probe = s3c2410ts_probe,
.remove = s3c2410ts_remove,
.suspend = s3c2410ts_suspend,
.resume = s3c2410ts_resume,
}; |
|