当前位置: 首页 > news >正文

有哪个网站做ic安阳历史

有哪个网站做ic,安阳历史,专做商品折扣的网站,wordpress空页面模板总结 pinctrl作为驱动 iomuxc节点在设备树里面 存储全部所需的引脚配置信息 iomux节点匹配pinctrl子系统 控制硬件外设的时候 要知道有哪些gpio 再看gpio有哪些服用寄存器 接着在程序配置gpio相关寄存器 这样搞效率很低 所以用iomux节点保存所有的引脚组 pinctrl驱动起来的时…

总结

pinctrl作为驱动
iomuxc节点在设备树里面 存储全部所需的引脚配置信息

iomux节点匹配pinctrl子系统

控制硬件外设的时候 要知道有哪些gpio 再看gpio有哪些服用寄存器
接着在程序配置gpio相关寄存器 这样搞效率很低
所以用iomux节点保存所有的引脚组 pinctrl驱动起来的时候获得所有引脚信息 保存在内存

pinctrl子系统预先确定引脚的数量和名字

  • 为每个引脚的配置信息分配内存
  • pinctrl子系统统一管理每个引脚的使用状态
    -iomux节点存放了各种引脚属性,pinctrl驱动解析iomux节点,存放引脚信息进入内存

iomux节点里如何填写

//iomuxc节点
//imx6ull.dtsi
iomuxc: iomuxc@20e0000 {compatible = "fsl,imx6ul-iomuxc";reg = <0x20e0000 0x4000>;};
//继续扩展 引用iomux节点 **imx6ull-seeed-npi.dts**
&iomuxc {pinctrl-names = "default""init","sleep";  //选定引脚状态pinctrl-0 = <&pinctrl_uart1>;  //一个状态就是一组引脚,比如对应下面pinctrl-1 =<&xxx>;pinctrl-2 =<&yyy>;
...pinctrl_uart1: uart1grp {fsl,pins = <MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1>;};...
}

上面 引脚里面的宏是什么意思

MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX
#define MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x0084 0x0310 0x0000 0 0
< mux_reg conf_reg input_reg mux_mode input_val >0x0084    0x0310    0x0000     0x0      0x0

mux_reg:引脚复用设置寄存器 基地址+mux_reg 就是 PIN 的复用寄存器地址。
conf_reg : 设置这个引脚的电气属性的寄存器地址 基地址+conf_reg =设置pin的电气属性地址
input_reg:引脚输入设置寄存器 有些外设有 input_reg 寄存器
引脚需要输入功能时设置
mux_mode:复用寄存器设置值
设置引脚复用
input_val:输入寄存器设置值
设置引脚输入特性

宏的最后跟随了一串数字 用来设置PIN的电气属性值 比如IO 的上/下拉、驱动能力和速度等
在这里插入图片描述
在这里插入图片描述

引脚状态初始化

在设备树里面节点 会变成plantform_dev 会执行probe进行匹配驱动
但是执行probe和drv配对之前 先回执行really_porbe() 这个函数和下面的引脚状态关系很大
用来初始化引脚值

//iomuxc节点
//imx6ull.dtsi
iomuxc: iomuxc@20e0000 {compatible = "fsl,imx6ul-iomuxc";reg = <0x20e0000 0x4000>;};
//继续扩展 引用iomux节点 **imx6ull-seeed-npi.dts**
&iomuxc {pinctrl-names = "default""init","sleep";  //选定引脚状态pinctrl-0 = <&pinctrl_uart1>;  //一个状态就是一组引脚,比如对应下面pinctrl-1 =<&xxx>;pinctrl-2 =<&yyy>;
...pinctrl_uart1: uart1grp {fsl,pins = <MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1>;};...
}

还是用上一个设备树举例 看了下面的例子
就知道驱动的引脚其实在 probe之前就已经初始化好了电气属性了

drivers/base/dd.c
static int really_probe(struct device *dev, struct device_driver *drv)
{int ret = -EPROBE_DEFER;
...
re_probe:dev->driver = drv;ret = pinctrl_bind_pins(dev);  //这里根据iomux节点的 几个引脚状态来初始化引脚组
...if (dev->bus->probe) {ret = dev->bus->probe(dev);if (ret)goto probe_failed;} else if (drv->probe) {ret = drv->probe(dev); //这个是熟悉的probeif (ret)goto probe_failed;}...}
int pinctrl_bind_pins(struct device *dev)dev->pins->default_state = pinctrl_lookup_state(dev->pins->p,PINCTRL_STATE_DEFAULT);//从设备节点状态找到指定状态//本次是default状态dev->pins->init_state = pinctrl_lookup_state(dev->pins->p,PINCTRL_STATE_INIT); /这次找init状态if (IS_ERR(dev->pins->init_state))pinctrl_select_state(dev->pins->p,dev->pins->default_state);//没有init状态变成default状态elseret = pinctrl_select_state(dev->pins->p, dev->pins->init_state);//有的话引脚变成init状态
http://www.yayakq.cn/news/624078/

相关文章:

  • 渭南做网站哪家好如何搭建aspx网站
  • 免费创建网站 优帮云网页制作教程视频下载
  • 建行网站用户名是什么贴吧高级搜索
  • wordpress+做仿站网络营销推广方案策划书
  • 百度云怎么做网站晋中网站公司
  • 泉州市住房与城乡建设网站做网站怎么添加图片
  • 南宁网站关键词推广wordpress后台首页增加论坛帖子
  • 5分钟建站wordpress秦皇岛网络推广公司
  • 汇邦团建网站谁做的南京网站群建设公司
  • 什么装修网站做的好的上海企业网站建设制作
  • 南宁网站开发培训0元入驻的电商平台
  • 捕鱼网站建设惠州关键词排名优化
  • 网站的照片上传的功能怎么做wordpress做ip统计
  • 网站建设平台官网硬件工程师需要学哪些
  • 潍坊做网站好看网站建设实施方案
  • 阿里网站官网入口人事处网站开发文献综述
  • 杭州百度推广网站建设做气体检测仪的网站
  • 上饶网站建设srsem天津重型网站建设方案公司
  • 市面上有什么搭建网站工作室东兴移动网站建设
  • 51一起做网站企业作风建设实施方案
  • 如何做网站发产品销售模板网站怎么修改
  • 给网站添加百度地图房建设计网站
  • 微网站促销版织梦网站建设选项卡教程
  • 网站建设合同免费下载吉安网站建设兼职
  • 广州建网站开发seo型企业网站wordpress适合百度吗
  • 学交互设计网站下载免费网络软件
  • 网站收录后怎么做排名自己制作网页怎么制作的
  • 沙坪坝网站建设公司选哪家好手机版网站建设合同范本
  • 做网站协议书丹东做网站
  • 电子商务网站建设摘要旅游正规免费网站建设公司