CAN
1. CAN 驱动
1.1 驱动文件
驱动文件所在位置:
- RV1126/RV1109使用:
drivers/net/can/rockchip/rockchip_can.c
- RK3568/RK3588使用:
drivers/net/can/rockchip/rockchip_canfd.c
- RK3562使用:
drivers/net/can/rockchip/rk3562_canfd.c
1.2 DTS 节点配置
主要参数:
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
转换完成,产生中断信号。
- 时钟频率:可以修改,如果CAN的比特率1M建议修改CAN时钟到300M,信号更稳定。低于1M比特率的,时钟设置200M就可以。CAN时钟最好设置成比特率的偶数倍,便于分出精准的比特率频率。
- compatible:
- RV1126/RV1109使用
"rockchip,can-1.0"
。 - RK3568使用
"rockchip,rk3568-can-2.0"
。 - RK3588使用
"rockchip,can-2.0"
。 - RK3562使用
"rockchip,rk3562-can"
。
- RV1126/RV1109使用
- pinctrl:
配置can_h和can_l的iomux作为can功能使用。
assigned-clocks = <&cru CLK_CAN>;
assigned-clock-rates = <200000000>;
clocks = <&cru CLK_CAN>, <&cru PCLK_CAN>;
clock-names = "baudclk", "apb_pclk";
.compatible = "rockchip,can-1.0",
1.3 内核配置
&can {
pinctrl-names = "default";
pinctrl-0 = <&canm0_pins>;
status = "okay";
};