OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8899|回复: 16

驱动开发指南-GPIO设备树实验无法点亮LED

[复制链接]

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-11-12
在线时间
13 小时
发表于 2019-12-16 15:03:54 | 显示全部楼层 |阅读模式
1金钱
按照驱动开发指南,修改了设备树文件:
/ {
        model = "Freescale i.MX6 ULL 14x14 EVK Board";
        compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull";

... ...
        gpioled {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "my-led";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_led>;
                led-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
                status = "okay";
        };
};


&iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog_1>;
        imx6ul-evk {
                pinctrl_led: ledgrp {
                        fsl,pins = <
                                MX6UL_PAD_GPIO1_IO03__GPIO1_IO03   0x10b0
                        >;
                };

                ... ...
        };
};


                pinctrl_tsc: tscgrp {
                        fsl,pins = <

/*                                MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0xb0
                                MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0xb0
                                MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0xb0
                                MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0xb0
*/
                        >;
                };



&tsc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_tsc>;
/*        xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;  */
        measure-delay-time = <0xffff>;
        pre-charge-time = <0xfff>;
        status = "okay";
};



驱动和测试文件都是用的原子提供的,编译启动设备树节点存在,加载驱动正常,但是运行测试程序无法使LED灯点亮。




最佳答案

查看完整内容[请看2#楼]

检查LED灯所使用的IO有没有被其他的外设占用,如果有的话要全部清理掉,否则的话IO可能申请不成功。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2019-12-16 15:03:55 | 显示全部楼层
检查LED灯所使用的IO有没有被其他的外设占用,如果有的话要全部清理掉,否则的话IO可能申请不成功。
回复

使用道具 举报

5

主题

424

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1020
金钱
1020
注册时间
2014-9-4
在线时间
199 小时
发表于 2019-12-16 17:43:58 | 显示全部楼层
顶一顶
https://github.com/WZTENG
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-11-12
在线时间
13 小时
 楼主| 发表于 2019-12-16 19:35:28 | 显示全部楼层
补充一下,使用同样的办法测试蜂鸣器实验就正常着,才开始接触设备树,设备树文件都是按照文档做的。
回复

使用道具 举报

19

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2017-5-19
在线时间
63 小时
发表于 2019-12-17 08:33:42 | 显示全部楼层
qq673985641 发表于 2019-12-16 19:35
补充一下,使用同样的办法测试蜂鸣器实验就正常着,才开始接触设备树,设备树文件都是按照文档做的。

你试试把设备树里面你没用的全注释了,
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-11-12
在线时间
13 小时
 楼主| 发表于 2019-12-17 08:45:00 | 显示全部楼层
zuozhongkai 发表于 2019-12-16 15:03
检查LED灯所使用的IO有没有被其他的外设占用,如果有的话要全部清理掉,否则的话IO可能申请不成功。

设备树文件是根据“imx6ull-14x14-evk.dts”文件修改的,该文件下跟LED引脚冲突的两处tsc设置已经被我屏蔽了,原帖子里已经标注出来了。
回复

使用道具 举报

26

主题

1538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6379
金钱
6379
注册时间
2015-8-25
在线时间
1004 小时
发表于 2019-12-17 10:51:46 | 显示全部楼层
提个建议:
gpio_request调用后判断下返回值,如果失败最好输出调试信息到console,即printk打印信息到控制台
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-11-12
在线时间
13 小时
 楼主| 发表于 2019-12-17 15:00:05 | 显示全部楼层
xuehzy 发表于 2019-12-17 08:33
你试试把设备树里面你没用的全注释了,

已经根据指南把对应的dts文件下的两处tsc所用的都屏蔽了。
回复

使用道具 举报

19

主题

83

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2017-5-19
在线时间
63 小时
发表于 2019-12-17 15:10:43 | 显示全部楼层
qq673985641 发表于 2019-12-17 15:00
已经根据指南把对应的dts文件下的两处tsc所用的都屏蔽了。

你把你的加载驱动的输出截个图看下
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-11-12
在线时间
13 小时
 楼主| 发表于 2019-12-17 15:31:30 | 显示全部楼层
szczyb1314 发表于 2019-12-17 10:51
提个建议:
gpio_request调用后判断下返回值,如果失败最好输出调试信息到console,即printk打印信息到控制 ...

gpio_request  和设置gpio的返回值都正确着。。有点纳闷
回复

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-12-17 17:42:11 | 显示全部楼层
帮顶                                       
成功没有捷径
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-11-12
在线时间
13 小时
 楼主| 发表于 2019-12-18 08:55:55 | 显示全部楼层
xuehzy 发表于 2019-12-17 15:10
你把你的加载驱动的输出截个图看下

加载啥的都一切正常。
QQ图片20191218085145.png
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2019-12-19 18:24:11 | 显示全部楼层
设备树以及驱动文件见附件:
设备树LED测试.zip (41.62 KB, 下载次数: 37)
开往春天的手扶拖拉机
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-11-12
在线时间
13 小时
 楼主| 发表于 2019-12-20 14:25:55 | 显示全部楼层
zuozhongkai 发表于 2019-12-19 18:24
设备树以及驱动文件见附件:

网卡的IO口配置影响到LED的io了。
nxp的样板IO口被spi4占中了,前缀为:MX6ULL
                pinctrl_spi4: spi4grp {
                        fsl,pins = <
                                MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07      0x70a1
                                MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08      0x80000000
                        >;
                };

在修改的设备树文件中则改为了前缀为:MX6UL
                pinctrl_enet1: enet1grp {
                        fsl,pins = <
                                MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07      0x10b0
                        >;
                };

                pinctrl_enet2: enet2grp {
                        fsl,pins = <
                                MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08      0x10b0
                        >;


无论MX6ULL和MX6UL都是配置IO口,只是地址不同,想问一下何时用前缀MX6ULL的配置何时用前缀为MX6UL的配置?


回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2019-11-12
在线时间
13 小时
 楼主| 发表于 2019-12-20 14:30:50 | 显示全部楼层
zuozhongkai 发表于 2019-12-19 18:24
设备树以及驱动文件见附件:

补充一下,如果用前缀为MX6ULL(删掉的被spi4占用的)的就是出错,而如果改为MX6UL就正常。
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-11-13
在线时间
3 小时
发表于 2020-2-10 16:31:30 | 显示全部楼层
qq673985641 发表于 2019-12-20 14:25
网卡的IO口配置影响到LED的io了。
nxp的样板IO口被spi4占中了,前缀为:MX6ULL
                pinctrl_spi4: spi4gr ...

看规格书,配置io口的宏定义在IMX6ULL里有重写的应该是要用MX6ULL开头的。
6UL和6ULL寄存器地址还是有不同的地方的,所以就导致有的寄存器在imx6ull-pinfunc.h里又定义了一次。
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-10-11
在线时间
2 小时
发表于 2021-4-10 10:09:08 | 显示全部楼层
qq673985641 发表于 2019-12-20 14:25
网卡的IO口配置影响到LED的io了。
nxp的样板IO口被spi4占中了,前缀为:MX6ULL
                pinctrl_spi4: spi4gr ...

谢谢,已解决。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 21:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表