Hi, 我正在尝试配置以及使用SPI的有关驱动。
根据资料,我配置好了Linux-SPI有关内核选项(CONFIG_SPI_CADENCE、CONFIG_SPI_SPIDEV);在修改设备树的时候,发现一些让我困惑的地方。
由于我的硬件上共有QSPI-Flash与SPI-0,但是我在设备树中看到了这些内容:
zynq-7000.dtsi:
spi0: spi@e0006000 {
compatible = "xlnx,zynq-spi-r1p6";
reg = <0xe0006000 0x1000>;
status = "disabled";
interrupt-parent = ;
interrupts = <0 26 4>;
clocks = , ;
clock-names = "ref_clk", "pclk";
#address-cells = <1>;
#size-cells = <0>;
};
spi1: spi@e0007000 {
compatible = "xlnx,zynq-spi-r1p6";
reg = <0xe0007000 0x1000>;
status = "disabled";
interrupt-parent = ;
interrupts = <0 49 4>;
clocks = , ;
clock-names = "ref_clk", "pclk";
#address-cells = <1>;
#size-cells = <0>;
};
qspi: spi@e000d000 {
clock-names = "ref_clk", "pclk";
clocks = , ;
compatible = "xlnx,zynq-qspi-1.0";
status = "disabled";
interrupt-parent = ;
interrupts = <0 19 4>;
reg = <0xe000d000 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
};
system-user.dtsi:
/dts-v1/;
/include/ "zynq-7000.dtsi"
/include/ "pl.dtsi"
/include/ "pcw.dtsi"
/ {
chosen {
bootargs = "earlycon";
stdout-path = "serial0:115200n8";
};
aliases {
ethernet0 = &gem0;
i2c0 = &i2c0;
i2c1 = &i2c1;
serial0 = &uart1;
serial1 = &uart0;
spi0 = &qspi;
spi1 = &spi0;
};
memory {
device_type = "memory";
reg = <0x0 0x40000000>;
};
};
/include/ "system-user.dtsi"
根据上面的设备树描述,qspi 变成了 spi0,那么为了正确的使用spi-0(我指的是Vivado中的SPI-0,如图)
请问我的设备树中的spi-0是否应该变成spi1?(那么原有的spi-1,是否变成spi-2)/* 新增的内容开始 */
&spi1 {
status = "okay";
device@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <5000000>;
#address-cells = <1>;
#size-cells = <1>;
};
};
/* 新增的内容结束 */
以上是我的疑问,期待任何有用的答案,谢谢。