20240611在飞凌OK3588-C开发板上刷原厂的Buildroot以GPIO4_B5、GPIO3_B7和GPIO3_D0为例子配置GPIO口

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# 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值