GPAI 配置
17 Dec 2024
Read time: 2 minute(s)
内核配置
- 配置 IIO
在 SDK 根目录下执行 make menuconfig,进入menuconfig 配置界面,按如下选择:
ArtInChip Luban SDK Configuration Linux kernel Advance setting Linux Kernel Tools <*>iio
- 配置 GPAI在 SDK 根目录下,执行下列命令,进入 kernel 的功能配置界面:
make kernel-menuconfig
或使用简写命令
make km
在 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"; }; };