1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/spi/snps,dw-apb-ssi.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Mark Brown <broonie@kernel.org> 11c66ec88fSEmmanuel Vadot 12c66ec88fSEmmanuel VadotallOf: 13c66ec88fSEmmanuel Vadot - $ref: "spi-controller.yaml#" 14c66ec88fSEmmanuel Vadot - if: 15c66ec88fSEmmanuel Vadot properties: 16c66ec88fSEmmanuel Vadot compatible: 17c66ec88fSEmmanuel Vadot contains: 18c66ec88fSEmmanuel Vadot enum: 19c66ec88fSEmmanuel Vadot - mscc,ocelot-spi 20c66ec88fSEmmanuel Vadot - mscc,jaguar2-spi 21c66ec88fSEmmanuel Vadot then: 22c66ec88fSEmmanuel Vadot properties: 23c66ec88fSEmmanuel Vadot reg: 24c66ec88fSEmmanuel Vadot minItems: 2 256be33864SEmmanuel Vadot - if: 266be33864SEmmanuel Vadot properties: 276be33864SEmmanuel Vadot compatible: 286be33864SEmmanuel Vadot contains: 296be33864SEmmanuel Vadot enum: 306be33864SEmmanuel Vadot - baikal,bt1-sys-ssi 316be33864SEmmanuel Vadot then: 326be33864SEmmanuel Vadot properties: 336be33864SEmmanuel Vadot mux-controls: 346be33864SEmmanuel Vadot maxItems: 1 356be33864SEmmanuel Vadot required: 366be33864SEmmanuel Vadot - mux-controls 376be33864SEmmanuel Vadot else: 386be33864SEmmanuel Vadot required: 396be33864SEmmanuel Vadot - interrupts 40c66ec88fSEmmanuel Vadot 41c66ec88fSEmmanuel Vadotproperties: 42c66ec88fSEmmanuel Vadot compatible: 43c66ec88fSEmmanuel Vadot oneOf: 44c66ec88fSEmmanuel Vadot - description: Generic DW SPI Controller 45c66ec88fSEmmanuel Vadot enum: 46c66ec88fSEmmanuel Vadot - snps,dw-apb-ssi 47c66ec88fSEmmanuel Vadot - snps,dwc-ssi-1.01a 48c66ec88fSEmmanuel Vadot - description: Microsemi Ocelot/Jaguar2 SoC SPI Controller 49c66ec88fSEmmanuel Vadot items: 50c66ec88fSEmmanuel Vadot - enum: 51c66ec88fSEmmanuel Vadot - mscc,ocelot-spi 52c66ec88fSEmmanuel Vadot - mscc,jaguar2-spi 53c66ec88fSEmmanuel Vadot - const: snps,dw-apb-ssi 546be33864SEmmanuel Vadot - description: Microchip Sparx5 SoC SPI Controller 556be33864SEmmanuel Vadot const: microchip,sparx5-spi 56c66ec88fSEmmanuel Vadot - description: Amazon Alpine SPI Controller 57c66ec88fSEmmanuel Vadot const: amazon,alpine-dw-apb-ssi 58c66ec88fSEmmanuel Vadot - description: Renesas RZ/N1 SPI Controller 59c66ec88fSEmmanuel Vadot items: 60c66ec88fSEmmanuel Vadot - const: renesas,rzn1-spi 61c66ec88fSEmmanuel Vadot - const: snps,dw-apb-ssi 62c66ec88fSEmmanuel Vadot - description: Intel Keem Bay SPI Controller 63c66ec88fSEmmanuel Vadot const: intel,keembay-ssi 64*b97ee269SEmmanuel Vadot - description: Intel Thunder Bay SPI Controller 65*b97ee269SEmmanuel Vadot const: intel,thunderbay-ssi 666be33864SEmmanuel Vadot - description: Baikal-T1 SPI Controller 676be33864SEmmanuel Vadot const: baikal,bt1-ssi 686be33864SEmmanuel Vadot - description: Baikal-T1 System Boot SPI Controller 696be33864SEmmanuel Vadot const: baikal,bt1-sys-ssi 705def4c47SEmmanuel Vadot - description: Canaan Kendryte K210 SoS SPI Controller 715def4c47SEmmanuel Vadot const: canaan,k210-spi 725956d97fSEmmanuel Vadot - description: Renesas RZ/N1 SPI Controller 735956d97fSEmmanuel Vadot items: 745956d97fSEmmanuel Vadot - enum: 755956d97fSEmmanuel Vadot - renesas,r9a06g032-spi # RZ/N1D 765956d97fSEmmanuel Vadot - renesas,r9a06g033-spi # RZ/N1S 775956d97fSEmmanuel Vadot - const: renesas,rzn1-spi # RZ/N1 78c66ec88fSEmmanuel Vadot 79c66ec88fSEmmanuel Vadot reg: 80c66ec88fSEmmanuel Vadot minItems: 1 81c66ec88fSEmmanuel Vadot items: 82c66ec88fSEmmanuel Vadot - description: DW APB SSI controller memory mapped registers 836be33864SEmmanuel Vadot - description: SPI MST region map or directly mapped SPI ROM 84c66ec88fSEmmanuel Vadot 85c66ec88fSEmmanuel Vadot interrupts: 86c66ec88fSEmmanuel Vadot maxItems: 1 87c66ec88fSEmmanuel Vadot 88c66ec88fSEmmanuel Vadot clocks: 89c66ec88fSEmmanuel Vadot minItems: 1 90c66ec88fSEmmanuel Vadot items: 91c66ec88fSEmmanuel Vadot - description: SPI Controller reference clock source 92c66ec88fSEmmanuel Vadot - description: APB interface clock source 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot clock-names: 95c66ec88fSEmmanuel Vadot minItems: 1 96c66ec88fSEmmanuel Vadot items: 97c66ec88fSEmmanuel Vadot - const: ssi_clk 98c66ec88fSEmmanuel Vadot - const: pclk 99c66ec88fSEmmanuel Vadot 100c66ec88fSEmmanuel Vadot resets: 101c66ec88fSEmmanuel Vadot maxItems: 1 102c66ec88fSEmmanuel Vadot 103c66ec88fSEmmanuel Vadot reset-names: 104c66ec88fSEmmanuel Vadot const: spi 105c66ec88fSEmmanuel Vadot 106c66ec88fSEmmanuel Vadot reg-io-width: 107c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 108c66ec88fSEmmanuel Vadot description: I/O register width (in bytes) implemented by this device 109c66ec88fSEmmanuel Vadot default: 4 110c66ec88fSEmmanuel Vadot enum: [ 2, 4 ] 111c66ec88fSEmmanuel Vadot 112c66ec88fSEmmanuel Vadot num-cs: 113c66ec88fSEmmanuel Vadot default: 4 114c66ec88fSEmmanuel Vadot minimum: 1 115c66ec88fSEmmanuel Vadot maximum: 4 116c66ec88fSEmmanuel Vadot 117c66ec88fSEmmanuel Vadot dmas: 118c66ec88fSEmmanuel Vadot items: 119c66ec88fSEmmanuel Vadot - description: TX DMA Channel 120c66ec88fSEmmanuel Vadot - description: RX DMA Channel 121c66ec88fSEmmanuel Vadot 122c66ec88fSEmmanuel Vadot dma-names: 123c66ec88fSEmmanuel Vadot items: 124c66ec88fSEmmanuel Vadot - const: tx 125c66ec88fSEmmanuel Vadot - const: rx 126c66ec88fSEmmanuel Vadot 1276be33864SEmmanuel Vadot rx-sample-delay-ns: 1286be33864SEmmanuel Vadot default: 0 129*b97ee269SEmmanuel Vadot description: | 130*b97ee269SEmmanuel Vadot Default value of the rx-sample-delay-ns property. 1316be33864SEmmanuel Vadot This value will be used if the property is not explicitly defined 132*b97ee269SEmmanuel Vadot for a SPI slave device. 133*b97ee269SEmmanuel Vadot 134*b97ee269SEmmanuel Vadot SPI Rx sample delay offset, unit is nanoseconds. 135*b97ee269SEmmanuel Vadot The delay from the default sample time before the actual sample of the 136*b97ee269SEmmanuel Vadot rxd input signal occurs. The "rx_sample_delay" is an optional feature 137*b97ee269SEmmanuel Vadot of the designware controller, and the upper limit is also subject to 138*b97ee269SEmmanuel Vadot controller configuration. 1396be33864SEmmanuel Vadot 140c66ec88fSEmmanuel VadotpatternProperties: 141c66ec88fSEmmanuel Vadot "^.*@[0-9a-f]+$": 142c66ec88fSEmmanuel Vadot type: object 143c66ec88fSEmmanuel Vadot properties: 144c66ec88fSEmmanuel Vadot reg: 145c66ec88fSEmmanuel Vadot minimum: 0 146c66ec88fSEmmanuel Vadot maximum: 3 147c66ec88fSEmmanuel Vadot 148c66ec88fSEmmanuel VadotunevaluatedProperties: false 149c66ec88fSEmmanuel Vadot 150c66ec88fSEmmanuel Vadotrequired: 151c66ec88fSEmmanuel Vadot - compatible 152c66ec88fSEmmanuel Vadot - reg 153c66ec88fSEmmanuel Vadot - "#address-cells" 154c66ec88fSEmmanuel Vadot - "#size-cells" 155c66ec88fSEmmanuel Vadot - clocks 156c66ec88fSEmmanuel Vadot 157c66ec88fSEmmanuel Vadotexamples: 158c66ec88fSEmmanuel Vadot - | 159c66ec88fSEmmanuel Vadot spi@fff00000 { 160c66ec88fSEmmanuel Vadot compatible = "snps,dw-apb-ssi"; 161c66ec88fSEmmanuel Vadot reg = <0xfff00000 0x1000>; 162c66ec88fSEmmanuel Vadot #address-cells = <1>; 163c66ec88fSEmmanuel Vadot #size-cells = <0>; 164c66ec88fSEmmanuel Vadot interrupts = <0 154 4>; 165c66ec88fSEmmanuel Vadot clocks = <&spi_m_clk>; 166c66ec88fSEmmanuel Vadot num-cs = <2>; 167c66ec88fSEmmanuel Vadot cs-gpios = <&gpio0 13 0>, 168c66ec88fSEmmanuel Vadot <&gpio0 14 0>; 1696be33864SEmmanuel Vadot rx-sample-delay-ns = <3>; 170354d7675SEmmanuel Vadot flash@1 { 1716be33864SEmmanuel Vadot compatible = "spi-nand"; 1726be33864SEmmanuel Vadot reg = <1>; 1736be33864SEmmanuel Vadot rx-sample-delay-ns = <7>; 1746be33864SEmmanuel Vadot }; 1756be33864SEmmanuel Vadot }; 1766be33864SEmmanuel Vadot - | 1776be33864SEmmanuel Vadot spi@1f040100 { 1786be33864SEmmanuel Vadot compatible = "baikal,bt1-sys-ssi"; 1796be33864SEmmanuel Vadot reg = <0x1f040100 0x900>, 1806be33864SEmmanuel Vadot <0x1c000000 0x1000000>; 1816be33864SEmmanuel Vadot #address-cells = <1>; 1826be33864SEmmanuel Vadot #size-cells = <0>; 1836be33864SEmmanuel Vadot mux-controls = <&boot_mux>; 1846be33864SEmmanuel Vadot clocks = <&ccu_sys>; 1856be33864SEmmanuel Vadot clock-names = "ssi_clk"; 186c66ec88fSEmmanuel Vadot }; 187c66ec88fSEmmanuel Vadot... 188