cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins
root@rk3588-buildroot:/sys/class/gpio# echo 141 > export
root@rk3588-buildroot:/sys/class/gpio# ls -l
root@rk3588-buildroot:/sys/class/gpio# cd gpio141
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# ls -l
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat direction
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# echo out > direction
root@rk3588-buildroot:/sys/class/gpio/gpio141# echo 1 > value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat direction
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# echo 0 > value
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat direction
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# echo 1 > value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat direction
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
20240611在飞凌OK3588-C开发板上刷原厂的Buildroot以GPIO4_B5、GPIO3_B7和GPIO3_D0为例子配置GPIO口
2024/6/11 11:58
缘起:公司硬件选定了3个GPIO口来控制FPGA板的电源,但是只有1.5个可用。
由于GPIO不受控基本上都是GPIO使能/复用冲突了。
使用grep找到复用的GPIO并使用//注释掉/关闭即可!
Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\boot\dts\rockchip\rk3588-evb.dtsi
Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\boot\dts\rockchip\rk3588-evb7-v11.dtsi
Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\boot\dts\rockchip\rk3588s.dtsi
【主打】
Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\boot\dts\rockchip\rk3588s-pinctrl.dtsi
LVDS12V_EN GPIO4_B5 32*4+8*1+5=141 可高可低
FG_3V3_EN GPIO3_B7 32*3+8*1+7=111 不能作为GPIO口
FBGA_1V2_EN GPIO3_D0 32*3+8*3+0=120 不能被拉低
<4 13 8 &pcfg_pull_up_drv_level_6>,
enable-gpios = <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>;
LVDS12V_EN GPIO4_B5 <4 13 32*4+8*1+5=141 可高可低
FG_3V3_EN GPIO3_B7 <3 15 32*3+8*1+7=111 不能作为GPIO口
FBGA_1V2_EN GPIO3_D0 <3 24 32*3+8*3+0=120 不能被拉低
<&gpio4 RK_PB5
<&gpio3 RK_PB7
<&gpio3 RK_PD0
查找PIN脚复用的步骤:
viewpro@viewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel/arch/arm64/boot/dts/rockchip$ grep "RK_PD0" . -R
./rk3588s-pinctrl.dtsi: <3 RK_PD0 1 &pcfg_pull_none>,
./rk3588s-pinctrl.dtsi: <2 RK_PD0 1 &pcfg_pull_up_drv_level_2>,
./rk3588s-pinctrl.dtsi: <2 RK_PD0 2 &pcfg_pull_up_drv_level_2>,
./rk3588s-pinctrl.dtsi: <3 RK_PD0 5 &pcfg_pull_none_drv_level_1_smt>;
./rk3588s-pinctrl.dtsi: <4 RK_PD0 9 &pcfg_pull_none_smt>,
./rk3588s-pinctrl.dtsi: <3 RK_PD0 9 &pcfg_pull_none_smt>;
./rk3588s-pinctrl.dtsi: <0 RK_PD0 9 &pcfg_pull_none_smt>,
./rk3588s-pinctrl.dtsi: <1 RK_PD0 9 &pcfg_pull_none_smt>,
./rk3588s-pinctrl.dtsi: <1 RK_PD0 1 &pcfg_pull_none>;
./rk3588s-pinctrl.dtsi: <0 RK_PD0 1 &pcfg_pull_none>;
./rk3588s-pinctrl.dtsi: <4 RK_PD0 5 &pcfg_pull_none>,
./rk3588s-pinctrl.dtsi: <3 RK_PD0 4 &pcfg_pull_none>;
./rk3588s-pinctrl.dtsi: <0 RK_PD0 12 &pcfg_pull_none>,
./rk3588s-pinctrl.dtsi: <0 RK_PD0 2 &pcfg_pull_none>;
./rk3588s-pinctrl.dtsi: <4 RK_PD0 2 &pcfg_pull_none>;
./rk3588s-pinctrl.dtsi: <0 RK_PD0 11 &pcfg_pull_none>;
./rk3588s-pinctrl.dtsi: <4 RK_PD0 11 &pcfg_pull_none>;
./rk3588s-pinctrl.dtsi: <3 RK_PD0 11 &pcfg_pull_none>;
./rk3588s-pinctrl.dtsi: <4 RK_PD0 1 &pcfg_pull_up_drv_level_2>,
./rk3588s-pinctrl.dtsi: <1 RK_PD0 8 &pcfg_pull_up_drv_level_6>,
./rk3588s-pinctrl.dtsi: <0 RK_PD0 8 &pcfg_pull_up_drv_level_6>,
./rk3588s-pinctrl.dtsi: <3 RK_PD0 8 &pcfg_pull_up_drv_level_6>,
./rk3588s-pinctrl.dtsi: <0 RK_PD0 10 &pcfg_pull_none>;
./rk3588s-pinctrl.dtsi: <4 RK_PD0 10 &pcfg_pull_up>;
./rk3588s-pinctrl.dtsi: <3 RK_PD0 10 &pcfg_pull_up>,
./rk3588s-pinctrl.dtsi: <1 RK_PD0 10 &pcfg_pull_up>;
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins
pin 111 (gpio3-15): (MUX UNCLAIMED) gpio3:111
pin 112 (gpio3-16): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 113 (gpio3-17): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 114 (gpio3-18): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 115 (gpio3-19): (MUX UNCLAIMED) gpio3:115
pin 116 (gpio3-20): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 117 (gpio3-21): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 118 (gpio3-22): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 119 (gpio3-23): fead0000.i2c (GPIO UNCLAIMED) function i2c5 group i2c5m0-xfer
pin 120 (gpio3-24): fead0000.i2c (GPIO UNCLAIMED) function i2c5 group i2c5m0-xfer
pin 121 (gpio3-25): fdee0000.hdmirx-controller (GPIO UNCLAIMED) function hdmi group hdmim1-rx
pin 122 (gpio3-26): fdee0000.hdmirx-controller (GPIO UNCLAIMED) function hdmi group hdmim1-rx
pin 123 (gpio3-27): fdee0000.hdmirx-controller (GPIO UNCLAIMED) function hdmi group hdmim1-rx
pin 124 (gpio3-28): fdee0000.hdmirx-controller (GPIO UNCLAIMED) function hdmi group hdmim1-rx
pin 125 (gpio3-29): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 126 (gpio3-30): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 127 (gpio3-31): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 128 (gpio4-0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 129 (gpio4-1): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 130 (gpio4-2): (MUX UNCLAIMED) gpio4:130
pin 131 (gpio4-3): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 132 (gpio4-4): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 133 (gpio4-5): (MUX UNCLAIMED) gpio4:133
pin 134 (gpio4-6): (MUX UNCLAIMED) gpio4:134
pin 135 (gpio4-7): (MUX UNCLAIMED) gpio4:135
pin 136 (gpio4-8): vcc5v0-host gpio4:136 function usb group vcc5v0-host-en
pin 137 (gpio4-9): (MUX UNCLAIMED) gpio4:137
pin 138 (gpio4-10): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 139 (gpio4-11): (MUX UNCLAIMED) gpio4:139
pin 140 (gpio4-12): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 141 (gpio4-13): (MUX UNCLAIMED) (GPIO UNCLAIMED)
测试GPIO4_B5、GPIO3_B7和GPIO3_D0:
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio# ls -l
total 0
--w------- 1 root root 4096 Jan 1 00:01 export
lrwxrwxrwx 1 root root 0 Jan 1 00:01 gpio120 -> ../../devices/platform/pinctrl/fec40000.gpio/gpiochip3/gpio/gpio120
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.2.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan 1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio# echo 111 > export
root@rk3588-buildroot:/sys/class/gpio# ls -l
total 0
--w------- 1 root root 4096 Jan 1 00:04 export
lrwxrwxrwx 1 root root 0 Jan 1 00:04 gpio111 -> ../../devices/platform/pinctrl/fec40000.gpio/gpiochip3/gpio/gpio111
lrwxrwxrwx 1 root root 0 Jan 1 00:01 gpio120 -> ../../devices/platform/pinctrl/fec40000.gpio/gpiochip3/gpio/gpio120
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.2.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan 1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio# cd gpio111
root@rk3588-buildroot:/sys/class/gpio/gpio111# ls -l
total 0
-rw-r--r-- 1 root root 4096 Jan 1 00:04 active_low
lrwxrwxrwx 1 root root 0 Jan 1 00:04 device -> ../../../gpiochip3
-rw-r--r-- 1 root root 4096 Jan 1 00:04 direction
-rw-r--r-- 1 root root 4096 Jan 1 00:04 edge
drwxr-xr-x 2 root root 0 Jan 1 00:04 power
lrwxrwxrwx 1 root root 0 Jan 1 00:04 subsystem -> ../../../../../../../class/gpio
-rw-r--r-- 1 root root 4096 Jan 1 00:04 uevent
-rw-r--r-- 1 root root 4096 Jan 1 00:04 value
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat direction
in
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat value
0
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio/gpio111# echo out > direction
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat 1 > value
cat: 1: No such file or directory
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat value
0
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio/gpio111# echo 1 > value
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat value
1
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat value
1
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio/gpio111# echo 0 > value
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat value
0
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio/gpio111# echo 1 > value
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio111# cat value
1
root@rk3588-buildroot:/sys/class/gpio/gpio111#
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio# echo 120 > export
root@rk3588-buildroot:/sys/class/gpio# ls -l
total 0
--w------- 1 root root 4096 Jan 1 00:01 export
lrwxrwxrwx 1 root root 0 Jan 1 00:01 gpio120 -> ../../devices/platform/pinctrl/fec40000.gpio/gpiochip3/gpio/gpio120
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.2.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan 1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio# cd gpio120
root@rk3588-buildroot:/sys/class/gpio/gpio120# cat direction
in
root@rk3588-buildroot:/sys/class/gpio/gpio120# cat value
1
root@rk3588-buildroot:/sys/class/gpio/gpio120# echo out > direction
root@rk3588-buildroot:/sys/class/gpio/gpio120# echo 1 > value
root@rk3588-buildroot:/sys/class/gpio/gpio120# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio120# cat value
1
root@rk3588-buildroot:/sys/class/gpio/gpio120#
root@rk3588-buildroot:/sys/class/gpio/gpio120#
root@rk3588-buildroot:/sys/class/gpio/gpio120# echo 0 > value
root@rk3588-buildroot:/sys/class/gpio/gpio120#
root@rk3588-buildroot:/sys/class/gpio/gpio120# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio120# cat value
0
root@rk3588-buildroot:/sys/class/gpio/gpio120#
root@rk3588-buildroot:/sys/class/gpio/gpio120# echo 1 > value
root@rk3588-buildroot:/sys/class/gpio/gpio120#
root@rk3588-buildroot:/sys/class/gpio/gpio120# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio120# cat value
1
root@rk3588-buildroot:/sys/class/gpio/gpio120#
root@rk3588-buildroot:/sys/class/gpio/gpio120#
root@rk3588-buildroot:/sys/class/gpio# ls -l
total 0
--w------- 1 root root 4096 Jan 1 00:04 export
lrwxrwxrwx 1 root root 0 Jan 1 00:04 gpio111 -> ../../devices/platform/pinctrl/fec40000.gpio/gpiochip3/gpio/gpio111
lrwxrwxrwx 1 root root 0 Jan 1 00:01 gpio120 -> ../../devices/platform/pinctrl/fec40000.gpio/gpiochip3/gpio/gpio120
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.2.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan 1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio# echo 141 > export
root@rk3588-buildroot:/sys/class/gpio# ls -l
total 0
--w------- 1 root root 4096 Jan 1 00:07 export
lrwxrwxrwx 1 root root 0 Jan 1 00:04 gpio111 -> ../../devices/platform/pinctrl/fec40000.gpio/gpiochip3/gpio/gpio111
lrwxrwxrwx 1 root root 0 Jan 1 00:01 gpio120 -> ../../devices/platform/pinctrl/fec40000.gpio/gpiochip3/gpio/gpio120
lrwxrwxrwx 1 root root 0 Jan 1 00:07 gpio141 -> ../../devices/platform/pinctrl/fec50000.gpio/gpiochip4/gpio/gpio141
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip0 -> ../../devices/platform/pinctrl/fd8a0000.gpio/gpio/gpiochip0
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip128 -> ../../devices/platform/pinctrl/fec50000.gpio/gpio/gpiochip128
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip32 -> ../../devices/platform/pinctrl/fec20000.gpio/gpio/gpiochip32
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip509 -> ../../devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk806-pinctrl.2.auto/gpio/gpiochip509
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip64 -> ../../devices/platform/pinctrl/fec30000.gpio/gpio/gpiochip64
lrwxrwxrwx 1 root root 0 Jan 1 00:00 gpiochip96 -> ../../devices/platform/pinctrl/fec40000.gpio/gpio/gpiochip96
--w------- 1 root root 4096 Jan 1 00:00 unexport
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio#
root@rk3588-buildroot:/sys/class/gpio# cd gpio141
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# ls -l
total 0
-rw-r--r-- 1 root root 4096 Jan 1 00:07 active_low
lrwxrwxrwx 1 root root 0 Jan 1 00:07 device -> ../../../gpiochip4
-rw-r--r-- 1 root root 4096 Jan 1 00:07 direction
-rw-r--r-- 1 root root 4096 Jan 1 00:07 edge
drwxr-xr-x 2 root root 0 Jan 1 00:07 power
lrwxrwxrwx 1 root root 0 Jan 1 00:07 subsystem -> ../../../../../../../class/gpio
-rw-r--r-- 1 root root 4096 Jan 1 00:07 uevent
-rw-r--r-- 1 root root 4096 Jan 1 00:07 value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat direction
in
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat value
0
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# echo out > direction
root@rk3588-buildroot:/sys/class/gpio/gpio141# echo 1 > value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat value
1
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# echo 0 > value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat value
0
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# echo 1 > value
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat direction
out
root@rk3588-buildroot:/sys/class/gpio/gpio141# cat value
1
root@rk3588-buildroot:/sys/class/gpio/gpio141#
参考资料:
https://zhuanlan.zhihu.com/p/664344987
Banana Pi BPI-W3(Armsom W3)RK3588开当板之调试UART
百度:rockchip gpio:gpio pinctrl
pinctrl gpio:gpio
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins
https://blog.csdn.net/lhh_qrsly/article/details/132294845
GPIO 配置 和 PINCTRL有啥区别
https://blog.csdn.net/nb124667390/article/details/132533506
RK3588平台驱动调试篇 [ GPIO篇 ] - RK3588-对GPIO的操作控制
https://blog.csdn.net/challenglistic/article/details/132072066
【Linux驱动】pinctrl 和 gpio子系统(一)—— pinctrl 节点解析,引入gpio子系统
http://www.sunychip.com/?list_9/112.html
XCY-3399 GPIO 使用
root@rk3588-buildroot:/sys/class/gpio/gpio141# io
Raw memory i/o utility - $Revision: 1.5 $
io -v -1|2|4 -r|w [-l <len>] [-f <file>] <addr> [<value>]
-v Verbose, asks for confirmation
-1|2|4 Sets memory access size in bytes (default byte)
-l <len> Length in bytes of area to access (defaults to
one access, or whole file length)
-r|w Read from or Write to memory (default read)
-f <file> File to write on memory read, or
to read on memory write
<addr> The memory address to access
<val> The value to write (implies -w)
Examples:
io 0x1000 Reads one byte from 0x1000
io 0x1000 0x12 Writes 0x12 to location 0x1000
io -2 -l 8 0x1000 Reads 8 words from 0x1000
io -r -f dmp -l 100 200 Reads 100 bytes from addr 200 to file
io -w -f img 0x10000 Writes the whole of file to memory
Note access size (-1|2|4) does not apply to file based accesses.
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# cd /sys/kernel/debug/gpio
sh: cd: /sys/kernel/debug/gpio: Not a directory
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141#
root@rk3588-buildroot:/sys/class/gpio/gpio141# cd /sys/kernel/debug/gpio
sh: cd: /sys/kernel/debug/gpio: Not a directory
root@rk3588-buildroot:/sys/class/gpio/gpio141# cd /sys/kernel/debug/
root@rk3588-buildroot:/sys/kernel/debug#
root@rk3588-buildroot:/sys/kernel/debug# ls -l
total 0
drwxr-xr-x 5 root root 0 Jan 1 00:00 asoc
drwxr-xr-x 16 root root 0 Jan 1 00:00 bdi
drwxr-xr-x 15 root root 0 Jan 1 00:00 block
drwxr-xr-x 2 root root 0 Jan 1 00:00 bluetooth
drwxr-xr-x 2 root root 0 Jan 1 00:00 cec
--w------- 1 root root 0 Jan 1 00:00 clear_warn_once
drwxr-xr-x 818 root root 0 Jan 1 00:00 clk
-rw-r--r-- 1 root root 0 Jan 1 00:00 debug_enabled
drwxr-xr-x 2 root root 0 Jan 1 00:00 devfreq
drwxr-xr-x 2 root root 0 Jan 1 00:00 device_component
-r--r--r-- 1 root root 0 Jan 1 00:00 devices_deferred
drwxr-xr-x 2 root root 0 Jan 1 00:00 dma_buf
drwxr-xr-x 2 root root 0 Jan 1 00:00 dma_pools
drwxr-xr-x 5 root root 0 Jan 1 00:00 dmaengine
drwxr-xr-x 6 root root 0 Jan 1 00:00 dri
drwxr-xr-x 2 root root 0 Jan 1 00:00 dw-hdmi0
drwxr-xr-x 2 root root 0 Jan 1 00:00 dw-hdmi1
drwxr-xr-x 2 root root 0 Jan 1 00:00 dynamic_debug
drwxr-xr-x 2 root root 0 Jan 1 00:00 energy_model
-rw-r--r-- 1 root root 0 Jan 1 00:00 fault_around_bytes
-r--r--r-- 1 root root 0 Jan 1 00:00 fd8b0010.pwm
-r--r--r-- 1 root root 0 Jan 1 00:00 fd8b0030.pwm
-r--r--r-- 1 root root 0 Jan 1 00:00 fea10000.dma-controller
-r--r--r-- 1 root root 0 Jan 1 00:00 fea30000.dma-controller
-r--r--r-- 1 root root 0 Jan 1 00:00 fed10000.dma-controller
-r--r--r-- 1 root root 0 Jan 1 00:00 gpio
drwxr-xr-x 2 root root 0 Jan 1 00:00 hdmirx
drwxr-xr-x 2 root root 0 Jan 1 00:00 hid
drwxr-xr-x 2 root root 0 Jan 1 00:00 ieee80211
drwxr-xr-x 2 root root 0 Jan 1 00:00 iio
drwxr-xr-x 5 root root 0 Jan 1 00:00 mali0
drwxr-xr-x 2 root root 0 Jan 1 00:00 memblock
drwxr-xr-x 3 root root 0 Jan 1 00:00 mmc0
drwxr-xr-x 2 root root 0 Jan 1 00:00 mmc1
drwxr-xr-x 2 root root 0 Jan 1 00:00 mmc2
drwxr-xr-x 2 root root 0 Jan 1 00:00 mtd
drwxr-xr-x 9 root root 0 Jan 1 00:00 opp
drwxr-xr-x 4 root root 0 Jan 1 00:00 pinctrl
drwxr-xr-x 28 root root 0 Jan 1 00:00 pm_genpd
drwxr-xr-x 2 root root 0 Jan 1 00:00 provoke-crash
drwxr-xr-x 7 root root 0 Jan 1 00:00 pvtm
-r--r--r-- 1 root root 0 Jan 1 00:00 pwm
drwxr-xr-x 2 root root 0 Jan 1 00:00 ras
drwxr-xr-x 95 root root 0 Jan 1 00:00 regmap
drwxr-xr-x 42 root root 0 Jan 1 00:00 regulator
drwxr-xr-x 2 root root 0 Jan 1 00:00 rknpu
drwxr-xr-x 2 root root 0 Jan 1 00:00 rkrga
drwxr-xr-x 2 root root 0 Jan 1 00:00 rkserdes
-rw-r--r-- 1 root root 0 Jan 1 00:00 sched_debug
-rw-r--r-- 1 root root 0 Jan 1 00:00 sched_features
drwxr-xr-x 2 root root 0 Jan 1 00:00 slab
-r--r--r-- 1 root root 0 Jan 1 00:00 sleep_time
drwxr-xr-x 2 root root 0 Jan 1 00:00 stmmaceth
-r--r--r-- 1 root root 0 Jan 1 00:00 suspend_stats
drwxr-xr-x 2 root root 0 Jan 1 00:00 swiotlb
drwxr-xr-x 2 root root 0 Jan 1 00:00 sync
drwx------ 6 root root 0 Jan 1 00:00 tracing
drwxr-xr-x 2 root root 0 Jan 1 00:00 ubi
drwxr-xr-x 2 root root 0 Jan 1 00:00 ubifs
drwxr-xr-x 9 root root 0 Jan 1 00:00 usb
-r--r--r-- 1 root root 0 Jan 1 00:00 wakeup_sources
root@rk3588-buildroot:/sys/kernel/debug#
root@rk3588-buildroot:/sys/kernel/debug# cat gpio
gpiochip0: GPIOs 0-31, parent: platform/fd8a0000.gpio, gpio0:
gpio-0 ( |bt_default_wake_host) in lo
gpio-15 ( |vcc-3v3-sd-s0-regula) out lo
gpio-20 ( |reset ) out lo ACTIVE LOW
gpio-21 ( |bt_default_wake ) in hi
gpio-22 ( |bt_default_reset ) out lo
gpio-27 ( |reset ) out hi ACTIVE LOW
gpiochip1: GPIOs 32-63, parent: platform/fec20000.gpio, gpio1:
gpio-42 ( |vcc-mipidcphy0-regul) out lo
gpio-58 ( |vcc-mipicsi0-regulat) out lo
gpio-59 ( |vcc-mipicsi1-regulat) out lo
gpio-61 ( |hdmirx-det ) in hi ACTIVE LOW
gpiochip2: GPIOs 64-95, parent: platform/fec30000.gpio, gpio2:
gpio-81 ( |vcc3v3-lcd0-n ) out hi
gpio-85 ( |vcc3v3-pcie30 ) out lo
gpiochip3: GPIOs 96-127, parent: platform/fec40000.gpio, gpio3:
gpio-102 ( |vbus5v0-typec ) out lo
gpio-111 ( |sysfs ) out hi
gpio-120 ( |sysfs ) out hi
gpiochip4: GPIOs 128-159, parent: platform/fec50000.gpio, gpio4:
gpio-128 ( |sbu1-dc ) out lo
gpio-129 ( |sbu2-dc ) out lo
gpio-136 ( |vcc5v0-host ) out hi
gpio-137 ( |enable ) out hi
gpio-138 ( |enable ) out hi
gpio-141 ( |sysfs ) out hi
gpio-148 ( |bt_default_rts ) in hi
gpiochip5: GPIOs 509-511, parent: platform/rk806-pinctrl.2.auto, rk806-gpio, can sleep:
root@rk3588-buildroot:/sys/kernel/debug#