设备树下的 LED 驱动实验

使用设备树向 Linux 内核传递相关寄存器物理地址,并且使用 OF 函数从设备树中获取所需的属性值,然后使用获取到的属性值来初始化相关 IO。

我们需要做的工作:

(1)在 .dts 文件中创建相应的设备节点。

(2)编写驱动程序,利用 OF 函数获取设备树中相关属性值。

(3)使用获取到的有关属性值来初始化 LED 所使用的 GPIO。

一、创建设备相应设备节点
在这里插入图片描述
设备树修改完成后需要重新编译设备树:make dtbs,启动 Linux 内核时使用重新编译后的设备树。
在这里插入图片描述
构建 alphaled 节点时没有定义 name 属性值,这个 name 属性值哪里来的?

【答】:这是老版本设备树使用的属性,每个节点里面都有 name 属性,由内核解析设备树时自动添加。

二、利用 OF 函数获取相关属性值初始化 LED

从设备树中获取定义的寄存器物理地址信息,然后使用 ioremap 完成物理地址到虚拟地址的转化。以前寄存器物理地址信息放在驱动文件中,如果驱动是已经加载到内核中了,想要修改非常麻烦。

定义设备树中的设备节点,可以放到设备结构体中。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值