管脚复用为gpio后不能控制的问题解决

把enet1的管脚复用为了gpio,但是,却控制不了管脚上的电平。

使用厂家技术提供的测试用dts文件是可以控制的。

于是参照厂家提供的测试dts文件的格式,把管脚属性的设置也放置到了pinctrl_hog_1: hoggrp-1节点中(而我之前不能控制的dts中相关管脚的属性设置是在我自己新建的节点上的),问题解决。

但是,这个问题只存在于enet1相关管脚上,而我使用的其他的一些管脚却是可以控制的(这些管脚的属性设置也是在我自己新建的节点上的)。

因此,我怀疑我放到我自己新建的节点上的管脚属性设置代码根本就没有起作用,之所以这些管脚能正常工作是因为某些地方默认的把这些管脚设置为了gpio模式。

 

补充:

与厂家技术人员持续沟通,说我在自建节点上缺少了pinctrl-names = "default"; 属性,我增加后确实在主节点生效了,但在子节点仍然无效。

结论:设置管脚属性的代码

要么放在pinctrl_hog_1: hoggrp-1节点中;

要么把以下两行放在新建的主节点中,然后放置在pinctrl_myda_total(名字可以随意)中

pinctrl-names = "default";
pinctrl-0 = <&pinctrl_myda_total>;

posted on 2021-11-04 11:13  坚强地活着  阅读(89)  评论(0编辑  收藏  举报

导航