
GPIO
那颗流星
提炼升华
展开
-
记一次gpio按键驱动调试经历
Linux有标准的gpio按键驱动sprd平台只需配置下dts,在mt6761平台(gpio配置成gpio模式)也验证了该驱动。gpio-keys { key-volumedown { label = "Volume Down Key"; linux,code = <KEY_VOLUMEDOWN>; gpios = <&ap_gpio 124 GP原创 2021-11-22 17:20:37 · 1888 阅读 · 0 评论 -
linux使用gpio示例
常见的方式foo_device { compatible = "acme,foo"; red-gpios =<&gpio 17 GPIO_ACTIVE_HIGH>; }enum of_gpio_flags flags;int gpio=of_get_named_gpio_flags(dev->of_node,"red-gpios", 0, &flags);//获取dts的gpiogpio_request_one(gpio, flags, "red-gpio原创 2021-09-21 17:42:19 · 1343 阅读 · 0 评论 -
mtk平台的mt_gpio节点说明
MODE DIR DOUT DIN DRIVE SMT IES PULL_EN PULL_SEL R1 R0 当前io功能 0输入1输出 输出值 输入值 驱动能力 使能施密特触发器 输入控制 ...原创 2021-01-04 14:49:49 · 3693 阅读 · 0 评论 -
Linux下的gpio控制器驱动
这里写了一个简单的gpio控制器驱动,用来学习。#include <linux/module.h>#include <linux/gpio.h>#include <linux/interrupt.h>static int mgpio_request(struct gpio_chip *chip, unsigned offset){ pr_inf...原创 2019-08-18 18:23:43 · 1316 阅读 · 0 评论 -
Linux下的gpio调试方法
最近在fsl平台上进行移植,需要将某些gpio配置成普通的gpio功能(fsl平台的gpio支持多个功能),便写了简单的杂项设备,来调试gpio口。使用时,只需安装gpio驱动,可实现下列三项功能设置拉高某gpio,echo "io:w:108:1" >/dev/gpio_debug设置拉低某gpio,echo "io:w:108:0" >/dev/gpio_debug读取某g原创 2016-05-21 18:17:11 · 4751 阅读 · 0 评论 -
pinctrl_select_state函数使用示例
在驱动中,芯片休眠后,为了节省电流,需要设置引脚的状态,可参考如下的例子。在引脚控制文件中,添加如下定义如kernel/arch/arm/boot/dts/qcom/msm8996-pinctrl.cgpio_12_active: gpio_12_active { mux { pins ="gpio12";原创 2017-04-08 00:44:55 · 15517 阅读 · 0 评论 -
imx6q平台的gpio配置方法
比如引脚名称为GPIO_16,打开kernel_imx/arch/arm/boot/dts/imx6q-pinfunc.h文件,搜索GPIO_16,可看到如下结果#define MX6QDL_PAD_GPIO_16__ESAI_TX3_RX2 0x248原创 2016-05-07 13:29:25 · 21147 阅读 · 2 评论 -
imx6q平台将gpio口设置成高阻的方法
在休眠时,需要将某个gpio设置成高阻状态,但imx6q并没有直接设置成高阻的API,那就直接操作寄存器来实现了.这里以MX6QDL_PAD_GPIO_16__GPIO7_IO11为例,将该IO口设置成高阻状态.查找PDF可知,该控制寄存器的基地址为0x20e0000+0x618,该寄存器的3-5位来设置驱动能力,值为0就是高阻状态.原创 2016-05-09 21:41:48 · 6813 阅读 · 0 评论 -
gpio信号过冲问题
关于过冲的资料,可参考http://www.cnblogs.com/chenman/p/3649343.html 在调试i2s的时候,发现i2s信号存在过冲的问题。波形如下硬件的同事测到i2从cpu出来时的波形已经存在过冲了。故需要从软件入手解决该问题。查阅芯片手册,查到该引脚的配置为该寄存器默认的配置为MX6QDL_PA原创 2016-05-23 19:56:19 · 7776 阅读 · 0 评论