# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/spi/st,stm32-spi.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: STMicroelectronics STM32 SPI Controller description: | The STM32 SPI controller is used to communicate with external devices using the Serial Peripheral Interface. It supports full-duplex, half-duplex and simplex synchronous serial communication with external devices. It supports from 4 to 32-bit data size. maintainers: - Erwan Leray - Fabrice Gasnier allOf: - $ref: spi-controller.yaml# - if: properties: compatible: contains: const: st,stm32f4-spi then: properties: st,spi-midi-ns: false sram: false dmas: maxItems: 2 dma-names: items: - const: rx - const: tx - if: properties: compatible: contains: const: st,stm32mp25-spi then: properties: sram: false dmas: maxItems: 2 dma-names: items: - const: rx - const: tx properties: compatible: enum: - st,stm32f4-spi - st,stm32f7-spi - st,stm32h7-spi - st,stm32mp25-spi reg: maxItems: 1 clocks: maxItems: 1 interrupts: maxItems: 1 resets: maxItems: 1 dmas: description: | DMA specifiers for tx and rx channels. DMA fifo mode must be used. See the STM32 DMA bindings Documentation/devicetree/bindings/dma/stm32/st,*dma.yaml minItems: 2 items: - description: rx DMA channel - description: tx DMA channel - description: rxm2m MDMA channel dma-names: minItems: 2 items: - const: rx - const: tx - const: rxm2m sram: $ref: /schemas/types.yaml#/definitions/phandle description: | Phandles to a reserved SRAM region which is used as temporary storage memory between DMA and MDMA engines. The region should be defined as child node of the AHB SRAM node as per the generic bindings in Documentation/devicetree/bindings/sram/sram.yaml access-controllers: minItems: 1 maxItems: 2 required: - compatible - reg - clocks - interrupts unevaluatedProperties: false examples: - | #include #include #include spi@4000b000 { #address-cells = <1>; #size-cells = <0>; compatible = "st,stm32h7-spi"; reg = <0x4000b000 0x400>; interrupts = ; clocks = <&rcc SPI2_K>; resets = <&rcc SPI2_R>; dmas = <&dmamux1 0 39 0x400 0x05>, <&dmamux1 1 40 0x400 0x05>; dma-names = "rx", "tx"; cs-gpios = <&gpioa 11 0>; }; ...