瑞芯微Rockchip开发者社区
直播中

张明

7年用户 997经验值
私信 关注
[问答]

OKMX6ULL核心板GPIO2_20连接led一直未生效求解

如题,使用OKMX6ULL 核心板,做了个底板,GPIO2_20连接led,
(1)设备树中配置GPIO2_20为输出模式,
(2)驱动c文件中,open函数里面对gpio2_20操作分别输出高低电平。
但是一直未生效,一直是高电平。

跪求大佬们帮忙看下。
-----------------------------------------------------------------------------------------------
设备树代码如下:备注:代码粘贴不进来,不知道为啥,在回复栏目中贴入设备树代码,请移步我自己给自己回复的楼层,给各位大佬造成麻烦还请见谅,感谢感谢。
imx6ul-14x14-evk.dts文件中,根节点下添加如下代码:
  • gpiolsyled {

驱动代码中在open函数中分别使用如下函数操作LED,但是发现没反应:
  • gpio_set_value(led->gpio_num, 0); /* 打开LED */
  • gpio_set_value(led->gpio_num, 1); /* 关闭LED */


回帖(4)

高澜栖

2022-1-7 10:04:06
发表的帖子中代码帖进去提交就消失了,不知道为啥,因此在此粘贴设备树代码,感谢各位大佬帮忙分析问题。

设备树代码如下:(在 imx6ul-14x14-evk.dts 文件中添加的





  • 14 / {
  • 15 >---model = "Freescale i.MX6 UltraLite 14x14 EVK Board";
  • 16 >---compatible = "fsl,imx6ul-14x14-evk", "fsl,imx6ul", "OKMX6UL-C1" ;


  • ......


  • 48     gpiolsyled {
  • 49         #address-cells = <1>;
  • 50         #size-cells = <1>;
  • 51         compatible = "atkalpha-gpioled";
  • 52         pinctrl-names = "default";
  • 53         pinctrl-0 = <&pinctrl_lsyled>;
  • 54         led-gpio = <&gpio2 20 GPIO_ACTIVE_LOW>;
  • 55         status = "okay";
  • 56     };






  • 227 };




  • 409 &iomuxc {


  •    ......


  • 435         /* led */
  • 436         pinctrl_lsyled: lsyledgrp {
  • 437             fsl,pins = <
  • 438                 MX6UL_PAD_SD1_DATA2__GPIO2_IO20 0x10B0
  • 439             >;
  • 440         };


  •   ......


  • 795 };




  • ===========================================
举报

任斌

2022-1-7 10:04:27
手册查看硬件资料,查看一下gpio2_20这个引脚的复用情况,是否有其他功能在使用,把其他功能注释掉;另外看这个引脚,硬件上是否直接连了高电平。我看硬件上应该用作sd卡的信号功能了。
举报

康振清

2022-1-7 10:04:50
是的。这跟线原本是sd卡功能,现在我的底板没用到sd卡,所以将sd卡的引脚用作了普通GPIO功能。我在设备树中注释掉了sd卡相关的功能。不知道是哪里有遗漏还是咋回事。
另外:我的板卡用的设备树引用了imx6ul-14x14-evk.dts,我添加的功能也是在该设备树中添加的。此外,我看目录下还有个imx6ull-14x14-evk.dts,请问您知道这两者的区别吗?我应该不用管后者吧?
举报

陈玲

2022-1-7 10:05:06

  • dts目录下有源码支持的各种cpu型号使用的设备树,你如果用的imx6ul的核心板,你就需要关注imx6ul开头的设备树就行,imx6ull是另一个型号的cpu。看了你几个帖子,对型号描述不太一致,你要确定好你的核心板型号。




  • 内核代码是否有控制这个引脚的函数,因为如果内核如果控制了,您也是改不了的;另外imx6ul和imx6ull是两个不同板子的,不用管




  • 可以查看一下内核启动打印信息是否有gpio申请报错的信息,然后还可以从debugfs中查看gpio的使用情况及状态




  • 您可以下载一个mx6ul-c资料里的应用笔记,4.1.15资料里应用笔记2.7章节有复用gpio的方法,您看一下,mx6ull-s应该是修改设备树imx6ull-14x14-evk.dts
举报

更多回帖

发帖
×
20
完善资料,
赚取积分