1.引言
1.1背景
目前android上對sensor的處理是將其掛載到類似於sensor-hub的獨立處理單元上與AP分離,這樣便於解決功耗問題。高通平臺也類似的將sensor掛在了adsp上,但特定需求下還是希望sensor能夠掛載到AP下,並且對上層隱藏這種差異,可以使用相同的處理流程。本文介紹一種使用以input設備爲基礎的sensor_class抽象類在AP側掛載sensor的方法。(使用高通MSM8937平臺)
2.添加sar sensor
2.1 在kernel中使用sensor_class註冊sensor
2.1.1添加對sensors_class的支持
sensor_class是google對ap側sensor設備的抽象,並不是內核自帶的。某些android版本可能沒有kernel\drivers\sensors\sensors_class.c文件,需要下載最新代碼merge此文件。
2.1.2註冊input設備
首先需要註冊標準的input設備,使用標準方法註冊即可,註冊後可以在/dev/input中獲得相應節點,讀取key event
input_top = input_allocate_device();
__set_bit(EV_ABS, input_top->