如何将简单的gpio定义添加到Linux设备树(yocto)?未找到标签或路径gpio1

ne5o7dgx  于 2023-11-16  发布在  Linux
关注(0)|答案(2)|浏览(124)

好的,我正在使用TI AM 64 XX和一个基础项目,该项目对设备树上的板的一些gpio的定义有限。。我需要比我在dts中定义的gpio更多的gpio,以便稍后在我的c/c++脚本中使用,并将它们作为简单的输出进行操作。。根据我选择的引脚gpio1_26,gpio1_25,我不知道如何准确修改设备树,为了实施这三个全球项目执行情况

&gpio1 { 
     status = "okay";
     pinctrl-names = "default";
     pinctrl-0 = <&main_gpio1_pins_default>;
     gpio-controller;
};

main_gpio1_pins_default: main-gpio1-pins-default {
pinctrl-single,pins = <
        AM64X_IOPAD(0x01C8, PIN_OUTPUT, 7) /* gpio1_26 */
        AM64X_IOPAD(0x01C4, PIN_OUTPUT, 7) /* gpio1_25 */
        AM64X_IOPAD(0x01C0, PIN_OUTPUT, 7) /*gpio1_24 */
        >;
        };

字符串
你知道吗?谢谢。
我尝试过类似的定义
但它在编译部分失败,这里是错误enter image description here

oxf4rvwz

oxf4rvwz1#

我不知道你的CPU,但一般来说,它应该可以通过额外的GPIO扩展当前块。
main_gpio1_pins_default:main-gpio 1-pins-default {pintrl-single,pins = < AM64X_IOPAD(0x 01 C8,PIN_OUTPUT,7)/* gpio1_26 / AM64X_IOPAD(0x 01 C4,PIN_OUTPUT,7)/ gpio1_25 */ AM64X_IOPAD(0x 01 C 0,PIN_OUTPUT,7)/*gpio1_24 */ [在此放置更多条目] >; };
查看CPU的描述以找到所需GPIO的PIN。还应该有计算地址的描述。对于其他TI CPU,这可以通过在线工具完成。或者可以有一个包含所有可用GPIO引脚的Map文件。Grep代码。

eivgtgni

eivgtgni2#

正如你在编译输出中看到的,没有gpio1节点的定义。dts中的&符号引用了一个以前定义的节点,如果它不是默认定义的,或者如果你没有显式定义它,该引用没有意义。查看您正在使用的dts 'k3-am 642-sk.dts',我看到第130行中有一个名为main_pmx0的节点,这是主pinmux模式节点,你应该在那里添加你的配置。另一个选择(实际上是推荐的一个)是创建一个.dtsi文件,并将其包含在主节点中,但为了简单起见,你可以修改原始文件。
在主pinmux节点中,您可以定义引脚:

&main_pmx0 {
    custom_pins: custom_pins {
            pinctrl-single,pins = <
                AM64X_IOPAD(0x01C8, PIN_OUTPUT, 7) 
                AM64X_IOPAD(0x01C4, PIN_OUTPUT, 7) 
            >;
};

字符串
在这个例子中,我只是添加了2个引脚,随意添加你想要的。
这样做,你应该能够使用sys/class/gpio或gpio char dev驱动程序(或libgpiod等工具)与gpios一起工作。
注意事项:请确保做适当的研究有关pinmux模式(参考相应的参考处理器手册),有一些引脚,不能作为gpios使用。我只是复制了引脚方向和pinmuxmode你写在你的问题,证明你已经得到了这些信息。
注意2:如果你使用bitbake编译,那么你应该重新编译.wic镜像,否则使用nvm
注3(回复您的评论):如果你没有看到/sys/class/gpio,那是因为它已经被弃用了,新的标准是使用gpio char device。如果你使用ls /dev,你会发现一些字符开发驱动器称为类似gpiochipX。如果你想添加sys/class/gpio,那么你必须在内核menuconfig中配置它:
打开内核menuconfig并激活以下内容:

Symbol: EXPERT [=y]
Location:
General Setup --->
    [*] Configure standard kernel features (expert users)

Symbol: SYSFS [=y]
Location:
File systems --->
    Pseudo file systems --->
        -*- sysfs file system support

Symbol: GPIO_SYSFS [=y]
Location:
Device Drivers --->
    [*] GPIO support --->
        [*] sys/class/gpio

相关问题