1164c05f0SSerge Semin# SPDX-License-Identifier: GPL-2.0-only 2164c05f0SSerge Semin%YAML 1.2 3164c05f0SSerge Semin--- 4164c05f0SSerge Semin$id: http://devicetree.org/schemas/spi/snps,dw-apb-ssi.yaml# 5164c05f0SSerge Semin$schema: http://devicetree.org/meta-schemas/core.yaml# 6164c05f0SSerge Semin 7164c05f0SSerge Semintitle: Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface 8164c05f0SSerge Semin 9164c05f0SSerge Seminmaintainers: 10164c05f0SSerge Semin - Mark Brown <broonie@kernel.org> 11164c05f0SSerge Semin 12164c05f0SSerge SeminallOf: 13164c05f0SSerge Semin - $ref: "spi-controller.yaml#" 14164c05f0SSerge Semin - if: 15164c05f0SSerge Semin properties: 16164c05f0SSerge Semin compatible: 17164c05f0SSerge Semin contains: 18164c05f0SSerge Semin enum: 19164c05f0SSerge Semin - mscc,ocelot-spi 20164c05f0SSerge Semin - mscc,jaguar2-spi 21164c05f0SSerge Semin then: 22164c05f0SSerge Semin properties: 23164c05f0SSerge Semin reg: 24164c05f0SSerge Semin minItems: 2 25ca4e2ac2SSerge Semin - if: 26ca4e2ac2SSerge Semin properties: 27ca4e2ac2SSerge Semin compatible: 28ca4e2ac2SSerge Semin contains: 29ca4e2ac2SSerge Semin enum: 30ca4e2ac2SSerge Semin - baikal,bt1-sys-ssi 31ca4e2ac2SSerge Semin then: 32ca4e2ac2SSerge Semin properties: 33ca4e2ac2SSerge Semin mux-controls: 34ca4e2ac2SSerge Semin maxItems: 1 35ca4e2ac2SSerge Semin required: 36ca4e2ac2SSerge Semin - mux-controls 37ca4e2ac2SSerge Semin else: 38ca4e2ac2SSerge Semin required: 39ca4e2ac2SSerge Semin - interrupts 40164c05f0SSerge Semin 41164c05f0SSerge Seminproperties: 42164c05f0SSerge Semin compatible: 43164c05f0SSerge Semin oneOf: 44164c05f0SSerge Semin - description: Generic DW SPI Controller 45164c05f0SSerge Semin enum: 46164c05f0SSerge Semin - snps,dw-apb-ssi 47164c05f0SSerge Semin - snps,dwc-ssi-1.01a 48164c05f0SSerge Semin - description: Microsemi Ocelot/Jaguar2 SoC SPI Controller 49164c05f0SSerge Semin items: 50164c05f0SSerge Semin - enum: 51164c05f0SSerge Semin - mscc,ocelot-spi 52164c05f0SSerge Semin - mscc,jaguar2-spi 53164c05f0SSerge Semin - const: snps,dw-apb-ssi 545ce78f44SLars Povlsen - description: Microchip Sparx5 SoC SPI Controller 555ce78f44SLars Povlsen const: microchip,sparx5-spi 56164c05f0SSerge Semin - description: Amazon Alpine SPI Controller 57164c05f0SSerge Semin const: amazon,alpine-dw-apb-ssi 58164c05f0SSerge Semin - description: Renesas RZ/N1 SPI Controller 59164c05f0SSerge Semin items: 60164c05f0SSerge Semin - const: renesas,rzn1-spi 61164c05f0SSerge Semin - const: snps,dw-apb-ssi 62164c05f0SSerge Semin - description: Intel Keem Bay SPI Controller 63164c05f0SSerge Semin const: intel,keembay-ssi 64ca4e2ac2SSerge Semin - description: Baikal-T1 SPI Controller 65ca4e2ac2SSerge Semin const: baikal,bt1-ssi 66ca4e2ac2SSerge Semin - description: Baikal-T1 System Boot SPI Controller 67ca4e2ac2SSerge Semin const: baikal,bt1-sys-ssi 687b14a272SDamien Le Moal - description: Canaan Kendryte K210 SoS SPI Controller 697b14a272SDamien Le Moal const: canaan,k210-spi 70029d32a8SGeert Uytterhoeven - description: Renesas RZ/N1 SPI Controller 71029d32a8SGeert Uytterhoeven items: 72029d32a8SGeert Uytterhoeven - enum: 73029d32a8SGeert Uytterhoeven - renesas,r9a06g032-spi # RZ/N1D 74029d32a8SGeert Uytterhoeven - renesas,r9a06g033-spi # RZ/N1S 75029d32a8SGeert Uytterhoeven - const: renesas,rzn1-spi # RZ/N1 76164c05f0SSerge Semin 77164c05f0SSerge Semin reg: 78164c05f0SSerge Semin minItems: 1 79164c05f0SSerge Semin items: 80164c05f0SSerge Semin - description: DW APB SSI controller memory mapped registers 81ca4e2ac2SSerge Semin - description: SPI MST region map or directly mapped SPI ROM 82164c05f0SSerge Semin 83164c05f0SSerge Semin interrupts: 84164c05f0SSerge Semin maxItems: 1 85164c05f0SSerge Semin 86164c05f0SSerge Semin clocks: 87164c05f0SSerge Semin minItems: 1 88164c05f0SSerge Semin items: 89164c05f0SSerge Semin - description: SPI Controller reference clock source 90164c05f0SSerge Semin - description: APB interface clock source 91164c05f0SSerge Semin 92164c05f0SSerge Semin clock-names: 93164c05f0SSerge Semin minItems: 1 94164c05f0SSerge Semin items: 95164c05f0SSerge Semin - const: ssi_clk 96164c05f0SSerge Semin - const: pclk 97164c05f0SSerge Semin 98164c05f0SSerge Semin resets: 99164c05f0SSerge Semin maxItems: 1 100164c05f0SSerge Semin 101164c05f0SSerge Semin reset-names: 102164c05f0SSerge Semin const: spi 103164c05f0SSerge Semin 104164c05f0SSerge Semin reg-io-width: 105164c05f0SSerge Semin $ref: /schemas/types.yaml#/definitions/uint32 106164c05f0SSerge Semin description: I/O register width (in bytes) implemented by this device 107164c05f0SSerge Semin default: 4 108164c05f0SSerge Semin enum: [ 2, 4 ] 109164c05f0SSerge Semin 110164c05f0SSerge Semin num-cs: 111164c05f0SSerge Semin default: 4 112164c05f0SSerge Semin minimum: 1 113164c05f0SSerge Semin maximum: 4 114164c05f0SSerge Semin 115164c05f0SSerge Semin dmas: 116164c05f0SSerge Semin items: 117164c05f0SSerge Semin - description: TX DMA Channel 118164c05f0SSerge Semin - description: RX DMA Channel 119164c05f0SSerge Semin 120164c05f0SSerge Semin dma-names: 121164c05f0SSerge Semin items: 122164c05f0SSerge Semin - const: tx 123164c05f0SSerge Semin - const: rx 124164c05f0SSerge Semin 1255ce78f44SLars Povlsen rx-sample-delay-ns: 1265ce78f44SLars Povlsen default: 0 127*b658be56SRob Herring description: | 128*b658be56SRob Herring Default value of the rx-sample-delay-ns property. 1295ce78f44SLars Povlsen This value will be used if the property is not explicitly defined 130*b658be56SRob Herring for a SPI slave device. 131*b658be56SRob Herring 132*b658be56SRob Herring SPI Rx sample delay offset, unit is nanoseconds. 133*b658be56SRob Herring The delay from the default sample time before the actual sample of the 134*b658be56SRob Herring rxd input signal occurs. The "rx_sample_delay" is an optional feature 135*b658be56SRob Herring of the designware controller, and the upper limit is also subject to 136*b658be56SRob Herring controller configuration. 1375ce78f44SLars Povlsen 138164c05f0SSerge SeminpatternProperties: 139164c05f0SSerge Semin "^.*@[0-9a-f]+$": 140164c05f0SSerge Semin type: object 141164c05f0SSerge Semin properties: 142164c05f0SSerge Semin reg: 143164c05f0SSerge Semin minimum: 0 144164c05f0SSerge Semin maximum: 3 145164c05f0SSerge Semin 146164c05f0SSerge Semin spi-rx-bus-width: 147164c05f0SSerge Semin const: 1 148164c05f0SSerge Semin 149164c05f0SSerge Semin spi-tx-bus-width: 150164c05f0SSerge Semin const: 1 151164c05f0SSerge Semin 152164c05f0SSerge SeminunevaluatedProperties: false 153164c05f0SSerge Semin 154164c05f0SSerge Seminrequired: 155164c05f0SSerge Semin - compatible 156164c05f0SSerge Semin - reg 157164c05f0SSerge Semin - "#address-cells" 158164c05f0SSerge Semin - "#size-cells" 159164c05f0SSerge Semin - clocks 160164c05f0SSerge Semin 161164c05f0SSerge Seminexamples: 162164c05f0SSerge Semin - | 163164c05f0SSerge Semin spi@fff00000 { 164164c05f0SSerge Semin compatible = "snps,dw-apb-ssi"; 165164c05f0SSerge Semin reg = <0xfff00000 0x1000>; 166164c05f0SSerge Semin #address-cells = <1>; 167164c05f0SSerge Semin #size-cells = <0>; 168164c05f0SSerge Semin interrupts = <0 154 4>; 169164c05f0SSerge Semin clocks = <&spi_m_clk>; 170164c05f0SSerge Semin num-cs = <2>; 171164c05f0SSerge Semin cs-gpios = <&gpio0 13 0>, 172164c05f0SSerge Semin <&gpio0 14 0>; 1735ce78f44SLars Povlsen rx-sample-delay-ns = <3>; 174d7a48e27SApurva Nandan flash@1 { 1755ce78f44SLars Povlsen compatible = "spi-nand"; 1765ce78f44SLars Povlsen reg = <1>; 1775ce78f44SLars Povlsen rx-sample-delay-ns = <7>; 1785ce78f44SLars Povlsen }; 179164c05f0SSerge Semin }; 180ca4e2ac2SSerge Semin - | 181ca4e2ac2SSerge Semin spi@1f040100 { 182ca4e2ac2SSerge Semin compatible = "baikal,bt1-sys-ssi"; 183ca4e2ac2SSerge Semin reg = <0x1f040100 0x900>, 184ca4e2ac2SSerge Semin <0x1c000000 0x1000000>; 185ca4e2ac2SSerge Semin #address-cells = <1>; 186ca4e2ac2SSerge Semin #size-cells = <0>; 187ca4e2ac2SSerge Semin mux-controls = <&boot_mux>; 188ca4e2ac2SSerge Semin clocks = <&ccu_sys>; 189ca4e2ac2SSerge Semin clock-names = "ssi_clk"; 190ca4e2ac2SSerge Semin }; 191164c05f0SSerge Semin... 192