全志T507_Linux_应用笔记之GPIO接口合集

原创 2023-08-07 11:27:00

本文主要适用于飞凌 OKT507-C 平台 Linux4.9.170 操作系统,其他平台也可以参考,但是不同平台之间会存在差异,需客户自行修改以适应自己的使用。

一、uboot 阶段的 GPIO 配置方法

如果您需要在 uboot 阶段设置 GPIO 输出高低电平,可以在设备树中进行配置,可参考飞凌的 LVDS的电源引脚

目前支持 gpio0-gpio31 共计 32 个引脚进行配置。关于 pinctrl 的含义请参考网盘资料\原厂资料目录的《T507_pinctrl 接口使用说明文档.pdf》。

二、内核阶段的 GPIO 配置方法

以用于 UART5_TX 的 PH2 引脚为例,做一下 gpio 配置的介绍。

1、关闭所使用引脚默认配置的功能:

修改设备树,将 PH2 原功能关闭后,该引脚可用作普通 GPIO。
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1.dtsi

2、测试方法

计算 gpio 对应引脚的数值=(n-1)*32+x
(设 A 为 1,B 为 2,以此类推,PH2 中 H 对应的是 8,x 表示 2)

PH2 对应的数值为:(8-1)x32+2=226

PH2 设置为输出:

echo 226 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio226/direction
echo 1 > /sys/class/gpio/gpio226/value    //此时用万用表测 PH2 引脚的电压,应该为高电平

echo 0 > /sys/class/gpio/gpio226/value    //此时用万用表测 PH2 引脚的电压,应该为低电平

PH2 设置为输入:
echo 226 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio226/direction    //设置为输入模式
系统取消导出:
echo 226 > /sys/class/gpio/unexport

三、去掉 io 扩展芯片并保留扩展引脚功能的实现

扩展芯片上的 io 口被 wifi、蓝牙、mipi 摄像头 tp2854、dvp 摄像头和 lineout 口电源使能引脚引用,若想保留这些功能,就要把这些引脚复用到核心板的引脚。

本文以选用开发板上 lcd 所用引脚为例,用户可根据自己的实际情况选择。关闭所用引脚使用的功能,将其配置到所用功能的设备树中。方法参考如下:

1、选用引脚

2、关掉 gpio_ext 及复用引脚原来功能

修改设备树,将 lcd 功能关闭后,该组引脚可用作普通 GPIO。
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C Common.dtsi
2.1 关掉 io 扩展芯片功能
因为扩展芯片已经拆除,所以要关掉扩展芯片节点

2.2 关闭需要复用引脚功能

关闭 lcd 功能,本文以选用 lcd 上的引脚用作功能复用,用户需根据实际情况关闭所用引脚功能。
lcd_used 改为 0

Lcd0 节点添加 status = “disabled”;

3、更改设备节点中引用的 gpio

3.1 mipi-5640 引脚配置
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

3.2 TP2854 引脚配置

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common-TP2854M.dtsi

注意:mipi5640 和 tp2854 共用一个 mipi 接口,两个功能都用到了 MIPI_PWRDN 引脚,实际使用时只能选择一种功能,因此本文在两个功能测试时选的同一个引脚。

3.3 dvp-5640 引脚配置

3.4 wifi 引脚配置

3.5 蓝牙引脚配置

3.6 音频引脚

4、测试方法

测试方法参考《OKT507-C_Linux_用户使用手册》。

四、OKT507 增加 GPIO 按键

本文添加了两个 GPIO 按键,以 PE5、PE6 两个引脚为例,引脚选择可参考用户资料中的《FETT507-C引脚复用对照表.xlsx》。

1、GPIO 按键添加方法

1.1 添加内核配置
注意:
客户在进行配置前,需要对
OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/configs/sun50iw9p1smp_longan_defconfig 文件提前做好备份。
vi OKT507-linux-sdk/kernel/linux-4.9/.config
1.2 添加 key 节点
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi
其中按键键值设置如下。
相关键值可通过查看 input-event-codes.h 确定。
vi OKT507-linux-sdk/kernel/linux-4.9/include/uapi/linux/input-event-codes.h

1.3 添加引脚定义
vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi

1.4 关闭冲突功能

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi
1.5 驱动修改
vi OKT507-linux-sdk/kernel/linux-4.9/drivers/input/keyboard/gpio_keys.c

2、测试方法

终端窗口输入 evtest,选择 7
本文所提供的所有服务内容旨在协助用户加速产品的研发进度,在服务过程中所提供的任何程序、文档、测试结果、方案、支持等资料和信息,都仅供参考,用户有权不使用或自行参考修改,不提供任何的完整性、可靠性等保证,若在用户使用过程中因任何原因造成的特别的、偶然的或间接的损失,本公司不承担任何责任。




相关产品 >

  • OKT507-C 开发板

    CPU: T507 工业级处理器,超低功耗,10年+生命周期|推荐全志工业级T507开发板系列,飞凌OKT507-C开发板采用全志T507 四核工业级处理器 T507设计开发,Cortex-A53架构,工业级宽温,性能强,低功耗,是一款高性价比的工业级产品,提供丰富的开发设计资料,提供产品规格书,软硬件手册等,全志的T507适用于车载电子、电力、医疗、工业控制、物联网、智能终端等领域。

    了解详情
    OKT507-C 开发板
  • FETT507-C核心板

    推荐T507,全志T507核心板采用工业级处理器设计开发,提供T507规格书,T507各类设计资料。FETT507-C核心板集成全志T507四核工业级处理器设计开发,Cortex-A53架构,主频1.5GHz,集成G31 GPU,内存2GB DDR3L,存储8GB eMMC。整板工业级运行温宽,支持绝大部分当前流行的视频及图片格式解码,具有稳定可靠的工业级产品性能、低功耗以及丰富的用户接口等优势,搭载Linux、Android、Ubuntu*操作系统,适用于车载电子、电力、医疗、工业控制、物联网、智能终端等领域 了解详情
    FETT507-C核心板

推荐阅读 换一批 换一批