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 1275ce78f44SLars Povlsen description: Default value of the rx-sample-delay-ns property. 1285ce78f44SLars Povlsen This value will be used if the property is not explicitly defined 1295ce78f44SLars Povlsen for a SPI slave device. See below. 1305ce78f44SLars Povlsen 131164c05f0SSerge SeminpatternProperties: 132164c05f0SSerge Semin "^.*@[0-9a-f]+$": 133164c05f0SSerge Semin type: object 134164c05f0SSerge Semin properties: 135164c05f0SSerge Semin reg: 136164c05f0SSerge Semin minimum: 0 137164c05f0SSerge Semin maximum: 3 138164c05f0SSerge Semin 139164c05f0SSerge Semin spi-rx-bus-width: 140164c05f0SSerge Semin const: 1 141164c05f0SSerge Semin 142164c05f0SSerge Semin spi-tx-bus-width: 143164c05f0SSerge Semin const: 1 144164c05f0SSerge Semin 1455ce78f44SLars Povlsen rx-sample-delay-ns: 1465ce78f44SLars Povlsen description: SPI Rx sample delay offset, unit is nanoseconds. 1475ce78f44SLars Povlsen The delay from the default sample time before the actual 1485ce78f44SLars Povlsen sample of the rxd input signal occurs. The "rx_sample_delay" 1495ce78f44SLars Povlsen is an optional feature of the designware controller, and the 1505ce78f44SLars Povlsen upper limit is also subject to controller configuration. 1515ce78f44SLars Povlsen 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>; 174*d7a48e27SApurva 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