7.3.2. 参数配置¶
7.3.2.1. 内核配置¶
7.3.2.1.1. 配置 IIO¶
在 luban 根目录下执行 make menuconfig,进入配置,按如下选择:
ArtInChip Luban SDK Configuration
    Linux kernel
        Advance setting
            Linux Kernel Tools
                <*>iio
7.3.2.1.2. 配置 GPAI¶
在luban根目录下执行 make kernel-menuconfig,进入kernel的功能配置,按如下选择:
Linux
    Device Drivers
        <*> Industrial I/O support
            Analog to digital converters
                <*> Artinchip 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. 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>;
};
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";
    };
};