Hi, I want to use PS SPI controller as regular device (like /dev/spidev0.0
). I did enable SPI0 EMIO and routed to pins defined in XDC file in Vivado.
Now configuring Linux side, I read that need to use spi-petra device name, but not so sure about my device tree file structure:
&spi0 {
//compatible = "cisco,spi-petra"; // <==== is this block necessary?
status = "okay";
spidev@0 { // <==== is this block necessary?
compatible = "spidev";
reg = <0>; /* CS */
spi-max-frequency = <25000000>;
/*spi-cpha; Possible property */
/*spi-cpol; Possible property */
/*spi-cs-high; Possible property */
/*spi-3wire; Possible property */
/*no interrupts */
};
};
it compiles without errors, loads, and then dtc -I fs /sys/firmware/devicetree/base
shows status="okay"
:
...
spi@e0006000 {
compatible = "xlnx,zynq-spi-r1p6";
status = "okay";
...
/proc/iomem
shows reserved address space ... 00000000-00000000 : e0006000.spi spi@e0006000...
ls /sys/bus/platform/devices/e0006000.spi:
gives driver driver_override modalias of_node power spi_master subsystem uevent
Problem: dmesg | grep spi
shows no messages about spidev after modprobe spidev
, also no spidev in lsmod
and no /dev/spidev0.0 device appears.
Where could be problem? Is dts file structure correct?