Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame^] | 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 | |
| 7 | title: Cadence Quad SPI controller |
| 8 | |
| 9 | maintainers: |
| 10 | - Vaishnav Achath <vaishnav.a@ti.com> |
| 11 | |
| 12 | allOf: |
| 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 | - if: |
| 23 | properties: |
| 24 | compatible: |
| 25 | contains: |
| 26 | const: starfive,jh7110-qspi |
| 27 | then: |
| 28 | properties: |
| 29 | resets: |
| 30 | minItems: 2 |
| 31 | maxItems: 3 |
| 32 | |
| 33 | reset-names: |
| 34 | minItems: 2 |
| 35 | maxItems: 3 |
| 36 | items: |
| 37 | enum: [ qspi, qspi-ocp, rstc_ref ] |
| 38 | |
| 39 | else: |
| 40 | properties: |
| 41 | resets: |
| 42 | maxItems: 2 |
| 43 | |
| 44 | reset-names: |
| 45 | minItems: 1 |
| 46 | maxItems: 2 |
| 47 | items: |
| 48 | enum: [ qspi, qspi-ocp ] |
| 49 | - if: |
| 50 | properties: |
| 51 | compatible: |
| 52 | contains: |
| 53 | const: amd,pensando-elba-qspi |
| 54 | then: |
| 55 | properties: |
| 56 | cdns,fifo-depth: |
| 57 | enum: [ 128, 256, 1024 ] |
| 58 | default: 1024 |
| 59 | else: |
| 60 | properties: |
| 61 | cdns,fifo-depth: |
| 62 | enum: [ 128, 256 ] |
| 63 | default: 128 |
| 64 | |
| 65 | properties: |
| 66 | compatible: |
| 67 | oneOf: |
| 68 | - items: |
| 69 | - enum: |
| 70 | - amd,pensando-elba-qspi |
| 71 | - ti,k2g-qspi |
| 72 | - ti,am654-ospi |
| 73 | - intel,lgm-qspi |
| 74 | - xlnx,versal-ospi-1.0 |
| 75 | - intel,socfpga-qspi |
| 76 | - starfive,jh7110-qspi |
| 77 | - const: cdns,qspi-nor |
| 78 | - const: cdns,qspi-nor |
| 79 | |
| 80 | reg: |
| 81 | items: |
| 82 | - description: the controller register set |
| 83 | - description: the controller data area |
| 84 | |
| 85 | interrupts: |
| 86 | maxItems: 1 |
| 87 | |
| 88 | clocks: |
| 89 | minItems: 1 |
| 90 | maxItems: 3 |
| 91 | |
| 92 | clock-names: |
| 93 | oneOf: |
| 94 | - items: |
| 95 | - const: ref |
| 96 | - items: |
| 97 | - const: ref |
| 98 | - const: ahb |
| 99 | - const: apb |
| 100 | |
| 101 | cdns,fifo-depth: |
| 102 | description: |
| 103 | Size of the data FIFO in words. |
| 104 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 105 | |
| 106 | cdns,fifo-width: |
| 107 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 108 | description: |
| 109 | Bus width of the data FIFO in bytes. |
| 110 | default: 4 |
| 111 | |
| 112 | cdns,trigger-address: |
| 113 | $ref: /schemas/types.yaml#/definitions/uint32 |
| 114 | description: |
| 115 | 32-bit indirect AHB trigger address. |
| 116 | |
| 117 | cdns,is-decoded-cs: |
| 118 | type: boolean |
| 119 | description: |
| 120 | Flag to indicate whether decoder is used to select different chip select |
| 121 | for different memory regions. |
| 122 | |
| 123 | cdns,rclk-en: |
| 124 | type: boolean |
| 125 | description: |
| 126 | Flag to indicate that QSPI return clock is used to latch the read |
| 127 | data rather than the QSPI clock. Make sure that QSPI return clock |
| 128 | is populated on the board before using this property. |
| 129 | |
| 130 | power-domains: |
| 131 | maxItems: 1 |
| 132 | |
| 133 | resets: |
| 134 | minItems: 2 |
| 135 | maxItems: 3 |
| 136 | |
| 137 | reset-names: |
| 138 | minItems: 2 |
| 139 | maxItems: 3 |
| 140 | items: |
| 141 | enum: [ qspi, qspi-ocp, rstc_ref ] |
| 142 | |
| 143 | required: |
| 144 | - compatible |
| 145 | - reg |
| 146 | - interrupts |
| 147 | - clocks |
| 148 | - cdns,fifo-depth |
| 149 | - cdns,fifo-width |
| 150 | - cdns,trigger-address |
| 151 | - '#address-cells' |
| 152 | - '#size-cells' |
| 153 | |
| 154 | unevaluatedProperties: false |
| 155 | |
| 156 | examples: |
| 157 | - | |
| 158 | qspi: spi@ff705000 { |
| 159 | compatible = "cdns,qspi-nor"; |
| 160 | #address-cells = <1>; |
| 161 | #size-cells = <0>; |
| 162 | reg = <0xff705000 0x1000>, |
| 163 | <0xffa00000 0x1000>; |
| 164 | interrupts = <0 151 4>; |
| 165 | clocks = <&qspi_clk>; |
| 166 | cdns,fifo-depth = <128>; |
| 167 | cdns,fifo-width = <4>; |
| 168 | cdns,trigger-address = <0x00000000>; |
| 169 | resets = <&rst 0x1>, <&rst 0x2>; |
| 170 | reset-names = "qspi", "qspi-ocp"; |
| 171 | |
| 172 | flash@0 { |
| 173 | compatible = "jedec,spi-nor"; |
| 174 | reg = <0x0>; |
| 175 | }; |
| 176 | }; |