162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/spi/snps,dw-apb-ssi.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Mark Brown <broonie@kernel.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciallOf: 1362306a36Sopenharmony_ci - $ref: spi-controller.yaml# 1462306a36Sopenharmony_ci - if: 1562306a36Sopenharmony_ci properties: 1662306a36Sopenharmony_ci compatible: 1762306a36Sopenharmony_ci contains: 1862306a36Sopenharmony_ci enum: 1962306a36Sopenharmony_ci - mscc,ocelot-spi 2062306a36Sopenharmony_ci - mscc,jaguar2-spi 2162306a36Sopenharmony_ci then: 2262306a36Sopenharmony_ci properties: 2362306a36Sopenharmony_ci reg: 2462306a36Sopenharmony_ci minItems: 2 2562306a36Sopenharmony_ci - if: 2662306a36Sopenharmony_ci properties: 2762306a36Sopenharmony_ci compatible: 2862306a36Sopenharmony_ci contains: 2962306a36Sopenharmony_ci enum: 3062306a36Sopenharmony_ci - baikal,bt1-sys-ssi 3162306a36Sopenharmony_ci then: 3262306a36Sopenharmony_ci properties: 3362306a36Sopenharmony_ci mux-controls: 3462306a36Sopenharmony_ci maxItems: 1 3562306a36Sopenharmony_ci required: 3662306a36Sopenharmony_ci - mux-controls 3762306a36Sopenharmony_ci else: 3862306a36Sopenharmony_ci required: 3962306a36Sopenharmony_ci - interrupts 4062306a36Sopenharmony_ci - if: 4162306a36Sopenharmony_ci properties: 4262306a36Sopenharmony_ci compatible: 4362306a36Sopenharmony_ci contains: 4462306a36Sopenharmony_ci const: amd,pensando-elba-spi 4562306a36Sopenharmony_ci then: 4662306a36Sopenharmony_ci required: 4762306a36Sopenharmony_ci - amd,pensando-elba-syscon 4862306a36Sopenharmony_ci else: 4962306a36Sopenharmony_ci properties: 5062306a36Sopenharmony_ci amd,pensando-elba-syscon: false 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ciproperties: 5362306a36Sopenharmony_ci compatible: 5462306a36Sopenharmony_ci oneOf: 5562306a36Sopenharmony_ci - description: Generic DW SPI Controller 5662306a36Sopenharmony_ci enum: 5762306a36Sopenharmony_ci - snps,dw-apb-ssi 5862306a36Sopenharmony_ci - snps,dwc-ssi-1.01a 5962306a36Sopenharmony_ci - description: Microsemi Ocelot/Jaguar2 SoC SPI Controller 6062306a36Sopenharmony_ci items: 6162306a36Sopenharmony_ci - enum: 6262306a36Sopenharmony_ci - mscc,ocelot-spi 6362306a36Sopenharmony_ci - mscc,jaguar2-spi 6462306a36Sopenharmony_ci - const: snps,dw-apb-ssi 6562306a36Sopenharmony_ci - description: Microchip Sparx5 SoC SPI Controller 6662306a36Sopenharmony_ci const: microchip,sparx5-spi 6762306a36Sopenharmony_ci - description: Amazon Alpine SPI Controller 6862306a36Sopenharmony_ci const: amazon,alpine-dw-apb-ssi 6962306a36Sopenharmony_ci - description: Renesas RZ/N1 SPI Controller 7062306a36Sopenharmony_ci items: 7162306a36Sopenharmony_ci - const: renesas,rzn1-spi 7262306a36Sopenharmony_ci - const: snps,dw-apb-ssi 7362306a36Sopenharmony_ci - description: Intel Keem Bay SPI Controller 7462306a36Sopenharmony_ci const: intel,keembay-ssi 7562306a36Sopenharmony_ci - description: Intel Thunder Bay SPI Controller 7662306a36Sopenharmony_ci const: intel,thunderbay-ssi 7762306a36Sopenharmony_ci - description: Intel Mount Evans Integrated Management Complex SPI Controller 7862306a36Sopenharmony_ci const: intel,mountevans-imc-ssi 7962306a36Sopenharmony_ci - description: AMD Pensando Elba SoC SPI Controller 8062306a36Sopenharmony_ci const: amd,pensando-elba-spi 8162306a36Sopenharmony_ci - description: Baikal-T1 SPI Controller 8262306a36Sopenharmony_ci const: baikal,bt1-ssi 8362306a36Sopenharmony_ci - description: Baikal-T1 System Boot SPI Controller 8462306a36Sopenharmony_ci const: baikal,bt1-sys-ssi 8562306a36Sopenharmony_ci - description: Canaan Kendryte K210 SoS SPI Controller 8662306a36Sopenharmony_ci const: canaan,k210-spi 8762306a36Sopenharmony_ci - description: Renesas RZ/N1 SPI Controller 8862306a36Sopenharmony_ci items: 8962306a36Sopenharmony_ci - enum: 9062306a36Sopenharmony_ci - renesas,r9a06g032-spi # RZ/N1D 9162306a36Sopenharmony_ci - renesas,r9a06g033-spi # RZ/N1S 9262306a36Sopenharmony_ci - const: renesas,rzn1-spi # RZ/N1 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci reg: 9562306a36Sopenharmony_ci minItems: 1 9662306a36Sopenharmony_ci items: 9762306a36Sopenharmony_ci - description: DW APB SSI controller memory mapped registers 9862306a36Sopenharmony_ci - description: SPI MST region map or directly mapped SPI ROM 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci interrupts: 10162306a36Sopenharmony_ci maxItems: 1 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci clocks: 10462306a36Sopenharmony_ci minItems: 1 10562306a36Sopenharmony_ci items: 10662306a36Sopenharmony_ci - description: SPI Controller reference clock source 10762306a36Sopenharmony_ci - description: APB interface clock source 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci clock-names: 11062306a36Sopenharmony_ci minItems: 1 11162306a36Sopenharmony_ci items: 11262306a36Sopenharmony_ci - const: ssi_clk 11362306a36Sopenharmony_ci - const: pclk 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci resets: 11662306a36Sopenharmony_ci maxItems: 1 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci reset-names: 11962306a36Sopenharmony_ci const: spi 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci reg-io-width: 12262306a36Sopenharmony_ci description: I/O register width (in bytes) implemented by this device 12362306a36Sopenharmony_ci default: 4 12462306a36Sopenharmony_ci enum: [ 2, 4 ] 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci num-cs: 12762306a36Sopenharmony_ci default: 4 12862306a36Sopenharmony_ci minimum: 1 12962306a36Sopenharmony_ci maximum: 4 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci dmas: 13262306a36Sopenharmony_ci items: 13362306a36Sopenharmony_ci - description: TX DMA Channel 13462306a36Sopenharmony_ci - description: RX DMA Channel 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci dma-names: 13762306a36Sopenharmony_ci items: 13862306a36Sopenharmony_ci - const: tx 13962306a36Sopenharmony_ci - const: rx 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci rx-sample-delay-ns: 14262306a36Sopenharmony_ci default: 0 14362306a36Sopenharmony_ci description: | 14462306a36Sopenharmony_ci Default value of the rx-sample-delay-ns property. 14562306a36Sopenharmony_ci This value will be used if the property is not explicitly defined 14662306a36Sopenharmony_ci for a SPI slave device. 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci SPI Rx sample delay offset, unit is nanoseconds. 14962306a36Sopenharmony_ci The delay from the default sample time before the actual sample of the 15062306a36Sopenharmony_ci rxd input signal occurs. The "rx_sample_delay" is an optional feature 15162306a36Sopenharmony_ci of the designware controller, and the upper limit is also subject to 15262306a36Sopenharmony_ci controller configuration. 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci amd,pensando-elba-syscon: 15562306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/phandle-array 15662306a36Sopenharmony_ci description: 15762306a36Sopenharmony_ci Block address to control SPI chip-selects. The Elba SoC system controller 15862306a36Sopenharmony_ci provides an interface to override the native DWC SSI CS control. 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_cipatternProperties: 16162306a36Sopenharmony_ci "^.*@[0-9a-f]+$": 16262306a36Sopenharmony_ci type: object 16362306a36Sopenharmony_ci properties: 16462306a36Sopenharmony_ci reg: 16562306a36Sopenharmony_ci minimum: 0 16662306a36Sopenharmony_ci maximum: 3 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ciunevaluatedProperties: false 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_cirequired: 17162306a36Sopenharmony_ci - compatible 17262306a36Sopenharmony_ci - reg 17362306a36Sopenharmony_ci - "#address-cells" 17462306a36Sopenharmony_ci - "#size-cells" 17562306a36Sopenharmony_ci - clocks 17662306a36Sopenharmony_ci 17762306a36Sopenharmony_ciexamples: 17862306a36Sopenharmony_ci - | 17962306a36Sopenharmony_ci spi@fff00000 { 18062306a36Sopenharmony_ci compatible = "snps,dw-apb-ssi"; 18162306a36Sopenharmony_ci reg = <0xfff00000 0x1000>; 18262306a36Sopenharmony_ci #address-cells = <1>; 18362306a36Sopenharmony_ci #size-cells = <0>; 18462306a36Sopenharmony_ci interrupts = <0 154 4>; 18562306a36Sopenharmony_ci clocks = <&spi_m_clk>; 18662306a36Sopenharmony_ci num-cs = <2>; 18762306a36Sopenharmony_ci cs-gpios = <&gpio0 13 0>, 18862306a36Sopenharmony_ci <&gpio0 14 0>; 18962306a36Sopenharmony_ci rx-sample-delay-ns = <3>; 19062306a36Sopenharmony_ci flash@1 { 19162306a36Sopenharmony_ci compatible = "spi-nand"; 19262306a36Sopenharmony_ci reg = <1>; 19362306a36Sopenharmony_ci rx-sample-delay-ns = <7>; 19462306a36Sopenharmony_ci }; 19562306a36Sopenharmony_ci }; 19662306a36Sopenharmony_ci - | 19762306a36Sopenharmony_ci spi@1f040100 { 19862306a36Sopenharmony_ci compatible = "baikal,bt1-sys-ssi"; 19962306a36Sopenharmony_ci reg = <0x1f040100 0x900>, 20062306a36Sopenharmony_ci <0x1c000000 0x1000000>; 20162306a36Sopenharmony_ci #address-cells = <1>; 20262306a36Sopenharmony_ci #size-cells = <0>; 20362306a36Sopenharmony_ci mux-controls = <&boot_mux>; 20462306a36Sopenharmony_ci clocks = <&ccu_sys>; 20562306a36Sopenharmony_ci clock-names = "ssi_clk"; 20662306a36Sopenharmony_ci }; 20762306a36Sopenharmony_ci... 208