1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/spi/cdns,qspi-nor.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Cadence Quad SPI controller
8
9maintainers:
10  - Vaishnav Achath <vaishnav.a@ti.com>
11
12allOf:
13  - $ref: spi-controller.yaml#
14  - if:
15      properties:
16        compatible:
17          contains:
18            const: xlnx,versal-ospi-1.0
19    then:
20      required:
21        - power-domains
22
23properties:
24  compatible:
25    oneOf:
26      - items:
27          - enum:
28              - ti,k2g-qspi
29              - ti,am654-ospi
30              - intel,lgm-qspi
31              - xlnx,versal-ospi-1.0
32              - intel,socfpga-qspi
33          - const: cdns,qspi-nor
34      - const: cdns,qspi-nor
35
36  reg:
37    items:
38      - description: the controller register set
39      - description: the controller data area
40
41  interrupts:
42    maxItems: 1
43
44  clocks:
45    maxItems: 1
46
47  cdns,fifo-depth:
48    description:
49      Size of the data FIFO in words.
50    $ref: "/schemas/types.yaml#/definitions/uint32"
51    enum: [ 128, 256 ]
52    default: 128
53
54  cdns,fifo-width:
55    $ref: /schemas/types.yaml#/definitions/uint32
56    description:
57      Bus width of the data FIFO in bytes.
58    default: 4
59
60  cdns,trigger-address:
61    $ref: /schemas/types.yaml#/definitions/uint32
62    description:
63      32-bit indirect AHB trigger address.
64
65  cdns,is-decoded-cs:
66    type: boolean
67    description:
68      Flag to indicate whether decoder is used to select different chip select
69      for different memory regions.
70
71  cdns,rclk-en:
72    type: boolean
73    description:
74      Flag to indicate that QSPI return clock is used to latch the read
75      data rather than the QSPI clock. Make sure that QSPI return clock
76      is populated on the board before using this property.
77
78  power-domains:
79    maxItems: 1
80
81  resets:
82    maxItems: 2
83
84  reset-names:
85    minItems: 1
86    maxItems: 2
87    items:
88      enum: [ qspi, qspi-ocp ]
89
90required:
91  - compatible
92  - reg
93  - interrupts
94  - clocks
95  - cdns,fifo-depth
96  - cdns,fifo-width
97  - cdns,trigger-address
98  - '#address-cells'
99  - '#size-cells'
100
101unevaluatedProperties: false
102
103examples:
104  - |
105    qspi: spi@ff705000 {
106      compatible = "cdns,qspi-nor";
107      #address-cells = <1>;
108      #size-cells = <0>;
109      reg = <0xff705000 0x1000>,
110            <0xffa00000 0x1000>;
111      interrupts = <0 151 4>;
112      clocks = <&qspi_clk>;
113      cdns,fifo-depth = <128>;
114      cdns,fifo-width = <4>;
115      cdns,trigger-address = <0x00000000>;
116      resets = <&rst 0x1>, <&rst 0x2>;
117      reset-names = "qspi", "qspi-ocp";
118
119      flash@0 {
120              compatible = "jedec,spi-nor";
121              reg = <0x0>;
122      };
123    };
124