38 lines
1.5 KiB
Plaintext
38 lines
1.5 KiB
Plaintext
SiFive SPI controller Device Tree Bindings
|
|
------------------------------------------
|
|
|
|
Required properties:
|
|
- compatible : Should be "sifive,<chip>-spi" and "sifive,spi<version>".
|
|
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>;
|
|
};
|