03 - 接口映射与板级测试(4.19 出厂系统实测)¶
Evidence: FACTORY-4.19 —— 本页 GPIO 编号、
/sys/kernel/debug/gpio输出、evtest结果均来自出厂 4.19.232 系统的实机测试, 不代表 6.18 mainline 内核的 GPIO 分配。 6.18 committed DTS 的引脚分配以../porting/mainline-6.18/03_device_tree.md为准。⚠️ VBUS GPIO 方向冲突:本页 4.19 输出
gpio-6 = vcc5v0_otg(即 4.19 视角 OTG=A6 / HOST=A5), 与 6.18 committed DTS(vcc5v0_usb_host=GPIO0_A6、vcc5v0_usb_otg=GPIO0_A5)方向相反。 两来源并列、统一标NEEDS RE-VERIFICATION,详见../porting/mainline-6.18/03_device_tree.md§2.2。本页不修改。
蜂鸣器¶
已确定蜂鸣器为以gpio111 首先手动导出
-
向内核的 GPIO 导出文件写入数字
111,表示将 GPIO 111 的控制权从内核空间导出到用户空间。 -
执行成功后,系统会在
/sys/class/gpio/目录下创建gpio111/子目录,其中包含direction、value等文件,允许用户通过读写这些文件来操作该 GPIO。
将 GPIO 111 的方向设置为 输出模式 (out)。
只有设置为输出模式后,才能向 value 文件写入 0 或 1 来控制电平。
向 GPIO 120 的 value 文件写入 1,即把该引脚输出高电平(通常为 3.3V 或 1.8V)。
按照注释“蜂鸣器常响(假设高电平有效)”,这里本意是让蜂鸣器开始响。
LED测试¶
echo 120 > /sys/class/gpio/export
echo 121 > /sys/class/gpio/export
echo 123 > /sys/class/gpio/export
echo 124 > /sys/class/gpio/export
# 以 gpio120 为例
echo out > /sys/class/gpio/gpio120/direction
# 点亮(假设高电平有效)
echo 1 > /sys/class/gpio/gpio120/value
sleep 1
echo 0 > /sys/class/gpio/gpio120/value
🖥️ 背光设备(屏幕)¶
你之前还看到 /sys/class/backlight/backlight/brightness,它可以控制屏幕背光或某个可调光 LED:
# 查看最大亮度
cat /sys/class/backlight/backlight/max_brightness
# 设置亮度(例如 255)
echo 255 > /sys/class/backlight/backlight/brightness
# 熄灭
echo 0 > /sys/class/backlight/backlight/brightness
观察板子上是否有变化(可能是 LCD 背光)。
[root@RK356X:/sys/class/gpio]# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 0-31, parent: platform/fdd60000.gpio, gpio0:
gpio-6 ( |vcc5v0_otg ) out lo
gpio-23 ( |vcc3v3_lcd0_n ) out hi
gpio-29 ( |vcc3v3_vga ) out hi
gpiochip1: GPIOs 32-63, parent: platform/fe740000.gpio, gpio1:
gpio-40 ( |GPIO Key UP ) in hi
gpio-42 ( |GPIO Key DOWN ) in hi
gpiochip2: GPIOs 64-95, parent: platform/fe750000.gpio, gpio2:
gpio-73 ( |bt_default_rts ) in hi
gpio-79 ( |bt_default_reset ) out lo
gpio-80 ( |bt_default_wake_host) in hi
gpio-82 ( |bt_default_wake ) in lo
gpio-84 ( |reset ) out hi
gpio-94 ( |reset ) out lo
gpiochip3: GPIOs 96-127, parent: platform/fe760000.gpio, gpio3:
gpio-98 ( |spk-ctl ) out lo
gpio-100 ( |vcc3v3_pcie ) out hi
gpio-103 ( |reset ) out hi
gpio-109 ( |mdio-reset ) out hi
gpio-111 ( |sysfs ) out lo
gpio-114 ( |Headphone detection ) in lo
gpiochip4: GPIOs 128-159, parent: platform/fe770000.gpio, gpio4:
上表为 4.19 出厂系统的实时 GPIO 状态。
gpio-6 = vcc5v0_otg即 4.19 视角的 VBUS 分配(OTG=A6); 注意与 6.18 committed DTS(OTG=A5 / HOST=A6)方向相反,详见本页顶部 VBUS 冲突说明。 蜂鸣器gpio111、LEDgpio120/121/123/124等为 4.19 内核 GPIO 编号,6.18 下需以 committed DTS 重新核对(Evidence: FACTORY-4.19)。
粤嵌RK3568 开发板上有 6 个按键(硬件手册口径):4 个用户键 = 2 个 ADC 按键(vol±,adc-keys 驱动,对应 event3)+ 2 个 GPIO 按键(UP/DOWN,gpio_keys_polled,对应 event0),外加 POWER ON 与 RESET。不存在「4 个 ADC 键」——adc-keys 只挂 vol± 两个按键,DTS 配置完整、无缺失(见 .workbuddy/memory/2026-08-16.md 权威来源核对)。
在开发板串口终端下运行以下命令进行测试,然后输入数字“7”,因为按键事件为 event7。如需要停止测试按 Ctrl + c。 请按下开发板上的以上四个键,请不要按到其他键,如复位键 REST等。
~ # evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: gpio_keys_polled
/dev/input/event1: fe6f0030.pwm
/dev/input/event2: rk805 pwrkey
/dev/input/event3: adc-keys
/dev/input/event4: rockchip,rk809-codec Headphones
/dev/input/event5: rockchip,hdmi rockchip,hdmi
/dev/input/event6: Goodix Capacitive TouchScreen
Select the device event number [0-6]:
运行结果如下所示,可以看到按对应的按键就会打印对应的按键类型和按下时值为 1,松开即为
按键测试¶
[root@RK356X:/sys/class/gpio]# evtest /dev/input/event0
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "gpio_keys_polled"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 103 (KEY_UP)
Event code 108 (KEY_DOWN)
Key repeat handling:
Repeat type 20 (EV_REP)
Repeat code 0 (REP_DELAY)
Value 250
Repeat code 1 (REP_PERIOD)
Value 33
Properties:
Testing ... (interrupt to exit)
Event: time 1777906431.204591, type 1 (EV_KEY), code 108 (KEY_DOWN), value 1
Event: time 1777906431.204591, -------------- SYN_REPORT ------------
Event: time 1777906431.411026, type 1 (EV_KEY), code 108 (KEY_DOWN), value 0
Event: time 1777906431.411026, -------------- SYN_REPORT ------------
Event: time 1777906432.341233, type 1 (EV_KEY), code 103 (KEY_UP), value 1
Event: time 1777906432.341233, -------------- SYN_REPORT ------------
Event: time 1777906432.547670, type 1 (EV_KEY), code 103 (KEY_UP), value 0
Event: time 1777906432.547670, -------------- SYN_REPORT ------------