| # 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 bindings |
| |
| 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 <erwan.leray@st.com> |
| - Fabrice Gasnier <fabrice.gasnier@st.com> |
| |
| allOf: |
| - $ref: "spi-controller.yaml#" |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: st,stm32f4-spi |
| |
| then: |
| properties: |
| st,spi-midi-ns: false |
| |
| properties: |
| compatible: |
| enum: |
| - st,stm32f4-spi |
| - st,stm32h7-spi |
| |
| reg: |
| maxItems: 1 |
| |
| clocks: |
| maxItems: 1 |
| |
| interrupts: |
| maxItems: 1 |
| |
| resets: |
| maxItems: 1 |
| |
| dmas: |
| description: | |
| DMA specifiers for tx and rx dma. DMA fifo mode must be used. See |
| the STM32 DMA bindings Documentation/devicetree/bindings/dma/st,stm32-dma.yaml. |
| items: |
| - description: rx DMA channel |
| - description: tx DMA channel |
| |
| dma-names: |
| items: |
| - const: rx |
| - const: tx |
| |
| patternProperties: |
| "^[a-zA-Z][a-zA-Z0-9,+\\-._]{0,63}@[0-9a-f]+$": |
| type: object |
| # SPI slave nodes must be children of the SPI master node and can |
| # contain the following properties. |
| properties: |
| st,spi-midi-ns: |
| description: | |
| Only for STM32H7, (Master Inter-Data Idleness) minimum time |
| delay in nanoseconds inserted between two consecutive data frames. |
| |
| required: |
| - compatible |
| - reg |
| - clocks |
| - interrupts |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| #include <dt-bindings/clock/stm32mp1-clks.h> |
| #include <dt-bindings/reset/stm32mp1-resets.h> |
| spi@4000b000 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "st,stm32h7-spi"; |
| reg = <0x4000b000 0x400>; |
| interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; |
| 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>; |
| |
| aardvark@0 { |
| compatible = "totalphase,aardvark"; |
| reg = <0>; |
| spi-max-frequency = <4000000>; |
| st,spi-midi-ns = <4000>; |
| }; |
| }; |
| |
| ... |