版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/code_style/article/details/53739634

一、网上的文章一般都是分析pinctrl驱动的,从头到尾分析了一遍,搞的相当复杂,实际上没那么复杂

二、pinmux的概要分析,有关文件如下/pinctrl/core.c、/pinctrl/Pinmux.c、平台相关的结构体pinctrl_state,pinctrl_setting,pinmux_ops,pinctrl_desc,pinctrl_map,基本原理如下:

1、通过在平台相关的pinctrl驱动初始化函数pinctrl_probe,调用pinctrl_register函数,将平台相关的,已经定义好的函数指针等通过结构体封装,传给该函数,相当于已经注册好了;

2、不管是core.c里面的实现,还是Pinmux.c里面的实现,无非是最终会通过回调函数,调用到上面提到的平台相关的已经定义好的实现,包括以功能为依据的分组,比如SPI、UART的引脚的配置,完成引脚的功能配置

3、这就是linux下面抽象出了各种功能,形成了一个中间件,对上层app提供统一的接口,下层各个soc厂商按照定义好的格式对其进行实现,最后上层app就会调用到底层来

4、当然,pinmux的实现利用了很多机制,比如链表的插入、遍历等等

三、具体到代码,如何调用API实现引脚功能复用呢?

1、直接在代码中调用这个API即可,devm_pinctrl_get_select( struct device *dev, const char *name),参考其他地方的调用,可以直接针对功能进行引脚复用的配置,当然,前提是pinctrl-soc.c里面已经做好了相关配置,这里的soc指的是ARM平台,比如高通、三星、MTK、TI等等。

————————————————

版权声明:本文为CSDN博主「coding梦想_起点」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/code_style/article/details/53739634

标签:soc,调用,pinmux,引脚,pinctrl,linux,版权

来源: https://www.cnblogs.com/DXGG-Bond/p/11983346.html

linux查询引脚功能复用,linux pinmux 引脚多路复用驱动分析与使用相关推荐

  1. linux查询引脚功能复用,Linux:使用pinctrl子系统动态切换复用pin脚的功能

    Linux:使用pinctrl子系统动态切换复用pin脚的功能 Linux:使用pinctrl子系统动态切换复用pin脚的功能 Linux:使用pinctrl子系统动态切换复用pin脚的功能 一.许多 ...

  2. Linux中断子系统(二)中断控制器GIC驱动分析

    Linux中断子系统(二)中断控制器GIC驱动分析 备注:   1. Kernel版本:5.4   2. 使用工具:Source Insight 4.0   3. 参考博客: Linux中断子系统(一 ...

  3. ARM裸机的知识点总结---------10、解决X210开发板软开关按键问题( 引脚功能复用)

    Author: 想文艺一点的程序员 自动化专业 工科男 再坚持一点,再自律一点 CSDN@想文艺一点的程序员 来自朱有鹏嵌入式的学习笔记 目录 1.X210开发板的软启动电路详解 2.为什么要软启动 ...

  4. linux查询默认权限命令,Linux权限管理之基本权限

    Linux权限管理之基本权限 1.文件权限: -rw-r--r-- :         r 读   w 写     x 执行 -:   文件类型(- 文件  d 目录  l软链接文件)rw- r-- ...

  5. linux查询网卡bdf信息,Linux获取pci设备的厂商号、设备号、class号

    要描述一个pci设备,就需要知道设备的厂商号(venderId).设备号(devId)和class号.那么,在Linux系统中,如何获取这三个数据呢? 既然是一个pci设备,那么首先就得知道BDF-- ...

  6. linux查询MySQL数据库操作,Linux服务器上查看mysql数据库操作日志

    前两天客户打电话跟我讲,系统中有条订单数据丢失了,这让我很诧异.好好的数据怎么说丢,就丢了.此事必有蹊跷,于是今天我要一探究竟,看看数据是否录入数据库中去了.经过之前初步的排查,发现数据应该是被人为删 ...

  7. linux 查询oracle情况,在Linux下使用SQLPlus查看Oracle数据库表空间及使用率

    在Linux下进入SQLPlus, # su – oracle $ sqlplus / as sysdba SQL> 查看一个表空间所对应的数据文件 SQL>select file_nam ...

  8. linux查询内核参数命令,Linux内核启动参数详解

    1.环境: Ubuntu 16.04 Linux linuxidc 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_ ...

  9. Linux查询root环境变量,linux环境变量和查看方法

    linux环境变量和查看方法 1. 显示环境变量HOME [root@localhost ~]# echo $HOME /root 2. 设置一个新的环境变量hello [root@localhost ...

最新文章

  1. 8.6 wait和waitpid函数-进程控制
  2. 隐藏esp_?吉利帝豪GL到店实拍,7.78万起,配鹰眼LED大灯+ESP,家用首选
  3. IPropertySet接口
  4. 解决Ubuntu14.04在外接显示器不能指定问题的最佳分辨率
  5. java学习(55):定义一个抽象类的继承
  6. 基于模型的系统工程设计软件ModelCoder在航空发动机控制设计中的应用
  7. 大数据时代必须关注的几个问题
  8. python之socket网络编程
  9. 神经网络常见问题和技巧(持续更新)
  10. robocopy复制文件_Windows Robocopy命令教程以及以安全方式复制文件的示例
  11. C# 获取电脑CPU序列号
  12. hdu 3786 找出直系亲属 (DFS)
  13. Windows10系统上投影(仅电影屏幕,复制,拓展,仅第二屏幕)类型的作用
  14. input框输入身份证时实现动态脱敏
  15. 数据挖掘学习笔记3-贝叶斯与决策树
  16. 天地图覆盖物的添加,工具类的使用
  17. SpringBoot讲义
  18. Lora技术- 码片/码元/数据速率以及空中时间计算
  19. 嵌入式有什么值得学习的软硬件技术?
  20. osm.pbf 制作中国铁路网mbtiles

热门文章

  1. 主机连接虚拟机 web服务
  2. 连载《一个程序猿的生命周期》-6、自学C++,二级考过后,为工作的机会打下了基础...
  3. 使用vSphere Power Cli初始化数据中心
  4. python学习如何从菜鸟到老手
  5. bzoj 4624 农场种植 fft
  6. 使用Rss框架PHP开发流程
  7. c#分页读取GB文本文件
  8. VC++工程配置的大体流程 看图说话
  9. cocos2d-x性能优化的那些事
  10. 大数据之-Hadoop_1.x和2.x区别---大数据之hadoop工作笔记0012