GPAI 配置
Read time: 2 minute(s)
内核配置
- 配置 IIO
在 SDK 根目录下执行 make menuconfig,进入 menuconfig 配置界面,按如下选择:
ArtInChip Luban SDK Configuration Linux kernel Advance setting Linux Kernel Tools <*>iio
- 配置 GPAI
在 SDK 根目录下执行 make kernel-menuconfig,进入 kernel 的功能配置,按如下选择:
Linux Device Drivers <*> Industrial I/O support Analog to digital converters <*> ArtInChip GPAI driver
DTS 参数配置
- GPAI 自定义参数
GPAI 驱动支持从 DTS 中配置自定义参数,如下表所示:
表 1. GPAI 自定义参数 参数名称
类型
取值范围
功能说明
aic,sample-period-ms
正整数
> 0, (0, 10000]
周期采样模式下的周期值,单位:ms
aic,high-level-thd
正整数
> 0
高电平报警阈值
aic,low-level-thd
正整数
> 0
低电平报警阈值
注:采样周期范围值属于 GPAI V1.0 的规范。GPAI V0.1 的周期有效范围不到 3 ms,不推荐。
- D211 配置在 common/d211.dtsi 中的 GPAI 控制器定义:
gpai: gpai@19251000 { compatible = "artinchip,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>; };
- 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"; }; };