SOC平台各类GPIO构建原理是大道一统的,在各个诸如状态、数据、中断和屏蔽等寄存器具体含义用法,有少许差异。玩好RK的GPIO,需要先理解这类通用接口的框架。

        介绍RK3568的GPIO,认为讲2类重要地址和记录几种编程实践方法即可。

一、2类地址

        RK3568的MUX复用配置地址和通用寄存器类地址。

1、MUX功能复用配置类寄存器,基址:0xFDC20000(GPIO0 Bank)、0xFDC60000(GPIO1-GPIO4 Banks)。

瑞芯微RK3568开发:GPIO实践篇-LMLPHP

 

2、GPIO通用类数据、状态、中断、MASK类寄存器,基址:0xFDD60000(GPIO0)、0x0xFE740000(GPIO1)、0xFE750000(GPIO2)、0xFE760000(GPIO3)、0xFE770000(GPIO4)。

瑞芯微RK3568开发:GPIO实践篇-LMLPHP

 

二、几种操作方式

1、io tool

io -4 -w 0xFDD6000C 0xffff4000
io -4 -w 0xFDD60004 0xffff4081
io -4 -r 0xFDD6000C
io也可以单字节操作,参考io -h

2、用户态类调用

内核注册了gpio接口操作命令行,

查看以注册gpio端口:cat /sys/kernel/debug/gpio;

申请和释放:echo n > /sys/class/gpio/export,echo n > /sys/class/gpio/unexport;

3、uboot或kernel编程

裸机直接对寄存器物理地址进行读写操作,如writel和readl;

上系统接口的话,有标准的gpio接口,dts和of_xxx那一套;

03-29 19:18