一. 简介
SPI 驱动框架和 I2C 很类似,都分为主机控制器驱动和设备驱动,主机控制器也就是 SOC的 SPI 控制器接口。
前一篇文章简单学习了Linux下SPI主控的驱动。文章如下:
本文来简单分析一下IMX6ULL(这个SOC)的 SPI主机控制器的驱动。
二. Linux下SPI驱动:I.MX6U SPI 主机驱动分析
和
I2C
的适配器驱动一样,
SPI
主机驱动一般都由
SOC
厂商编写好了,打开
imx6ull.dtsi 文件,找到如下所示内容:
ecspi3: ecspi@02010000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
reg = <0x02010000 0x4000>;
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clks IMX6UL_CLK_ECSPI3>,
<&clks IMX6UL_CLK_ECSPI3>;
clock-names = "ipg", "per";
dmas = <&sdma 7 7 1>, <&sdma 8 7 2>;
dma-names = "rx", "tx";
status = "disabled";
};
重点来看一下第
4
行的
compatible
属性值,
compatible
属性有两个值“
fsl,imx6ul-ecspi
”和
“
fsl,imx51-ecspi
”。在
Linux
内核源码中搜素这两个属性值即可找到
I.MX6U