aceshiyuanli 发表于 2020-11-13 10:25:24

OKMX6ULL GPIO2_20配置为输出,不生效

本帖最后由 aceshiyuanli 于 2020-11-13 10:32 编辑

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

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


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




aceshiyuanli 发表于 2020-11-13 10:32:54

本帖最后由 aceshiyuanli 于 2020-11-13 10:35 编辑

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

设备树代码如下:(在 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 };


===========================================


ljb2019001 发表于 2020-11-13 11:20:59

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

aceshiyuanli 发表于 2020-11-13 17:42:38

ljb2019001 发表于 2020-11-13 11:20
手册查看硬件资料,查看一下gpio2_20这个引脚的复用情况,是否有其他功能在使用,把其他功能注释掉;另外看 ...

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

ljb2019001 发表于 2020-12-1 15:25:50

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

chemist 发表于 2020-12-1 17:00:20

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

zhichao 发表于 2020-12-4 13:34:01

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

肉肉珩 发表于 2020-12-4 15:33:51

aceshiyuanli 发表于 2020-11-13 17:42
是的。这跟线原本是sd卡功能,现在我的底板没用到sd卡,所以将sd卡的引脚用作了普通GPIO功能。我在设备树 ...

dts目录下有源码支持的各种cpu型号使用的设备树,你如果用的imx6ul的核心板,你就需要关注imx6ul开头的设备树就行,imx6ull是另一个型号的cpu。看了你几个帖子,对型号描述不太一致,你要确定好你的核心板型号。
页: [1]
查看完整版本: OKMX6ULL GPIO2_20配置为输出,不生效