GPIO
GPIO(General Purpose I/O,通用输入输出端口)是 MCU/CPU 的可控制引脚,核心支持高低电平输入检测与输出。
Note
表格中 GPIO X10 代表主板拓展引脚至多可配置 10 路 GPIO。
Rockchip 平台拓展引脚 GPIO 信息如下:
| 主板 | SOC | 平台 | 拓展引脚 |
|---|---|---|---|
| K1 | RK3568 | Rockchip | GPIO X28 |
| K1B | RK3568 | Rockchip | GPIO X14 |
| K3 | RK3562 | Rockchip | GPIO X11 |
| K7 | RK3576 | Rockchip | GPIO X22 |
| K7C | RK3576 | Rockchip | GPIO X23 |
| K8 | RK3588 | Rockchip | GPIO X22 |
Allwinner 平台拓展引脚 GPIO 信息如下:
| 主板 | SOC | 平台 | Kernel | 拓展引脚 |
|---|---|---|---|---|
| K2B | H618 | Allwinner | 5.4 | GPIO X10 |
| K2C | H618 | Allwinner | 5.4 | GPIO X15 |
| K4B | T113 | Allwinner | 5.4 | GPIO X22 |
| K5C | A133 | Allwinner | 4.9 | GPIO X10 |
引脚号计算
Rockchip
Rockchip 平台引脚的 ID 由控制器(bank)+ 端口(port)+ 索引序号(pin)组成,如 GPIO1_C4。
Rockchip 平台引脚号 = (控制器 x 32) + (端口 x 8) + 索引序号。
例如 GPIO1_C4 表达的意思为第 1 组控制器,端口号为 C,索引号为 4,则引脚号 = (1 x 32) + (2 x 8) + 4 = 52。
Allwinner
Allwinner 平台引脚的 ID 由控制器端口(port)+ 索引序号(pin)组成,如 PH8。
Allwinner 平台引脚号 = (控制器端口 x 32) + 索引序号。
例如 PH8 表达的意思为第 7 组控制器,索引序号为 8,则引脚号 = (7 x 32) + 8 = 232 。
可通过命令在主板上查看引脚号:
gpios 配置
各平台设备树中 GPIO 配置语法不同,请根据实际平台查看。
Rockchip
Rockchip 平台 dts 节点 gpios 配置如下:
Note
&A 引用 GPIO 控制器节点,Rockchip 常见控制器:&gpio0~&gpio7(通用 GPIO)。
B 引脚标识宏,格式为 RK_<Bank><编号>:- Bank:PA~PD(端口组)。
C 引脚极性 / 配置属性,标准宏定义:- GPIO_ACTIVE_HIGH(高电平有效)、GPIO_ACTIVE_LOW(低电平有效)。
Allwinner Kernel 4.9
Allwinner 平台 Kernel 4.9 版本 dts 节点 gpios 配置如下:
gpios = <&pio PH 0x8 0x0 0x1 0x0 0x1>;
gpios = <&r_pio PL 0x4 0x0 0x1 0x0 0x1>;
gpios = <&A B C D E F G>;
Note
命令解析:
&A &pio/&r_pio 指定 pio,属于 cpus 要用 &r_pio (PL之后的)。
B PH/PL 指定 gpio 的 bank。
C 0x8/0x4 指定 bank 中的哪个引脚。
D 复用类型。
E 上下拉,值为 0x1 时采用默认值。
F 驱动能力,值为 0x0 时采用默认值。
G 输出电平,只用 output 才有效。
Allwinner Kernel 5.4
Allwinner 平台 Kernel 5.4 版本 dts 节点 gpios 配置如下
Note
命令解析:
&A 引用 GPIO 控制器节点,Allwinner 常见控制器:&pio &r_pio
B GPIO端口, Bank:PB ~ PI 、PL
C 端口内引脚序号
D 引脚极性 / 配置属性,标准宏定义:- GPIO_ACTIVE_HIGH(高电平有效)、GPIO_ACTIVE_LOW(低电平有效)
leds 配置
DTS 配置
leds 节点配置示例如下
leds {
compatible = "gpio-leds";
gpio3a4: gpio3a4 {
label = "gpio3a4";
gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>; // 根据不同平台修改 gpios 配置
default-state = "off";
};
};
sysfs 接口控制
Tip
$gpio 指列举的控制节点
列举已注册的 GPIO 控制节点:
控制 GPIO 输出电平状态:
| 操作目的 | 执行命令 | 说明 |
|---|---|---|
| 点亮 LED | echo 1 > /sys/class/leds/$gpio/brightness |
仅适用于 GPIO_ACTIVE_HIGH 配置 |
| 熄灭 LED | echo 0 > /sys/class/leds/$gpio/brightness |
仅适用于 GPIO_ACTIVE_HIGH 配置 |
| 点亮 LED(低电平有效) | echo 0 > /sys/class/leds/$gpio/brightness |
适用于 GPIO_ACTIVE_LOW 配置(电平反转) |
| 熄灭 LED(低电平有效) | echo 1 > /sys/class/leds/$gpio/brightness |
适用于 GPIO_ACTIVE_LOW 配置(电平反转) |
硬件使用示例
此处采用 K7 进行操作示例。
- GPIO3_A4 引脚
查看 K7 拓展引脚图可知引脚32 为 GPIO3_A4。


查看控制节点, 控制 GPIO3_A4 输出高电平电平,万用表测量引脚电压为 1.8V。