[问题] spi driver 内加上 input device

楼主: blueblueChen (蓝蓝欠)   2016-08-18 23:23:41
晚安
前阵子有在版上问关于在 dpi driver 内加上 input device ,然后想在 driver内
开启 open API ,后来用 input_report_abs 和 input_sync 取代,我已经花了
一天时间...明天就是交期...我还是试不出来,抱各位佛脚一下... 不胜感激..
我在自己写的 spi driver 开一个用 irq 触发的 kernel thread ,这里面就一直

input_report_ads(inputdev,ABS_X,1); //inputdev 是 struct input_dev *
input_report_ads(inputdev,ABS_Y,2);
input_report_ads(inputdev,ABS_Y,3);
input_sync(inputdev);
再进入 thread 之前,有做些 inputdev 的初始:
inputdev = input_allocate_device();
if (!inputdev) {
printk(KERN_ERR "Failed to allocate acc input device\n");
err = -ENOMEM;
goto failed;
}
sensor->input_acc->name = "xxxxx";
set_bit(EV_ABS, inputdev->evbit);
set_bit(ABS_X, inputdev->absbit);
set_bit(ABS_Y, inputdev->absbit);
set_bit(ABS_Z, inputdev->absbit);
input_set_abs_params(inputdev, ABS_X, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_Y, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_Z, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_RX, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_RY, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_RZ, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_THROTTLE, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_RUDDER, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_WHEEL, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_HAT0X, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_HAT1X, -ACC_MAX, ACC_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_HAT2X, -ACC_MAX, ACC_MAX, 0, 0);
err = input_register_device(inputdev);
if (err) {
pr_err("Failed to register acc input device\n");
input_free_device(inputdev);
inputdev = NULL;
goto failed;
}
之后也写了小程式 去 open /dev/input/event* 我在上面注册的 input,再用 write
写入 struct input_event 去验证 getevent 可以拿到资讯....
但是我用 input_sync 这方法就无法,请问我上面那些步骤还少了些什么吗?
谢谢。
作者: chiwa (我是青蛙,不是王子^_^)   2016-08-19 22:57:00
1.我想kernel里面的范例应该很多,可以参考看看2.你有做过基本的debug吗? 最简单的譬如在你的input_sync之后印个log,确定是否有执行到如果device driver没问题,你的/dev/input/event*有选对吗?
楼主: blueblueChen (蓝蓝欠)   2016-08-20 22:15:00
c大妳好,我在input_sync内埋log追悼后来发现他会把重复的ABS_X ABS_Y ABS_Z drop 掉所以我才得不到资讯,delay了一天 但总算是虚惊一场谢谢。

Links booklink

Contact Us: admin [ a t ] ucptt.com