[問題] 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