当前位置: 首页> 健康> 美食 > 重庆网站联盟_网站设计论文分类号_模板之家官网_安徽关键词seo

重庆网站联盟_网站设计论文分类号_模板之家官网_安徽关键词seo

时间:2025/8/8 4:22:15来源:https://blog.csdn.net/zyy29182918/article/details/147248111 浏览次数:2次
重庆网站联盟_网站设计论文分类号_模板之家官网_安徽关键词seo

参考官方教程:ROC-RK3588S-PC

一.基本知识:

1.GPIO引脚计算:

ROC-RK3588S-PC 有 5 组 GPIO bank:GPIO0~GPIO4,每组又以 A0~A7, B0~B7, C0~C7, D0~D7 作为编号区分,常用以下公式计算引脚:GPIO pin脚计算公式:pin = bank * 32 + numberGPIO 小组编号计算公式:number = group * 8 + X
下面演示GPIO1_D0 pin脚计算方法:bank = 1;      //GPIO1_D0 => 1, bank ∈ [0,4]group = 3;      //GPIO1_D0 => 3, group ∈ {(A=0), (B=1), (C=2), (D=3)}X = 0;       //GPIO1_D0 => 0, X ∈ [0,7]number = group * 8 + X = 3 * 8 + 0 = 24pin = bank*32 + number= 1 * 32 + 24 = 56;

2.查看 pinmux-pins:

使用命令sudo cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins
得到结果Pinmux settings per pin 
Format: pin (name): mux_owner gpio_owner hog? 
pin 0 (gpio0-0): wireless-bluetooth gpio0:0 function wireless-bluetooth group bt-irq-gpio    
pin 1 (gpio0-1): (MUX UNCLAIMED) (GPIO UNCLAIMED)                                    
pin 2 (gpio0-2): (MUX UNCLAIMED) (GPIO UNCLAIMED)        
pin 3 (gpio0-3): (MUX UNCLAIMED) (GPIO UNCLAIMED)       
pin 4 (gpio0-4): fe2c0000.mmc (GPIO UNCLAIMED) function sdmmc group sdmmc-det   
...解析: pin 0这一列表示引脚编号,gpio0-0这一列表示gpio组编号,后面MUX UNCLAIMED这一列表示数据选择器的拥有者,GPIO UNCLAIMED这一列表示gpio的拥有者。其中 MUX UNCLAIMED 表示该引脚还没有被节点使用pinctrl去进行控制,例如:节点 i2c7 被启用,它拥有pinctrl-0属性,对引脚pin 56功能作出出修改,复用为i2c ,则该引脚的信息会变为pin 56 (gpio1-24): fec90000.i2c (GPIO UNCLAIMED) function i2c7 group i2c7m0-xfer ,它被地址为0xfec90000、名字为i2c的节点使用pinctrl配置,pinctrl的值是i2cm0-xfer。GPIO UNCLAIMED表示还没有注册的gpio使用该引脚,我们用上述gpio_demo例子去注册该引脚,引脚信息会变成pin 56 (gpio1-24): gpio_demo gpio1:56 function gpio group pin56_57_gpio ,它被名为gpio_demo的节点使用pinctrl配置,pinctrl的值是pin56_57_gpio,该引脚还被申请为gpio。

3.GPIO 调试接口:

Debugfs 文件系统目的是为开发人员提供更多内核数据,方便调试。 这里 GPIO 的调试也可以用 Debugfs 文件系统,获得更多的内核信息。GPIO 在 Debugfs 文件系统中的接口为 /sys/kernel/debug/gpio,可以这样读取该接口的信息:console:/ $ cat sys/kernel/debug/gpio                                          
gpiochip0: GPIOs 0-31, parent: platform/fd8a0000.gpio, gpio0:gpio-0   (                    |bt_default_wake_host) in  lo gpio-21  (                    |bt_default_wake     ) in  lo gpio-22  (                    |bt_default_reset    ) out lo gpiochip1: GPIOs 32-63, parent: platform/fec20000.gpio, gpio1:gpio-34  (                    |bt_default_rts      ) in  hi gpio-36  (                    |hpd                 ) in  lo gpio-43  (                    |:power              ) out hi gpio-44  (                    |reset               ) out hi gpio-52  (                    |hp-det              ) in  hi ACTIVE LOWgpio-56  (                    |sysfs               ) out higpio-57  (                    |sysfs               ) out logpio-61  (                    |hdmirx-det          ) in  hi ACTIVE LOW...
从读取到的信息中可以知道,内核把 GPIO 当前的状态都列出来了,以 GPIO1 组为例,gpio-56(GPIO1_D0) 输出高电平 (out hi)。

二.步骤

1.ROC-RK3588S-PC开发板:

2.修改roc-rk3588s-pc.dtsi文件的第269行,将status属性的值改成disabled(禁用spi1接口)

/home/wst/Linux_SDK/kernel/arch/arm64/boot/dts/rockchip/roc-rk3588s-pc.dtsi
line:269
spi1:disabled

3. ./build.sh重新编译系统并重新烧写系统

4.查看验证

未修改设备树前(4个GPIO为SPI接口):
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pinspin 56 (gpio1-24): feb10000.spi (GPIO UNCLAIMED) function spi1 group spi1m2-pins
pin 57 (gpio1-25): feb10000.spi (GPIO UNCLAIMED) function spi1 group spi1m2-pins
pin 58 (gpio1-26): feb10000.spi (GPIO UNCLAIMED) function spi1 group spi1m2-pins
pin 59 (gpio1-27): feb10000.spi (GPIO UNCLAIMED) function spi1 group spi1m2-cs0修改后(4个GPIO为通用GPIO):
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pinspin 56 (gpio1-24): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 57 (gpio1-25): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 58 (gpio1-26): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 59 (gpio1-27): (MUX UNCLAIMED) (GPIO UNCLAIMED)将56、57脚设成GPIO out
echo 56 > /sys/class/gpio/export
echo 57 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio56/direction
echo out > /sys/class/gpio/gpio57/direction
echo 0 > /sys/class/gpio/gpio56/valuecat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinctrl/pinmux-pins
pin 56 (gpio1-24): (MUX UNCLAIMED) gpio1:56
pin 57 (gpio1-25): (MUX UNCLAIMED) gpio1:57
pin 58 (gpio1-26): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 59 (gpio1-27): (MUX UNCLAIMED) (GPIO UNCLAIMED)

关键字:重庆网站联盟_网站设计论文分类号_模板之家官网_安徽关键词seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: