我试图通过设备树覆盖来改变我的pinmuxing模式,但它似乎对特定寄存器没有影响。我尝试了以下教程:
http://www.valvers.com/embedded-linux/beaglebone-black/step04-gpio/
默认情况:
我使用的是Linux Debian,图片日期:2016-01-24 我的内核有版本:4.1.15-ti-rt-r43
“cat /sys/kernel/debug/pinctrl/44e10800.pinmux/Pins” 为所需的引脚提供以下输出:
引脚84(44e10950.0)00000037 pinctrl-single 引脚85(44e10954.0)00000037 pinctrl-single 引脚86(44e10958.0)00000037 pinctrl-single 引脚87(44e1095c.0)00000037 pinctrl-single
如您所见,所有模式都是模式7,我需要模式0(SPI0)。
没有其他人使用该引脚(在每个引脚上几乎相同=> GPIO UNCLAIMED):
引脚84(44e10950.0):ocp:P9_22_pinmux(GPIO UNCLAIMED)函数pinmux_P9_22_default_pin group pinmux_P9_22_default_pin
命令:“cat / sys / devices / platform / bone_capemgr / slots”给出以下内容:
0:PF ---- -1 1:PF ---- -1 2:PF ---- -1 3:PF ---- -1 4:P-O-L- 0覆盖板名称,00A0,覆盖制造,cape-universaln
这是我的设备树:
/ DTS-V1 /; /插件/;
/ { compatible =“ti,beaglebone”,“ti,beaglebone-black”;
part-number = "SPI_SLAVE_PINMUX";
version = "00A0";
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
spi_slave: pinmux_spi_slave {
pinctrl-single,pins = <
0x150 0x30 // SPI0_CS0 Mode 0, SPI
0x154 0x30 // SPI0_D1 Mode 0, SPI
0x158 0x10 // SPI0_D0 Mode 0, SPI
0x15c 0x10 // SPI0_SCLK Mode 0, SPI
>;
};
};
};
fragment@1 {
target = <&spi0>;
__overlay__ {
#address-cells = <1>;
#size.cells = <0>;
compatible = "bone-pinmux-helper";
pinctrl-names = "default";
pinctrl-0 = <&spi_slave>;
status = "okay";
};
};
};
然后我编译我的dts文件并将编译后的文件复制到/ lib / Firmware。
dtc -O dtb -o SPI_SLAVE_PINMUX-00A0.dtbo -b O - @SPI_SLAVE_PINMUX-00A0.dts
之后我通过以下命令安装驱动程序:
echo SPI_SLAVE_PINMUX&gt; / SYS /设备/平台/ bone_capemgr /槽
加载叠加层:
root @beaglebone:〜#cat / sys / devices / platform / bone_capemgr / slots 0:PF ---- -1 1:PF ---- -1 2:PF ---- -1 3:PF ---- -1 4:P-O-L- 0覆盖板名,00A0,覆盖制造,cape-universaln 7:P-O-L-1覆盖板名称,00A0,覆盖制造,SPI_SLAVE_PINMUX
如您所见,我正在以root身份工作。
现在问题:如果我执行以下命令:
cat /sys/kernel/debug/pinctrl/44e10800.pinmux/Pins
我可以看到,没有任何改变。
引脚84(44e10950.0)00000037 pinctrl-single 引脚85(44e10954.0)00000037 pinctrl-single 引脚86(44e10958.0)00000037 pinctrl-single 引脚87(44e1095c.0)00000037 pinctrl-single
我想知道这个设备树如何适合我的设备驱动程序(字符设备驱动程序,访问MCSPI内存来操作寄存器),但那是一个不同的故事......;)
如果有人可以帮助我,我将非常感激...
非常感谢提前
弗洛