MTK8362 9.0上调试 型号为cht8305温湿度传感器
1 查看原理图以及gpio映射表可以知道 cht8305温湿度传感器 使用i2c1通道进行通讯,3.3v供电引脚为gpio 8 ,中断引脚为gpio13,由此可以配置cht8305温湿度传感器的dts。
根据上面的原理图和gpio映射表ALERT—>AB15---->gpio13可以得知,cht8305温湿度传感器中断引脚ALERT对应的引脚是gpio13
根据上面的原理图和gpio映射表VCC_3.3v------>3.3v_AUDIO_EN------->AA15---->gipo8可以得知,cht8305温湿度传感器3.3v供电引脚为gpio 8对应的引脚是gpio8
dts文件配置如下:
dts文件路径为:\kernel-4.4\arch\arm\boot\dts\aiot8362am3_bsp.dts
&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_pins_a>;
status = "okay";
clock-frequency = <100000>;
cht8305@40 {
compatible = "mediatek,cht8305";
reg = <0x40>;
i2c_num = <1>;
cht8305_alert_gpio = <&pio 13 0>;
vcc_3v3_power_gpio = <&pio 8 0>;
status = "okay";
};
};
2 配置aiot8362am3_bsp_defconfig和aiot8362am3_bsp_debug_defconfig文件以及配置相关的Makefile和Kconfig
2.1 配置aiot8362am3_bsp_defconfig和aiot8362am3_bsp_debug_defconfig文件
文件路径为:\kernel-4.4\arch\arm\configs\aiot8362am3_bsp_debug_defconfig和\kernel-4.4\arch\arm\configs\aiot8362am3_bsp_defconfig
#humidity
CONFIG_CUSTOM_KERNEL_HUMIDITY=y
**2.2 配置相关的Makefile和Kconfig **
\kernel-4.4\drivers\misc\mediatek\sensors-1.0\Makefile
#added by donghsiyi for humidity start
obj-$(CONFIG_CUSTOM_KERNEL_HUMIDITY) += humidity/
#added by donghsiyi for humidity end
\kernel-4.4\drivers\misc\mediatek\sensors-1.0\Kconfig
#added by donghsiyi for humidity start
source "drivers/misc/mediatek/sensors-1.0/humidity/Kconfig"
#added by donghsiyi for humidity end
\kernel-4.4\drivers\misc\mediatek\sensors-1.0\humidity\Makefile
obj-y += cht8305.o
\kernel-4.4\drivers\misc\mediatek\sensors-1.0\humidity\Kconfig
config CUSTOM_KERNEL_HUMIDITY
bool "CUSTOM_KERNEL_HUMIDITY Config"
default n
help
CUSTOM_KERNEL_HUMIDITY for cht8305
3 把 cht8305.c放进去编译查看log发现 cht8305温湿度传感器i2c是能够通讯成功的,同时相关节点也产生了,由此可以验证cht8305温湿度传感器移植成功, log如下:
F:\20200522\putty13.log (13 hits)
Line 3585: [ 0.412169] stk3x3x_init OutCHT8305_init
Line 4095: [ 0.711881] <3>.(3)[1:swapper/0]-------cht8305_probe 248 client->addr = 0x40 start-----
Line 4097: [ 0.712889] <3>.(3)[1:swapper/0]-------cht8305_probe 250 client->addr = 0x40 start-----
Line 4099: [ 0.713949] <3>.(3)[1:swapper/0]cht8305_probe find mediatek,cht8305 node successed!!
Line 4099: [ 0.713949] <3>.(3)[1:swapper/0]cht8305_probe find mediatek,cht8305 node successed!!
Line 4103: [ 0.715562] <3>.(3)[1:swapper/0]cht8305_alert_gpio 400
Line 4105: [ 0.716226] <3>.(3)[1:swapper/0]-------cht8305_probe 277 vcc_3v3_power_gpio = 1 cht8305_alert_gpio = 1------
Line 4105: [ 0.716226] <3>.(3)[1:swapper/0]-------cht8305_probe 277 vcc_3v3_power_gpio = 1 cht8305_alert_gpio = 1------
Line 4107: [ 0.717540] <3>.(3)[1:swapper/0]cht8305_i2c_read: ret == 1
Line 4109: [ 0.738891] <3>.(3)[1:swapper/0]cht8305_i2c_read: read_buf == 0x83 5
Line 4111: [ 0.739678] <3>.(3)[1:swapper/0]cht8305_probe Read ID value is :0x8305
Line 4113: [ 0.740502] <3>.(3)[1:swapper/0]cht8305: probe end
Line 4115: [ 0.741101] <3>.(3)[1:swapper/0]BOOTPROF: 741.100539:probe: probe=i2c_device_probe drv=cht8305(c0e43c90) 29.213231ms
备注:cht8305温湿度传感器产生的相关节点如下:
温度读取节点 /sys/bus/i2c/devices/1-0040/temp1_input
湿度读取节点 /sys/bus/i2c/devices/1-0040/humidity1_input