ZYNQ Linux使用SPI驱动

--- title: ZYNQ Linux使用SPI驱动 EntryName: xilinx-zynq-using-spi-driver-in-linux date: 2020-10-14 10:02:57 categories: tags: - driver - linux - spi ---

配置

Vivado

Vivado中双击ZYNQ-PS核(例如ZYNQ7000),选上需要使用的SPI,这一步略。

spi该驱动不支持片选功能,因此若在spi下挂接了多个从设备,而硬件工程中spi0_csn片选接口引出了多个cs信号,则spiddev驱动在注册时,会在/dev目录下注册多个设备,分别对应每个片选接口连接的从设备。

Kernel

Linux内核配置:

CONFIG_SPI_CADENCE
CONFIG_SPI_SPIDEV

Device Drivers  --->
	[*] SPI support  --->
                <*>   Cadence SPI controller
		<*>   User mode SPI device driver support

DTS

/* 新增的内容开始 */
&spi1 { // 注意根据 system-top.dts 中的 修改此处地方
    device@0 {
        compatible = "spidev";
        reg = <0>;
        spi-max-frequency = <5000000>;
        #address-cells = <1>;
        #size-cells = <1>;
    };  
};
/* 新增的内容结束 */

重新编译内核并启动系统,即可在/dev目录下看到注册的一个SPI字符设备,一般命名为SPIx.x,x代表数字。

App

使用spidev_test.c程序即可。

所在位置(根据PetaLinux版本不同而不同):

  • ${petalinux_path}/components/inux-kernel/xlnx-4.0/Documentation/spi/spi_test.c
  • ${linux}/tools/spi/spidev_test.c
原文地址:https://www.cnblogs.com/schips/p/xilinx_zynq_spi_driver_in_linux.html