Linux DTS

文章详细介绍了如何在Rockchip芯片中配置pinctrl子系统进行引脚功能复用,包括PIN_BANKPIN_BANK_IDXMUX属性的使用,并提供了一个设备树中LED节点的配置示例,展示了如何利用Linux内核的LED驱动来控制LED作为系统心跳指示灯。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 设置引脚功能复用与电气属性

查看Rockchip关于pinctrl子系统的绑定文档:Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt 。

其中关于引脚功能复用配置需要的属性有为​​rockchip,pins​​,属性值是三个整数组成的数组,格式如下:

rockchip,pins = <PIN_BANK PIN_BANK_IDX MUX &phandle>

    PIN_BANK:引脚所在bank号
    PIN_BANK_IDX:所在bank内的引脚号
    MUX:功能复用设置,0表示普通gpio,1-N表示特殊的功能复用
    phandle:引脚配置,在​​pinctrl-bindings.txt​​文件中描述

 

下面来看一个实例,在设备树中找到 pinctrl 子节点,其中有关于led节点的描述:

PIN_BANK是0,PIN_BANK_IDX是13,表示GPIO0这个bank内的13个引脚,也就是PB5,复用设置为RK_FUNC_GPIO。

除了直接使用数字之外,也可以用宏定义,在​​<dt-bindings/pinctrl/rockchip.h>​​头文件中定义。

比如 PIN_BANK 号的可用值如下:

#define RK_GPIO0  0
#define RK_GPIO1  1
#define RK_GPIO2  2
#define RK_GPIO3  3
#define RK_GPIO4  4
#define RK_GPIO6  6

PIN_BANK_IDX的可用值如下:

#define RK_PA0    0
#define RK_PA1    1
#define RK_PA2    2
#define RK_PA3    3
#define RK_PA4    4
#define RK_PA5    5
#define RK_PA6    6
#define RK_PA7    7

 

MUX的可用值如下:

#define RK_FUNC_GPIO  0
#define RK_FUNC_1 1
#define RK_FUNC_2 2
#define RK_FUNC_3 3
#define RK_FUNC_4 4
#define RK_FUNC_5 5
#define RK_FUNC_6 6
#define RK_FUNC_7 7

2.使用gpio

添加LED节点,使用Linux内核自带的LED驱动,将该LED作为系统心跳指示灯:

 
3.编译设备树

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值