linux一个spi总线挂多个设备,spi总线挂载多个设备的设备树描述
内核版本:linux4.6Vivado版本:201602工程中用到很多spi控制的从设备,首先对FPGA工程的正确性验证一下。验证的设备树描述如下:spi@e0006000 {compatible = "xlnx,zynq-spi-r1p6";reg = <0xe0006000 0x1000>;status = "okay";interrupt-parent = <0x3>
内核版本:linux4.6
Vivado版本:201602
工程中用到很多spi控制的从设备,首先对FPGA工程的正确性验证一下。
验证的设备树描述如下:
spi@e0006000 {
compatible = "xlnx,zynq-spi-r1p6";
reg = <0xe0006000 0x1000>;
status = "okay";
interrupt-parent = <0x3>;
interrupts = <0x0 0x1a 0x4>;
clocks = <0x1 0x19 0x1 0x22>;
clock-names = "ref_clk", "pclk";
#address-cells = <0x1>;
#size-cells = <0x0>;
num-cs = <0x3>; /*重点描述*/
adc@0 {
/*compatible = "ti,ads8688";*/
compatible = "rohm,dh2228fv";
reg = <0x0>;
spi-max-frequency = <0xf4240>;
};
adc@1 {
/*compatible = "ad5292";*/
compatible = "rohm,dh2228fv";
reg = <0x1>;
spi-max-frequency = <0xf4240>;
};
adc@2 {
compatible = "rohm,dh2228fv";
/*compatible = "ad5624r5";*/
reg = <0x2>;
spi-max-frequency = <0xf4240>;
};
};
设备树注意:
num-cs = <0x3>;
如果只挂一个设备,这句没有没关系,一旦超过1个,不写就会出错,出错表现在数据时钟信号良好,但是没有片选信号。
另外,zynq7000系列最多挂载3个。这个看fpga工程就知道了,因为工程中spi总线有3个片选信号。
FPGA工程注意:
spi的 引脚属性默认。
具体就是,Direction 选择除了两个片选其他都是 INOUT。 片选1和片选2默认 OUT 。
更多推荐
所有评论(0)