GPAI 配置
GPAI 包括以下配置内容:
- 内核配置
- 配置 IIO
在 luban 根目录下执行 make menuconfig,进入配置,按如下选择:
ArtInChip Luban SDK Configuration Linux kernel Advance setting Linux Kernel Tools <*>iio
- 配置 GPAI
在 luban 根目录下执行 make kernel-menuconfig,进入 kernel 的功能配置,按如下选择:
Linux Device Drivers <*> Industrial I/O support Analog to digital converters <*> Artinchip GPAI driver
- 配置 IIO
- DTS 参数配置
- GPAI 自定义参数GPAI 驱动支持从 DTS 中配置的自定义参数,如下表:
参数名称 类型 取值范围 功能说明 aic,sample-period-ms 正整数 > 0, (0, 10000] 周期采样模式下的周期值,单位:ms aic,high-level-thd 正整数 > 0 高电平报警阈值 aic,low-level-thd 正整数 > 0 低电平报警阈值 注:上表中的采样周期范围值是 V1.0 的。GPAI V0.1 的周期有效范围不到 3ms,不推荐。
- 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"; }; };
- GPAI 自定义参数