初次接触设备树

qq_34240815 2019-02-07 11:07:12
引入设备树之后,我有些疑问。如果我在驱动程序probe函数里面需要用到lcd controller相关寄存器的资源是用platform_get_resource函数来获取吗?引入设备树之后platform_device这部分是不是不用管了?引入设备树之后假如移植一个声卡驱动的大致流程是什么?三个问题。
...全文
830 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
酸菜鱼的鱼 2019-03-22
  • 打赏
  • 举报
回复
刚好经常接触。
其实上面的melo_fang回答还是很好的,我结合自己的工作心得说一下吧。
问题1:在linux 3.10之前的版本中还没有用到dts的,3.10之后才出现使用设备树的方式代替platform_device的。一般是用以of开头的函数获取设备的硬件平台资源。不过呢,内核也有好多api直接将of函数封装了一层,比如pinctrl子系统,具体可以查看如下例子:https://blog.csdn.net/u010299133/article/details/88646412

问题2:使用了设备树后就不会使用platform_device的方式了

问题3:自己没有移植过声卡,倒是移植过camera的。 一般芯片原厂都会提供一个sdk,里面都会包含,各种驱动,遇到新的硬件模块,多半还是就在现有的相类似的驱动上修改。主要就是dts节点,驱动代码中的probe中的部分
JT同学 2019-03-21
  • 打赏
  • 举报
回复
https://blog.csdn.net/weixin_42462202/article/details/86505992
melo_fang 2019-03-20
  • 打赏
  • 举报
回复
1.引入设备树后,硬件资源配置在设备树中,相关api应该都是of开头,具体你可以去查下
2.遗留的platform_device这块,基本上处于抛弃状态。不在由板级文件提供硬件资源。platform_device应该就是内核内部的一些在使用,例如USB host conctol的platform_device 就会由otg驱动创建。
3.移植声卡我之前没有做过,但是设备树引入后,大致步骤无非是:
a. 确定所有硬件资源,包括不限于寄存器/gpio/中断/power等,在设备树里配置正确
b. 移植厂商提供的驱动,确保驱动正确加载(makefile kconfig等)
c. 确保probe/中断/resume/suspend等关键函数的调用
fly 100% 2019-02-13
  • 打赏
  • 举报
回复
所有的获取信息都是通过device tree的接口过去,包括中断号 基地址和一些自己定义的
内容概要:本文档《linuxStudy.docx》深入探讨了Linux系统的核心组件及其开发细节,涵盖uboot、字符设备驱动、平台总线模型、设备树(DTS/DTSI/DTB)、中断处理、时钟管理、GPIO配置、管脚复用(pinmux)、pinctrl设置、设备树展开为device_node及platform_device、设备树插件(Dynamic Device Tree)以及文件系统构建等内容。文档详细介绍了各部分的实现机制、配置方法及使用案例,包括但不限于Linux内核模块编译、设备树编译与解析、设备树节点属性、中断控制器配置、时钟树描述、GPIO控制器定义、pinctrl子系统配置、设备树与内核交互、configfs虚拟文件系统及其实现细节、以及基于BusyBox和Buildroot的根文件系统构建。 适合人群:具备一定Linux基础,特别是对Linux内核开发、驱动开发、嵌入式系统开发感兴趣的工程师或研究人员。 使用场景及目标:①理解uboot引导过程、字符设备驱动开发流程;②掌握平台总线模型的工作原理及其实现;③熟悉设备树的编写、编译及与内核的交互;④学习中断、时钟、GPIO等硬件资源的配置与管理;⑤掌握管脚复用及pinctrl子系统的使用;⑥理解设备树插件技术及其应用场景;⑦掌握基于BusyBox和Buildroot构建根文件系统的步骤与技巧。 阅读建议:由于文档内容涉及大量底层技术和具体实现细节,建议读者结合实际开发环境进行实践操作,并参考相关资料加深理解。对于初次接触Linux内核及驱动开发的读者,可以从较为基础的部分开始学习,逐步深入到高级主题。

21,618

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