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