LS1028 GPIO初始化为高电平

1. 修改RCW

以将GPIO3_DAT14初始化为高电平为例,默认是将用作SPI3_SCK,需要将其先复用为GPIO
修改RCW:firmware/rcw/ls1028ardb/R_SQPP_0x85bb/rcw_1500_gpu600.rcw

SPI3_PMUX=1

2. uboot初始化

在uboot源码中进行初始化
修改位置:packages/firmware/OK1028-linux-uboot/board/freescale/ls1028a/ls1028a.c
定义一个常量

给其赋值,含义:将GPIO3_DAT14设置为输出,值设置为1(高电平)

单独编译firmware固件烧写,一上电用万用表进行测量,可以看到该引脚为高电平(1.8V)

其他

将GPIO3_DAT14进行初始化为高电平,一共32位将第十四位置为1

添加gpio按键

1.复用GPIO

首先要找到按键使用的GPIO,然后再设备树里面进行设备节点的注册这里以GPIO3_13、GPIO3_16为例,板子上默认是将其用作SPI_SIN、SPI_SOUT。

2.修改RCW

RCW路径:firmware/rcw/ls1028ardb/R_SQPP_0x85bb/rcw_1500_gpu600.rcw

--- a/packages/firmware/rcw/ls1028ardb/R_SQPP_0x85bb/rcw_1500_gpu600.rcw
+++ b/packages/firmware/rcw/ls1028ardb/R_SQPP_0x85bb/rcw_1500_gpu600.rcw
@@ -28,7 +28,7 @@ IIC3_PMUX=2IIC4_PMUX=2IIC5_PMUX=1IIC6_PMUX=0
-SPI3_PMUX=0
+SPI3_PMUX=1CLK_OUT_PMUX=2EC1_SAI4_5_PMUX=2EC1_SAI3_6_PMUX=1

3.修改设备树

设备树路径:OK1028-linux-fs/packages/linux/linux/arch/arm64/boot/dts/freescale/OK1028A-C.dts
修改设备树

--- a/packages/linux/OK1028-linux-kernel/arch/arm64/boot/dts/freescale/OK1028A-C.dts
+++ b/packages/linux/OK1028-linux-kernel/arch/arm64/boot/dts/freescale/OK1028A-C.dts
@@ -131,7 +131,23 @@default-brightness-level = <200>;status = "okay";};
-
+
+       gpio-keys {+            compatible = "gpio-keys";
+            autorepeat;
+
+                        down {+                                label = "GPIO Key DOWN";
+                                linux,code = <108>;
+                                gpios = <&gpio3 13 0>;
+                        };
+                        /*up{
+                                label = "GPIO Key UP";
+                                linux,code = <103>;
+                                gpios = <&gpio3 16 1>;
+                        };*/
+
+       };};

4.验证

修改完成后全编译生成镜像,烧写完成后,进行验证

root@forlinx:~# cat /sys/kernel/debug/gpio
gpiochip2: GPIOs 416-447, parent: platform/2320000.gpio, 2320000.gpio:gpio-429 (                    |GPIO Key DOWN       ) in  hi ACTIVE LOWgpiochip1: GPIOs 448-479, parent: platform/2310000.gpio, 2310000.gpio:gpio-454 (                    |?                   ) out logpiochip0: GPIOs 480-511, parent: platform/2300000.gpio, 2300000.gpio:

其他

关于gpio-keys设备节点的注册可以参考:OK1028-linux-fs/packages/linux/linux/Documentation/devicetree/bindings/input/gpio-keys.txt

参数说明

ompatible = "gpio-keys"        <-------------------------匹配驱动
Label = "GPIO Key UP";         <-------------------------按键标签
linux,code = <103>;           <-------------------------键值
gpios = <&gpio3 13 0>;         <-------------------------使用gpio3_13,低电平有效

按键驱动路径:OK1028-linux-kernel/drivers/input/keyboard/gpio_keys.c
按键键值定义:OK1028-linux-kernel/include/uapi/linux/input-event-codes.h

