关于6254的gpio功能的描述,需要结合OK6254-C_linux5.10.87+Qt5.14.2_ 用户资料\原厂资料目录下的两个手册来查看 可以看CPU手册:SPRSP58_AM62x_DS_AI_2_16_2022, 6.3.10 GPIO章节有如下描述 6254的gpio信号一共有两大组: MAIN Domain和MCU Domain 其中MAIN Domain是A核的gpio,有两组GPIO0和GPIO1,92和52个引脚 MCU Domain是M核的gpio,有一组GPIO0,24个引脚 6.2 Pin Attributes 描述引脚的控制寄存器PADCONFIG名称以及地址,以及每个引脚的属性
例如B13引脚,引脚名称是SPI0_D0,寄存器名称为PADCONFIG112,寄存器地址为0x000F41C0,可以复用的功能如下 使用devmem2查看寄存器值 关于PAD寄存器的详细信息在Cpu手册:AM62x 5.1.2.3 Pad Configuration Register Functional Description 设备树配置arch/arm64/boot/dts/ti/OK6254-C.dts Linux系统查看gpio使用情况 root@ok6254:~# cat /sys/kernel/debug/gpio gpiochip2: GPIOs 314-401, parent: platform/601000.gpio, 601000.gpio: gpio-330 ( |led1 ) out lo gpio-331 ( |led2 ) out lo gpio-332 ( |led3 ) out lo gpio-333 ( |led4 ) out lo gpio-336 ( |fixed-regulator-rgb ) out lo
gpiochip1: GPIOs 402-488, parent: platform/600000.gpio, 600000.gpio: gpio-433 ( |net-5g-rst ) out lo ACTIVE LOW gpio-437 ( |phy_rstn ) out lo gpio-438 ( |id ) in lo gpio-440 ( |RT9186 ) out lo gpio-441 ( |fixed-regulator-lvds) out lo gpio-442 ( |phy_rstn ) out lo gpio-444 ( |heartbeat ) out lo gpio-473 ( |regulator-6 ) out lo
gpiochip0: GPIOs 489-511, parent: platform/4201000.gpio, 4201000.gpio: root@ok6254:~# 在用户空间中控制gpio方式1: 使用内核的gpio-leds驱动 root@ok6254:~# cd /sys/class/leds/ root@ok6254:/sys/class/leds# ls heartbeat led1 led2 led3 mmc0:: mmc1:: mmc2:: root@ok6254:/sys/class/leds# 进入其中一个led1 root@ok6254:/sys/class/leds# cd led1/ root@ok6254:/sys/class/leds/led1# ls brightness device max_brightness power subsystem trigger uevent root@ok6254:/sys/class/leds/led1#
设备树默认配置触发方式trigger为timer,此时的led是按照定时亮灭 可以改成手动控制 root@ok6254:/sys/class/leds/led1# echo none > trigger 将方式改成正常模式 root@ok6254:/sys/class/leds/led1# echo 1 > brightness 熄灭 root@ok6254:/sys/class/leds/led1# echo 0 > brightness 点亮 root@ok6254:/sys/class/leds/led1# 方式2: 使用/sys/class/gpio,注意,该方式不需要再设备配置leds节点,只需要配置引脚即可 如下是将gpmc_ad15引脚配置成gpio 关于gpiochip的计算公式
Gpmc_ad15的引脚是gpio0_30,chip值为402+30=432 导出gpio root@ok6254:~# echo 432 >/sys/class/gpio/export 设置方向 root@ok6254:~# echo out >/sys/class/gpio/gpio432/direction 设置高低电平 root@ok6254:~# echo 1 >/sys/class/gpio/gpio432/value 置高 root@ok6254:~# echo 0 >/sys/class/gpio/gpio432/value 拉低 root@ok6254:~# |
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-12-21 04:06
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.