Firefly开源社区

打印 上一主题 下一主题

【开发基础】如何将 FirePrime GPIO配置 (mux)成指定的功能管脚

582

积分

10

威望

8

贡献

技术大神

Rank: 3Rank: 3

积分
582
QQ

【开发基础】如何将 FirePrime GPIO配置 (mux)成指定的功能管脚

发表于 2016-5-23 19:18:34      浏览:6201 | 回复:0        打印      只看该作者   [复制链接] 楼主
本帖最后由 54zw 于 2016-5-23 19:36 编辑

将复用的GPIO配置成制定功能的管脚:

首先对BALL NAME解释下:
比如有管脚名为GPIO2_D3
通过查看RK3128手册可以知道这个管脚有如下3种功能:
1. GPIO
2. CARD_CLK
3. UART0_RX
在代码中这是一个宏,在include/dt-bindings/pinctrl/rockchip-rk312x.h这个文件中定义的(管脚MUX)
#define GPIO2_D3 0x2d30
用16位来表示:
2表示GPIO BANK 2
d表示第d组
3表示第三个管脚
0表示功能为GPIO     //应该要有datasheet介绍这个,但是我没找到,只是通过代码来知道的

怎么配置成制定的功能?
每个平台都会有些许区别,但是原理都是一样的,只是写法不同而已,这里都说的是在Device tree里的配置差异
最常见的应该类是如下的格式:
vendor,pin = <&gpio, offset, function>  
gpio表示bank
offset表示偏移量,或是叫组
function表示的是功能 (MUX)

在RK的代码里把上面的三个合并写到一起了,所以在RK的代码里是这样写的:
rockchip,pins = <UART0_SIN>
这样就把GPIO02_D3配置成了UART0_SIN功能引脚

要把任意一个引脚配置成GPIO的话可以用FUNC_TO_GPIO这个宏,比如把GPIO0_C1配置成GPIO管脚可以:(没手册,不知道默认是什么功能脚)
rockchip,pins = <FUNC_TO_GPIO(UART0_RTSN)>


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表