Edit online

GPAI 配置

GPAI 包括以下配置内容:
  1. 内核配置
    1. 配置 IIO

      在 luban 根目录下执行 make menuconfig,进入配置,按如下选择:

      ArtInChip Luban SDK Configuration
          Linux kernel
              Advance setting
                  Linux Kernel Tools
                      <*>iio
      
    2. 配置 GPAI

      在 luban 根目录下执行 make kernel-menuconfig,进入 kernel 的功能配置,按如下选择:

      Linux
          Device Drivers
              <*> Industrial I/O support
                  Analog to digital converters
                      <*> Artinchip GPAI driver
      
  2. DTS 参数配置
    1. 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,不推荐。

    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>;
      };
    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";
          };
      };