嵌入式爱好者

嵌入式爱好者 门户 知识库 查看内容

FET6254核心板的gpio复用

2022-8-29 09:08| 发布者: ljb2019001| 查看: 187| 评论: 0

类目:  >  知识库     文档编号: 730

关于6254的gpio功能的描述,需要结合OK6254-C_linux5.10.87+Qt5.14.2_ 用户资料\原厂资料目录下的两个手册来查看

可以看CPU手册:SPRSP58_AM62x_DS_AI_2_16_2022,

6.3.10 GPIO章节有如下描述

6254gpio信号一共有两大组:

MAIN DomainMCU Domain

其中MAIN DomainA核的gpio,有两组GPIO0GPIO19252个引脚


MCU DomainM核的gpio,有一组GPIO024个引脚

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#

 

设备树默认配置触发方式triggertimer,此时的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的计算公式

gpio0_n

gpiochip1:402-488

计算公式: 402+n

gpio1_n

gpiochip2:314-401

计算公式: 314+n

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:~#



已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-5-14 03:08

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部