RK3399 CAN接口配置设备树(mcp2515)
kernel需先配置config,增加mcp2515支持,
Networking support ---> CAN bus subsystem support --->
CAN Device Drivers --->CAN SPI interfaces --->
Microchip MCP251x and MCP25625 SPI CAN controllers (NEW)
dts文件修改,注意gpio的管脚复用情况。晶振采用16M。实测可用。
&spi2 {
status = "okay";
max-freq = <5000000>;
can0: can@0 {
compatible = "microchip,mcp2515";
pinctrl-names = "default";
pinctrl-0 = <&can0_pins>;
reg = <0>;
clocks = <&clk16m>;
spi-max-frequency = <2000000>;
interrupt-parent = <&gpio2>;
interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
vdd-supply = <&vcc3v3_sys>;//对应你们的图纸找一路对应的电压
xceiver-supply = <&vcc3v3_sys>;
status = "okay";
};
};
&pinctrl {
...
can0 {
can0_pins: can0_pins {
rockchip,pins = <2 8 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
}
clk16m: clk16m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <16000000>;
};
查看CAN接口:
ifconfig -a
can0: flags=128<NOARP> mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
txqueuelen 10 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0