[dts]DTS实例分析
2. 通常会碰到的实际问题
到此,问题出现了:
1. 当写一个按键驱动,应该如何在*.dts或者*.dtsi中操作?
2. 当在串口driver中需要使用到某个pin脚作为普通输出IO,该如何操作?
3. 当在串口driver中需要使用某个muxpin脚作为ADC或者其他服用功能该如何操作?
4. 当在串口driver中有可能想使能某个功能而不想写定在driver代码中,该如何操作?
5. 当想向driver中传入一个常数如做delay延时操作等等,该如何操作?
解答:
1. 当写一个按键驱动,应该如何在*.dts或者*.dtsi中操作?
1 gpio-keys { 2 compatible = "gpio-keys"; 3 pinctrl-names = "default"; 4 pinctrl-0 = <&pinctrl_gpio_keys>; 5 6 volume-up { 7 label = "Volume Up"; 8 gpios = <&gpio1 18 GPIO_ACTIVE_LOW>; 9 linux,code = <KEY_VOLUMEUP>; 10 }; 11 12 volume-down { 13 label = "Volume Down"; 14 gpios = <&gpio1 19 GPIO_ACTIVE_LOW>; 15 linux,code = <KEY_VOLUMEDOWN>; 16 }; 17 };
1 pinctrl_gpio_keys: gpio_keysgrp { 2 fsl,pins = < 3 MX6SX_PAD_CSI_DATA04__GPIO1_IO_18 0x17059 4 MX6SX_PAD_CSI_DATA05__GPIO1_IO_19 0x17059 5 >; 6 };
2. 当在串口driver中需要使用到某个pin脚作为普通输出IO,该如何操作?
1 sii902x_reset: sii902x-reset { 2 compatible = "gpio-reset"; 3 reset-gpios = <&gpio3 27 1>; 4 reset-delay-us = <100000>; 5 #reset-cells = <0>; 6 status = "disabled"; 7 };
最简单的不需要pinctrl来进行pin脚的设置,为什么???
3. 当在串口driver中需要使用某个muxpin脚作为ADC或者其他服用功能该如何操作?
这个问题其实上面有提到,就像上述的多个pin-names和多个pinctrl在后面的pinctrl中配置这个复用的管脚即可。
4. 当在串口driver中有可能想使能某个功能而不想写定在driver代码中,该如何操作?
1 &uart5 { 2 pinctrl-names = "default"; 3 pinctrl-0 = <&pinctrl_uart5>; 4 fsl,uart-has-rtscts; 5 status = "okay"; 6 7 };
只需要在driver中使用of函数读取此属性,如果有此字段,可以使能某些操作;如果没有就失能某些操作。
5. 当想向driver中传入一个常数如做delay延时操作等等,该如何操作?
1 &usdhc3 { 2 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 3 pinctrl-0 = <&pinctrl_usdhc3>; 4 pinctrl-1 = <&pinctrl_usdhc3_100mhz>; 5 pinctrl-2 = <&pinctrl_usdhc3_200mhz>; 6 bus-width = <8>; 7 cd-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; 8 wp-gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>; 9 keep-power-in-suspend; 10 enable-sdio-wakeup; 11 vmmc-supply = <&vcc_sd3>; 12 status = "okay"; 13 };
只需要在driver中读取bus-width字段的值,即可获取到8这个常量,注意在devicetree中命名字段更多使用"-"而非下划线"_".
[dts]DTS实例分析相关推荐
- gpgpu-sim卡分配程序设计实例分析
gpgpu-sim卡分配程序设计实例分析 运行代码地址:https://github.com/gpgpu-sim/gpgpu-sim_distribution 一.概述 此文件包含有关安装.生成和运行 ...
- python多功能电子钟_python gui - PyQt4 精彩实例分析之电子钟
PyQt4 精彩实例分析之电子钟,当然在写实例之前要先安装PyQt4模块.from PyQt4.QtGui import * from PyQt4.QtCore import * import sys ...
- RPC-原理及RPC实例分析
还有就是:RPC支持的BIO,NIO的理解 (1)BIO: Blocking IO;同步阻塞: (2)NIO:Non-Blocking IO, 同步非阻塞; 参考:IO多路复用,同步,异步,阻塞和非阻 ...
- python asyncio教程_python中使用asyncio实现异步IO实例分析
1.说明 Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接 ...
- 马歇尔·赫伯特:人工智能的前沿技术与实例分析
来源:中国人工智能学会 2017年12月11日,国际知名机器人专家.美国卡耐基梅隆大学机器人研究所所长马歇尔·赫伯特(Martial Hebert)教授和首席科学家大卫·伯恩(David Bourne ...
- python怎么处理数据_python中scrapy处理项目数据的实例分析
在我们处理完数据后,习惯把它放在原有的位置,但是这样也会出现一定的隐患.如果因为新数据的加入或者其他种种原因,当我们再次想要启用这个文件的时候,小伙伴们就会开始着急却怎么也翻不出来,似乎也没有其他更好 ...
- Android10.0 Binder通信原理(四)-Native-C\C++实例分析
摘要:本节主要来讲解Android10.0 Binder的Native层实例流程 阅读本文大约需要花费35分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Androi ...
- Android Touch事件原理加实例分析
Android中有各种各样的事件,以响应用户的操作.这些事件可以分为按键事件和触屏事件.而Touch事件是触屏事件的基础事件,在进行Android开发时经常会用到,所以非常有必要深入理解它的原理机制. ...
- SSL/TLS 协议简介与实例分析
作者:drinkey 以前读RFC时总结的一篇文章,主要介绍了SSL/TLS协议的相关知识,包括协议本身以及简单的密码学概念,以及用实例解析了HTTP over SSL的协商过程,在最后简要列出了SS ...
- java list反序列化_java序列化与反序列化操作实例分析
本文实例分析了java序列化与反序列化操作.分享给大家供大家参考,具体如下: 概述: Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程. ...
最新文章
- 学了那么多年设计模式依然不会用!那可真蠢!
- Bootstrap系列 -- 6. 列表
- 《构建之法》第6 - 7章
- 子类super调用父类函数,该函数中调用的函数是父类还子类呢
- 第五章 常用Lua开发库1-redis、mysql、http客户端
- android 动态调用apk,通过反射动态加载未安装apk
- 0xFFFFFF的问题
- 线性规划图解法求最优解_高中数学:简单的线性规划问题
- 嵌入式Linux系统编程学习之十二守护进程
- Bokeh 使用Basic Glyphs做图
- 腾讯一面总结-web前端-2018.4.11
- [转载] python改写二分搜索算法_二分搜索算法模板python实现
- java中两种遍历集合的方式_Java中Map集合的两种遍历方式
- 电话机器人源码可以低成本高效率为OEM代理前景保驾护航
- JQuery1.4 JQuery1.7 JQuery1.8 JQuery1.11中文帮助文档
- No buffer space available问题解决
- 官方指南:小米手机微信双开
- lol服务器维护 胜率,说下这游戏服务器控制胜率怎么来的。
- 浏览器表单自动填充问题【兼容性解决方案】
- matlab中za是什么意思,大学统计学 计算Za/2的时候 什么情况下直接取样本n 什么情况是要计算df=n-1的...
热门文章
- TOUGHRADIUS 项目介绍
- QTP和WinRunner区别
- “BindingNavigator”如何在删除前弹出确认框?
- Eclipse中的codetemplates.xml
- 我的爹,我的娘(2006-02-22 21:39:07)(新浪)
- 使用pandas进行量化回测(akshare)
- pojo类中list存储其他字段_List集合流处理类型小结
- mysql pow函数怎么用_pow函数怎么用
- ultilize什么意思_ultilize是什么意思
- 解决AttributeError AttributeError: 'NoneType' object has no attribute 'filename'