日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android sensor hal,Android Sensor详解(3)porting drvier

發(fā)布時間:2024/3/13 Android 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android sensor hal,Android Sensor详解(3)porting drvier 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

kernel層porting

復(fù)制kernel driver file到相關(guān)目錄

將cm36xxx.c復(fù)制到 drivers/input/misc中

將cm36xxx.h,lightsensor.h,capella_cm3602.h復(fù)制到kernel/include/linux中

修改/arch/arm/boot/dts/qcom/下的dtsi問題

查看電路圖,看看driver它掛在什么地方,然后找到spec看driver的i2c address。

提取信息如下:sensor掛在bus6上,i2c adress為0x60,interrupt連接到SOC的gpio43上

因而我們可以修改相關(guān)的dtsi文件如下:

cm36xxx@60 {

compatible = "capella,cm36xxx";

reg = <0x60>;

capella,slave_address = <0x60>;

interrupt-parent = ;

interrupts = <43 0x2>;

capella,intrpin-gpios = ;

vio-supply = ;

};

這里要注意:compatible要與kernel driver中的cm36xxx_match_table中的compatible一致

修改makefile使能夠編譯driver

修改kernel/drivers/input/misc/Makefile

obj-$(CONFIG_SENSORS_CM36656) += cm36656.o

修改kernel/drivers/input/misc/Kconfig

config SENSORS_CM36xxx

tristate “CM36xxx optical sensor”

depends on I2C

default n

help

Say Y here to enable the CM36xxx Optical Sensor.

修改kernel/arch/arm64/configs/xxxx_defconfig

CONFIG_SENSORS_CM36xxx=y

修改相關(guān)權(quán)限

注意kernel driver中的misc的name

static const struct file_operations rgbsensor_fops = {

.owner = THIS_MODULE,

.open = rgbsensor_open,

.release = rgbsensor_release,

.unlocked_ioctl = rgbsensor_ioctl,

.compat_ioctl = rgbsensor_ioctl,

};

static struct miscdevice rgbsensor_misc = {

.minor = MISC_DYNAMIC_MINOR,

.name = "asusRgbSensor",

.fops = &rgbsensor_fops

};

注意:rgb使用32位的lib因而需要compat_ioctl

修改system/core/rootdir/ueventd.rc

/dev/lightsensor 0640 system system

/dev/proximitySensor 0640 compass system

/dev/asusRgbSensor 0640 system system

修改init.rc文件

on post-fs-data

chown system system /dev/proximitySensor

chmod 0660 /dev/proximitySensor

chown system system /dev/lightsensor

chmod 0660 /dev/lightsensor

HAL層porting

這個很簡單,只要在編譯的時候能夠load android.mk即可編譯

注意open的目錄名字與設(shè)備名字要相同

編譯改錯

一般廠商給的demo code在編譯時都會出一些錯誤,因而需要我們BSP進(jìn)行修正。這邊會在后續(xù)的博客中解釋。

debug的一些方法

查看電是否porting正常

cd sys/kernel/debug/regulator/

找到用哪個電,然后cat consumers

查看I2C是否掛起

adb shell訪問/sys/class/i2c-adapter/i2c-X(X代表對應(yīng)的I2C bus)目錄,確認(rèn)已經(jīng)建立了X-00yy(yy代表slave address)

總結(jié)

以上是生活随笔為你收集整理的android sensor hal,Android Sensor详解(3)porting drvier的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。