19c12e34aSPragnesh Patel# SPDX-License-Identifier: GPL-2.0
29c12e34aSPragnesh Patel%YAML 1.2
39c12e34aSPragnesh Patel---
49c12e34aSPragnesh Patel$id: http://devicetree.org/schemas/spi/spi-sifive.yaml#
59c12e34aSPragnesh Patel$schema: http://devicetree.org/meta-schemas/core.yaml#
69c12e34aSPragnesh Patel
79c12e34aSPragnesh Pateltitle: SiFive SPI controller
89c12e34aSPragnesh Patel
99c12e34aSPragnesh Patelmaintainers:
109c12e34aSPragnesh Patel  - Pragnesh Patel <pragnesh.patel@sifive.com>
119c12e34aSPragnesh Patel  - Paul Walmsley  <paul.walmsley@sifive.com>
129c12e34aSPragnesh Patel  - Palmer Dabbelt <palmer@sifive.com>
139c12e34aSPragnesh Patel
149c12e34aSPragnesh PatelallOf:
15*99a7fa0eSKrzysztof Kozlowski  - $ref: spi-controller.yaml#
169c12e34aSPragnesh Patel
179c12e34aSPragnesh Patelproperties:
189c12e34aSPragnesh Patel  compatible:
199c12e34aSPragnesh Patel    items:
2076347344SYash Shah      - enum:
2176347344SYash Shah          - sifive,fu540-c000-spi
2276347344SYash Shah          - sifive,fu740-c000-spi
239c12e34aSPragnesh Patel      - const: sifive,spi0
249c12e34aSPragnesh Patel
259c12e34aSPragnesh Patel    description:
269c12e34aSPragnesh Patel      Should be "sifive,<chip>-spi" and "sifive,spi<version>".
279c12e34aSPragnesh Patel      Supported compatible strings are -
2876347344SYash Shah      "sifive,fu540-c000-spi" and "sifive,fu740-c000-spi" for the SiFive SPI v0
2976347344SYash Shah      as integrated onto the SiFive FU540 and FU740 chip resp, and "sifive,spi0"
3076347344SYash Shah      for the SiFive SPI v0 IP block with no chip integration tweaks.
319c12e34aSPragnesh Patel      Please refer to sifive-blocks-ip-versioning.txt for details
329c12e34aSPragnesh Patel
339c12e34aSPragnesh Patel      SPI RTL that corresponds to the IP block version numbers can be found here -
349c12e34aSPragnesh Patel      https://github.com/sifive/sifive-blocks/tree/master/src/main/scala/devices/spi
359c12e34aSPragnesh Patel
369c12e34aSPragnesh Patel  reg:
37e2f233ecSRob Herring    minItems: 1
38e2f233ecSRob Herring    items:
39e2f233ecSRob Herring      - description: SPI registers region
40e2f233ecSRob Herring      - description: Memory mapped flash region
419c12e34aSPragnesh Patel
429c12e34aSPragnesh Patel  interrupts:
439c12e34aSPragnesh Patel    maxItems: 1
449c12e34aSPragnesh Patel
459c12e34aSPragnesh Patel  clocks:
469c12e34aSPragnesh Patel    maxItems: 1
479c12e34aSPragnesh Patel
489c12e34aSPragnesh Patel    description:
499c12e34aSPragnesh Patel      Must reference the frequency given to the controller
509c12e34aSPragnesh Patel
519c12e34aSPragnesh Patel  sifive,fifo-depth:
529c12e34aSPragnesh Patel    description:
539c12e34aSPragnesh Patel      Depth of hardware queues; defaults to 8
54*99a7fa0eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
553d21a460SRob Herring    enum: [8]
563d21a460SRob Herring    default: 8
579c12e34aSPragnesh Patel
589c12e34aSPragnesh Patel  sifive,max-bits-per-word:
599c12e34aSPragnesh Patel    description:
609c12e34aSPragnesh Patel      Maximum bits per word; defaults to 8
61*99a7fa0eSKrzysztof Kozlowski    $ref: /schemas/types.yaml#/definitions/uint32
623d21a460SRob Herring    enum: [0, 1, 2, 3, 4, 5, 6, 7, 8]
633d21a460SRob Herring    default: 8
649c12e34aSPragnesh Patel
659c12e34aSPragnesh Patelrequired:
669c12e34aSPragnesh Patel  - compatible
679c12e34aSPragnesh Patel  - reg
689c12e34aSPragnesh Patel  - interrupts
699c12e34aSPragnesh Patel  - clocks
709c12e34aSPragnesh Patel
716fdc6e23SRob HerringunevaluatedProperties: false
726fdc6e23SRob Herring
739c12e34aSPragnesh Patelexamples:
749c12e34aSPragnesh Patel  - |
759c12e34aSPragnesh Patel    spi: spi@10040000 {
769c12e34aSPragnesh Patel      compatible = "sifive,fu540-c000-spi", "sifive,spi0";
77fba56184SRob Herring      reg = <0x10040000 0x1000>, <0x20000000 0x10000000>;
789c12e34aSPragnesh Patel      interrupt-parent = <&plic>;
799c12e34aSPragnesh Patel      interrupts = <51>;
809c12e34aSPragnesh Patel      clocks = <&tlclk>;
819c12e34aSPragnesh Patel      #address-cells = <1>;
829c12e34aSPragnesh Patel      #size-cells = <0>;
839c12e34aSPragnesh Patel      sifive,fifo-depth = <8>;
849c12e34aSPragnesh Patel      sifive,max-bits-per-word = <8>;
859c12e34aSPragnesh Patel    };
869c12e34aSPragnesh Patel
879c12e34aSPragnesh Patel...
88