SiFive SPI controller Device Tree Bindings ------------------------------------------ Required properties: - compatible : Should be "sifive,-spi" and "sifive,spi". Supported compatible strings are: "sifive,fu540-c000-spi" for the SiFive SPI v0 as integrated onto the SiFive FU540 chip, and "sifive,spi0" for the SiFive SPI v0 IP block with no chip integration tweaks. Please refer to sifive-blocks-ip-versioning.txt for details - reg : Physical base address and size of SPI registers map A second (optional) range can indicate memory mapped flash - interrupts : Must contain one entry - interrupt-parent : Must be core interrupt controller - clocks : Must reference the frequency given to the controller - #address-cells : Must be '1', indicating which CS to use - #size-cells : Must be '0' Optional properties: - sifive,fifo-depth : Depth of hardware queues; defaults to 8 - sifive,max-bits-per-word : Maximum bits per word; defaults to 8 SPI RTL that corresponds to the IP block version numbers can be found here: https://github.com/sifive/sifive-blocks/tree/master/src/main/scala/devices/spi Example: spi: spi@10040000 { compatible = "sifive,fu540-c000-spi", "sifive,spi0"; reg = <0x0 0x10040000 0x0 0x1000 0x0 0x20000000 0x0 0x10000000>; interrupt-parent = <&plic>; interrupts = <51>; clocks = <&tlclk>; #address-cells = <1>; #size-cells = <0>; sifive,fifo-depth = <8>; sifive,max-bits-per-word = <8>; };