RK3568驱动指南|第十六篇 SPI 实践:移植官方mcp2515驱动

2024-07-31

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。

第195章 实践:移植官方mcp2515驱动

在前面的章节中从零编写了一个mcp2515的驱动程序,旨在对SPI驱动相关的知识进行学习,但实际上mcp2515的驱动程序在内核中已经提供了,在本章节将会讲解如何移植官方mcp2515驱动。

195.1 内核和设备树配置

Linux内核源码中默认已经有了MCP2515的驱动程序,驱动具体路径为“linux_sdk/kernel/drivers/net/can/spi/mcp251x.c”,所以只需要在make menuconfig图形化配置界面选中即可。

> Networking support

> CAN bus subsystem support

> CAN Device Drivers

> CAN SPI interfaces

<*> Microchip MCP251x and MCP25625 SPI CAN controllers

RK3568驱动指南|第十六篇 SPI 实践:移植官方mcp2515驱动 (https://ic.work/) 技术资料 第1张

然后在kernel/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi设备树中添加如下节点:

&spi0 {

status = "okay";

pinctrl-0 = <&spi0m1_cs0 &spi0m1_pins>;

pinctrl-1 = <&spi0m1_cs0 &spi0m1_pins_hs>;

mcp2515: mcp2515@0 {

compatible = "microchip,mcp2515";

reg = <0>;

spi-max-frequency = <10000000>;

interrupt-parent = <&gpio0>;

interrupts = ;

pinctrl-names = "default";

pinctrl-0 = <&mcp2515_int>;

clocks = <&clk8m>;

status = "okay";

};

clk8m: clk8m {

compatible = "fixed-clock";

#clock-cells = <0>;

clock-frequency = <8000000>;

};

};

RK3568驱动指南|第十六篇 SPI 实践:移植官方mcp2515驱动 (https://ic.work/) 技术资料 第2张


然后在pinctrl节点下添加以下内容

mcp2515-gpio{

mcp2515_int:mcp2515-int {

rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;

};

};

RK3568驱动指南|第十六篇 SPI 实践:移植官方mcp2515驱动 (https://ic.work/) 技术资料 第3张


保存修改配置,然后重新编译内核镜像,修改好的设备树以及编译好的内核镜像存放路径为“iTOP-3568开发板\03_【iTOP-RK3568开发板】指南教程\02_Linux驱动配套资料\04_Linux驱动程序\121_mcp2515_08”。

195.2 运行测试

首先需要确保烧写的是上一小节修改编译出来的内核镜像,系统启动之后,输入“ifconfig -a”命令,如下图所示,可以看到生成的can1设备。

RK3568驱动指南|第十六篇 SPI 实践:移植官方mcp2515驱动 (https://ic.work/) 技术资料 第4张

接下来输入以下命令进行回环测试:

ip link set can1 down

ip link set can1 type can bitrate 250000

ip link set can1 type can loopback on

ip link set up can1

candump can1 -L &

cansend can1 123#1122334455667788

RK3568驱动指南|第十六篇 SPI 实践:移植官方mcp2515驱动 (https://ic.work/) 技术资料 第5张

如上图所示,发送和接收的数据是一样的,说明回环测试成功!

至此,移植官方MCP2515驱动实验完成!

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/BeiJingXunWei/article/details/140181160





文章推荐

相关推荐