7.3.2. 参数配置
7.3.2.1. 内核配置
7.3.2.1.1. 配置 IIO
在 openwrt 根目录下执行 make menuconfig,进入配置,按如下选择:
ZX Openwrt SDK Configuration
Linux kernel
Advance setting
Linux Kernel Tools
<*>iio
7.3.2.1.2. 配置 GPAI
参考快速入门 - 编译概述 - Kernel配置,进入kernel的功能配置,按如下选择:
Linux
Device Drivers
<*> Industrial I/O support
Analog to digital converters
<*> ZX GPAI driver
7.3.2.2. DTS 参数配置
7.3.2.2.1. GPAI 自定义参数
GPAI 驱动支持从DTS中配置的自定义参数,如下表:
参数名称 |
类型 |
取值范围 |
功能说明 |
---|---|---|---|
aic,sample-period-ms |
正整数 |
> 0, (0, 10000] |
周期采样模式下的周期值,单位:ms |
aic,high-level-thd |
正整数 |
> 0 |
高电平报警阈值 |
aic,low-level-thd |
正整数 |
> 0 |
低电平报警阈值 |
小技巧
上表中的采样周期范围值是GPAI V1.0的。GPAI V0.1的周期有效范围不到3ms,不推荐。
7.3.2.2.2. M4 配置
在common/m4.dtsi中的GPAI控制器定义:
gpai: gpai@19251000 {
compatible = "zx,aic-gpai-v1.0";
reg = <0x0 0x19251000 0x0 0x1000>;
interrupts-extended = <&plic0 92 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cmu CLK_GPAI>, <&cmu CLK_APB1>;
clock-names = "gpai", "pclk";
resets = <&rst RESET_GPAI>;
};
7.3.2.2.3. Board 配置
xxx-board.dts中的参数配置需要区分通道号,每个通道可以单独使能。使能的通道,需要指定该通道用到的GPIO配置,如下面的 gpai7_pins
:
&gpai {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&gpai7_pins>;
gpai0 {
aic,sample-period-ms = <10>;
aic,high-level-thd = <1830>;
aic,low-level-thd = <1800>;
status = "disabled";
};
gpai1 {
status = "disabled";
};
gpai2 {
status = "disabled";
};
gpai3 {
status = "disabled";
};
gpai4 {
status = "disabled";
};
gpai5 {
status = "disabled";
};
gpai6 {
status = "disabled";
};
gpai7 {
status = "okay";
};
};