Linux下SPI设备驱动实验:创建SPI节点及SPI设备子节点

一. 简介

SPI 驱动框架和 I2C 很类似,都分为主机控制器驱动和设备驱动。主机控制器驱动一般由半导体厂商写好,我们来编写SPI设备驱动代码。
前一篇文章分析了 IMX6U系列芯片的 SPI中片选信号的处理,文章如下:
接下来我们就来学习如何在 Linux 下编写 SPI 设备驱动。本实验的最终目的就是驱动 I.MX6U
ALPHA 开发板上的 ICM-20608 这个 SPI 接口的六轴传感器,可以在应用程序中读取 ICM-20608
的原始传感器数据。

这里主要学习创建SPI节点及ICM20608设备(SPI从设备)子节点。

二.  ICM20608设备的硬件原理图

ICM20608设备的硬件原理图如下所示:

通过硬件原理图可以看出,ICM20608设备(SPI设备)的SPI使用的是(IMX6ULL的)SPI3接口,的四个IO对应如下:

SPI3_CS  ->  UART2_TXD   //片选信号
SPI3_SCLK  -> UART2_RXD  //时钟信号
SPI3_MISO  -> UART2_RTS  //主收从发
SPI3_MOSI  -> UART2_CTS  //主发从收

三. 创建SPI节点及SPI设备子节点

这里学习支持设备树的情况下,通过设备节点信息来描述SPI设备信息,方法就是在设备树文件中创建SPI节点及SPI设备节点,IO的pinctrl节点。

1. 创建IO的pinctrl节点

打开ubuntu系统,通过 vscode软件打开 Linux内核源码(NXP官方提供。在 imx6ull-14x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值