首页 » 通讯 » MSM8953 GPIO口设备说明_存放器_为例

MSM8953 GPIO口设备说明_存放器_为例

落叶飘零 2024-12-11 21:39:40 0

扫一扫用手机浏览

文章目录 [+]

ADB操作GPIO口

确定GPIO Base Addr

MSM8953 GPIO口设备说明_存放器_为例 MSM8953 GPIO口设备说明_存放器_为例 通讯

开机,adb shell 进入系统

MSM8953 GPIO口设备说明_存放器_为例 MSM8953 GPIO口设备说明_存放器_为例 通讯
(图片来自网络侵删)

cd /sys/class/gpio

ls

如下图所示:

这里能看到很多gpiochipxxx,这里的gpiochip可以理解为模块内部的各种器件(如基带芯片msm8953、pm8953等等),每个器件下对应了一些GPIO口,msm8953基带芯片的GPIO口对应gpiochip0。

查看cat /sys/kernel/debug/gpio,如下图:

从上图可以看出msm8953对应GPIOs 0-141,对应的GPIO Base Addr是从0开始。

我们以GPIO_1为例,那么GPIO_0的BaseAddr = 0 + 1 = 1,须要操作的工具是gpio1。

GPIO掌握

前辈行export操作

cd /sys/class/gpio

su

echo 1 > export

ls

可以看到多了一个gpio1,解释GPIO_1的export操作已经成功。

设置GPIO口输出口

echo out > gpio1/direction

cat gpio1/direction

设置GPIO口输出高电平

echo 1 > gpio1/value

cat gpio1/value

可以看到gpio1的值已经为1。
同时用万用表丈量一下GPIO_1所对应的硬件管脚,能够量到1.8V的高电平。

通过寄存器修正GPIO口配置

GPIO寄存器地址

根据msm8953的硬件寄存器手册,GPIO干系寄存器如下:

0x01000000+TLMM_GPIO_CFGn, n=[0..141]

0x01000004+TLMM_GPIO_IN_OUTn, n=[0..141]

0x01000008+TLMM_GPIO_INTR_CFGn, n=[0..141]

n的范围是0~141,对应msm8953所有的GPIO口。

寄存器地址打算方法为 0x0100000X+n0x1000。

比如,GPIO_1的TLMM_GPIO_CFG寄存器地址 = 0x01000000+10x1000 = 0x01001000

修正GPIO配置

TLMM_GPIO_CFG描述如下:

以GPIO_1为例,设置GPIO_1为输出口,驱动能力8mA,内部下拉。

./system/bin/r 0x01001000 0x000002C1

0x00002C1对应二进制 0x0000001011000001

bit9 = 1 // GPIO_OE(输出使能位); 配置输出高电平或低电平时,该bit须要先配置。

bit8~6 = 3 // DRV_8_MA

bit5~2 = 0 // FUNC_SEL为GPIO功能

bit1~0 = 0 // PULL_DOWN

修正GPIO输出值

TLMM_GPIO_IN_OUT描述如下:

以GPIO_1为例,bit1为输出值。

输出高电平:

./system/bin/r 0x01001004 0x00000002

输出低电平

./system/bin/r 0x01001004 0x00000000

驱动实现

1. 设备树增加节点,如下面所示:

+ pwr {+ compatible = "qcom,pwr";+ dev_name = "pwr";+ status = "okay";+ gpio_zero = <&msm_gpio 1 0x0>;+ };+

2. kernel/driver/ 下新建一个驱动 gpio_control。

Makefile 里面增加编译选项:

+obj-y += gpio_control/

gpio_control驱动包括Makefile和pwr.c。

Makefile内容:

obj-y += pwr.o

pwr.c代码实现采取通用的linux接口,包括以下函数:

gpio_request / gpio_direction_output / gpio_set_value / gpio_free

https://uploader.shimo.im/f/sYbIH8PWKDgxubM4.c?attname=pwr.c&download

参考文档

《80-p2472-2x_c_msm8953_hardware_register_description.pdf》

标签:

相关文章