LS1028GPIO初始化为高电平添加按键相关推荐

  1. linux给根目录添加卷组,Linux 分区初始化为物理卷,把物理卷加入卷组的方法

    用到的命令有 1.pvcreate (physical volume create) 2.vgcreate (volume group create) 例子1:创建物理卷 pvcreate /dev/ ...

  2. stm32输入捕获,捕获高电平

    输入捕获就是用定时器检测引脚上的电平时间,可以检测高电平时间和低电平时间,然后可以算引脚上信号的频率和占空比. 基本思路就是利用定时器的输入捕获功能. 定时器捕获到高电平或低电平就会进入捕获中断 例如 ...

  3. python中ht表示什么_如何看待某国内大公司Python面试题,有关dict中初始化为固定值?...

    职业发展 Python 如何看待某国内大公司Python面试题,有关dict中初始化为固定值? 阅读下面的代码,写出A0,A1至A6的最终值. A0 = dict(zip(('a','b','c',' ...

  4. 输入捕获-获取一个高电平的持续时间

    文章目录 一.内容介绍 二.逻辑梳理 1.初始化 2.针对其中预分频为什么是72做一个解释 预分频 解释 3.理解两个变量:STA .VAL 三.部分代码 1.变量STA . VAL 2.输入捕获初始 ...

  5. 判断STM32 GPIO输入口的输入状态(高电平或低电平)

    判断STM32 GPIO输入口的输入状态(高电平或低电平) 以PE2和PE4为例: ① 判断单个端口是否为高电平: if(GPIOE->IDR& GPIO_IDR_IDR2) { 函数体 ...

  6. 为什么神经网络参数不能全部初始化为全0?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 最近试了一个小实验,发现当神经网络参数全部初始化为全0的时候(这样 ...

  7. Python|xlwt|xlrd|调整单元格样式(背景,字体,对齐、虚线边框、列宽行高、添加公式)|xlutils|openpyxl|只读与只写|图表|语言基础50课:学习(8)

    文章目录 系列目录 原项目地址 第24课:用Python读写Excel文件-1 Excel简介 安装 读Excel文件(行列索引从`0`开始) 写Excel文件 调整单元格样式(背景,字体,对齐.虚线 ...

  8. R语言ggplot2可视化为组合图添加综合图例实战:使用ggpubr包ggarrange函数实现综合图例、使用patchwork包实现综合图例

    R语言ggplot2可视化为组合图添加综合图例实战:使用ggpubr包ggarrange函数实现综合图例.使用patchwork包实现综合图例 目录

  9. 数组,结构体初始化为0

    一直以为 int a[256]={0};是把a的所有元素初始化为0,int a[256]={1};是把a所有的元素初始化为1. 调试的时查看内存发现不是那么一回事,翻了一下<The C++ Pr ...

最新文章

  1. ST表 (模板) 洛谷3865
  2. 中国python之父是谁-Python之父重回决策层
  3. leetcode算法题--最长回文子串
  4. vo生成MySQL表_跟我学微服务统一开发平台-代码生成器
  5. 基于java人体检测技术_几篇深度图人体检测论文的实现
  6. cpu开机就是60℃_铅锤哥:十五种电脑开机黑屏的原因与解决思路
  7. css比较特殊选择器汇总(持续更新)
  8. java web批量下载_JAVAWEB批量文件下载器
  9. android uboot获取mac地址,uboot生成随机的MAC地址
  10. 剑指offer之机器人的运动轨迹
  11. 【git】克隆成功,但是检出失败
  12. 使用javamail通过代理发送邮件
  13. C#反编译工具Reflector.exe教程
  14. python 答题辅助_答题辅助python代码实现
  15. 【NLP】自然语言处理技术在自动生成足球比赛战报上的应用
  16. 关于wireshark中“TCP segment of a reassembled PDU”
  17. 压电雨量传感器不堵不粘维护简单的设计结构
  18. 树莓派?云服务器?小主机?旧手机使用Termux安卓手机中跑Java跑spring boot不香吗?
  19. 几万年前,有一只猴子大闹地府后删库跑路
  20. 2019年度受欢迎的开源软件

热门文章

  1. 微信公众号加入图灵机器人
  2. Java开发面试题及答案分享
  3. SSM3==理解静态代理、动态代理Proxy.newProxyInstance、cglib代理==通过纯XML配置spring AOP,通过纯注解配置spring AOP
  4. 解决Axure的元件库中部分原件不可使用的方法
  5. 什么是函数的副作用——理解js编程中函数的副作用
  6. Druid线程池中的连接什么时候会关闭?
  7. 工作三年的Java程序员应该达到什么水平?
  8. 联邦学习在金融领域的发展和应用
  9. Markdown的语法使用
  10. 软件工程中软件需求分析