【发布时间】:2020-03-31 15:41:06
【问题描述】:
我有一个用 yocto 为 beaglebone black 创建的 linux 映像。我需要配置 dcan0 和 dcan1,以及一堆 gpios 和几个 uart。为此,我创建了一堆 .dtsi 文件并将它们包含在自定义 .dts 中,并创建了补丁以包含所有更改。一切正常,除了 dcan0 和 dcan1(我已删除 i2c2)检查:
cat /sys/kernel/debug/pinctrl/44e10800.pinmux-pinctrl-single/pinmux-pins
这是我的 dcan0 配置,dcan1 看起来几乎一样,只是使用了不同的引脚:
&am33xx_pinmux {
dcan0_pins_default: dcan0_pins_default {
pinctrl-single,pins = <
AM33XX_IOPAD(0x97c, PIN_INPUT | MUX_MODE2) /* (D17) uart1_rtsn.dcan0_rx */
AM33XX_IOPAD(0x978, PIN_OUTPUT | MUX_MODE2) /* (D18) uart1_ctsn.dcan0_tx */
>;
};
};
&dcan0 {
status = "okay";
pinctrl-names = "default";
pinctrl1-0 = <&dcan0_pins_default>;
};
在此之后,我将 dcan0 和 dca1 的配置添加到 am33xx.dtsi,如下所示:
+ d_can@481cc000 {
+ compatible = "bosch,d_can";
+ ti,hwmods = "d_can0";
+ reg = <0x481cc000 0x2000>;
+ interrupts = <0x34>;
+ status = "disabled";
+ linux,phandle = <0x2c>;
+ phandle = <0x2c>;
+ };
+
+ d_can@481d0000 {
+ compatible = "bosch,d_can";
+ ti,hwmods = "d_can1";
+ reg = <0x481d0000 0x2000>;
+ interrupts = <0x37>;
+ status = "disabled";
+ linux,phandle = <0x2d>;
+ phandle = <0x2d>;
+ };
再一次,罐头不存在。有谁知道为什么它不起作用?我以相同的方式配置了我的 UART,它们都在工作。
【问题讨论】:
标签: embedded-linux yocto beagleboneblack