|
【开发基础】如何将 FirePrime GPIO配置 (mux)成指定的功能管脚
发表于 2016-5-23 19:18:34
浏览:6217
|
回复: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)>
|
|