
GPIO 与 PinCtrl子系统
文章平均质量分 66
GPIO子系统和PinCtrl子系统
Aitel@
三尺微命,一介书生。
展开
-
Linux内核驱动学习之GPIO子系统概览
前言GPIO(General Purpose Input/Output)通用输入/输出接口,是十分灵活软件可编程的接口,功能强大,十分常用,SOC也非常依赖GPIO,在实际应用中几乎都能看到它的影子,在Linux内核驱动的学习中,这部分相对来说也是比较基础的,但是涉及的东西其实相对来说也比较多,感觉还是很有必要学习和总结一下。功能正如之前所说,GPIO是通用输入输出接口,所以,相应的内核驱动中GPIO的基本功能总体可以总结为以下几点:输出设定电平:可以根据用户的需要,向驱动写入相应的值(转载 2021-09-27 16:13:26 · 651 阅读 · 0 评论 -
gpio子系统与pinctrl子系统一:关系
一直对gpio子系统 与 pinctrl子系统的关系比较模糊,最近整理了一下。先说结论: gpio子系统与pinctrl子系统相辅相成,共同构成了一个芯片对pin引脚的管理。芯片手册一般只有gpio章节,没有pinctrl章节。pinctrl是软件上的概念,可以理解为一个模块。但在linux的软件架构上,gpio又是pinctrl的子集。如下图(网上引用来的图):既然二者是相辅相成,那二者的分工角色分别是什么呢??gpio子系统提供了:1. 配置成输入时,读引脚..原创 2021-10-19 17:59:22 · 1716 阅读 · 0 评论 -
gpio子系统与pinctrl子系统二:gpiolib
一、gpio子系统二、pinctrl子系统原创 2021-10-20 11:40:44 · 326 阅读 · 0 评论 -
gpio子系统与pinctrl子系统三:pinctrl
(一) 全志A40i/T3pro平台的gpio功能(二) 全志A40i/T3pro平台的pinctrl功能原创 2021-10-20 11:44:56 · 1251 阅读 · 0 评论 -
gpio子系统与pinctrl子系统四:使用
主要是如何使用gpiolib相关接口,进行驱动开发。原创 2021-10-20 17:18:42 · 2074 阅读 · 0 评论 -
gpio子系统和pinctrl子系统(上)
前言 随着内核的发展,linux驱动框架在不断的变化。很早很早以前,出现了gpio子系统,后来又出现了pinctrl子系统。在网上很难看到一篇讲解这类子系统的文章。就拿gpio操作来说吧,很多时候都是简单的调用gpio子系统提供的api,然后根据sdk说明文档写明的gpio号传参数,至于里面的工作过程对于驱动工程师而言就像个黑盒子。当我们自己设计的板子和demo板有很大变动时,问题就出现了。首先遇到的是怎么配置pin(是基于设备树还是不基于设备树,基于设备树的话,怎么修改设备树关于pinctrl部分的转载 2021-10-22 17:26:34 · 1211 阅读 · 0 评论 -
gpio子系统和pinctrl子系统(中)
pinctrl子系统核心实现分析pinctrl子系统的内容在drivers/pinctrl文件夹下,主要文件有(建议先看看pinctrl内核文档Documentation/pinctrl.txt):core.cdevicetree.cpinconf.cpinmux.cpinctrl-xxx.ccore.c为pinctrl的核心代码,实现了pinctrl框架,pinmux.c和pinconf.c基于core实现了对pinmux和pinconf的支持,pinctrl-xxx.c为厂商相关的pi转载 2021-10-22 17:29:10 · 546 阅读 · 0 评论 -
gpio子系统和pinctrl子系统(下)
情景分析打算从两个角度来情景分析,先从bsp驱动工程师的角度,然后是驱动工程师的角度,下面以三星s3c6410 Pinctrl-samsung.c为例看看pinctrl输入参数的初始化过程(最开始的zynq平台的pin配置貌似是通过bitstreams来的,内核层没看到有关配置pin的代码,不过最新的zynq代码里加入了pinctrl,但我手上的恰好的较早其的zynq代码,所以这里以三星的代码为例子),不过这里贴的代码有点多(尽量将无关的代码删掉),耐心的看吧_bsp驱动工程师的角度stati转载 2021-10-22 17:31:59 · 413 阅读 · 0 评论 -
应用层操作gpio的3种方法
应用层操作gpio的3种方法原创 2021-08-27 11:15:47 · 513 阅读 · 0 评论 -
应用层操作gpio的3种方法之一:通过sysfs文件系统
先上结论:1. 通过sysfs方式访问gpio,在命令行界面进行操作。2.编写一个简单的GPIO驱动,通过系统调用进行操作。3. 通过Input子系统进行操作。如果还有其他方法,欢迎补充~!《一》通过sysfs方式访问gpio,在命令行界面进行操作。《二》编写一个简单的GPIO驱动,通过系统调用进行操作。《三》通过Input子系统进行操作。...原创 2021-08-27 09:50:57 · 4579 阅读 · 0 评论 -
应用层操作gpio的3种方法之二:通过debugfs子系统
通过Input子系统进行操作。原创 2021-08-27 11:20:52 · 768 阅读 · 0 评论 -
应用层操作gpio的3种方法之三:通过自定义简单驱动
通过Input子系统进行操作。原创 2021-08-27 11:20:11 · 272 阅读 · 0 评论 -
linux下通过/sys/kernel/debug/gpio查看gpio状态
在使用GPIO的时候,有时候不知道GPIO的状态,也不知道在内核中GPIO是否申请成功。可以通过/sys/kernel/debug/gpio这个文件来查看。这个文件显示了申请成功的GPIO的输入输出状态和电平。参考GPIO - eLinux.orgGPIO Signals | GPIO Support | RidgeRun Developer配置内核打开debugfs支持Symbol: DEBUG_FS [=y] Prompt: Debug Filesystem转载 2021-12-02 14:28:04 · 5286 阅读 · 0 评论 -
A40i/T3pro 从应用层利用debugfs动态配置GPIO
先说结论,利用debugfs进行操作1. 挂载及进入挂载的路径mount -t debugfs debug /proc/sys/debugcd /proc/sys/debug/sunxi_pinctrl2.ls看一下 # ls -l-rw-rw-r-- 1 root root 0 Jan 1 1970 data-rw-rw-r-- 1 root root 0 Jan 1 1970 dl.原创 2021-09-28 11:01:31 · 784 阅读 · 0 评论 -
再说sysfs文件系统的gpio export功能
在之前的文章有说到,使用sysfs对gpio口进行操作调试,非常方便,想看如何进行操作的,可以看我之前的文章:优快云https://mp.youkuaiyun.com/mp_blog/creation/editor/119946350现在先来追踪一下,在代码中使用gpio_export()函数的功能代码:1、函数定义:gpio_export() gpio_export()实际是调用了函数:gpiod_export()static int gpiod_export(struct gpio_desc..原创 2021-09-15 20:38:55 · 3718 阅读 · 1 评论