gpt4 book ai didi

linux-device-driver - 如何在 linux 内核 3.17 上为 BeagleBone Black 编辑 pinmux?

转载 作者:行者123 更新时间:2023-12-04 12:31:11 31 4
gpt4 key购买 nike

我可以看看/sys/kernel/debug/pinctrl/44e10800.pinmux/pins并查看我感兴趣的引脚:

pin 38 (44e10898.0) 00000037 pinctrl-single 

这对应于 GPIO[2]4 , 或 P8.10 .

我正在使用 Fedora 21,内核 3.17.7-300.fc21.armv7hl .

我想将多路复用器更改为 0x27 .换句话说,这会将引脚配置为具​​有内部下拉电阻(之前是上拉)。

所需的输出是:
pin 38 (44e10898.0) 00000027 pinctrl-single 

可以做什么?

注意:没有 /sys/devices/bone_capemgr.* ,因为这不在 Angstrom 上。典型的 DTO 方法通过修改 cape manager 来导出更改。这不是一个选项。

编辑:以下来自 tad 的探索的思路,我做了: dtc -I dtb -O dts -o ~/am335x-boneblack.dts /boot/dtb-3.17.7-300.fc21.armv7hl/am335x-boneblack.dtb .我编辑了这个文件:
...
pinmux@44e10800 {
...

example {
pinctrl-single,pins = <0x898 0x27>;
};
};
...

然后,我用 dtc 再次编译它, 卡在 /boot/dtb-3.17.7-300.fc21.armv7hl/ ,并重新启动。然而,一切都没有改变。发生了什么?

编辑:

正如 Charles Steinkuehler 所指出的, 0x800需要从偏移量中减去,“东西”需要引用“示例”。

如果我添加 0x098 0x27到我的条目 user_leds_s0 ,观察到所需的行为:
...
user_leds_s0 {
pinctrl-single,pins = <0x54 0x7 0x58 0x17 0x5c 0x7 0x60 0x170 0x098 0x27>;
linux,phandle = <0x3f>;
phandle = <0x3f>;
};
...

现在,这一切都很好,让我去我需要去的地方。但是,该引脚并不是真正的 user_led。它应该在某种单独的领域中。那么,我需要做什么才能使“示例”字段或类似字段起作用?

最佳答案

我相信 cape manager 的东西还没有移植到 3.8 内核之后。不确定是否计划这样做,但与此同时,您可以改为编辑平面设备树。我找到的最简单的方法(我仍在寻找最好的方法)是在

https://github.com/RobertCNelson/dtb-rebuilder

在 src/arm 目录中,编辑 am335x-bone-common-pinmux.dtsi 文件。在其中,您可以搜索“P8_10_default_pin:”。本节告诉 pinmux 使用 0x37 作为其默认设置。将此更改为 0x27 并保存。

现在,通过运行 make 构建新编译的设备树 (.dtb) 文件。在 ubuntu 上,“make install”会将所有文件放在正确的位置。我不确定在 Fedora 上它们会去哪里,但是在/boot/中挖掘应该会很有趣。在 ubuntu 上,正确的位置是

/boot/dtbs/`uname -r`/

就我而言,我正在运行 3.14.26-ti-r43。重启(并导出引脚)后,上述更改启用接收器上的下拉,打开状态(值)读取为 0。
root@arm:~# grep 898 /sys/kernel/debug/pinctrl/44e10800.pinmux/pins
pin 38 (44e10898.0) 00000027 pinctrl-single

root@arm:~# echo 36 > /sys/class/gpio/export
root@arm:~# cat /sys/class/gpio/gpio36/value
0

我确信有一种更优雅的方式来实现目标,但这对我有用。

关于linux-device-driver - 如何在 linux 内核 3.17 上为 BeagleBone Black 编辑 pinmux?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892485/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com