1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/sound/st,stm32-i2s.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: STMicroelectronics STM32 SPI/I2S Controller 8 9maintainers: 10 - Olivier Moysan <olivier.moysan@foss.st.com> 11 12description: 13 The SPI/I2S block supports I2S/PCM protocols when configured on I2S mode. 14 Only some SPI instances support I2S. 15 16allOf: 17 - $ref: dai-common.yaml# 18 19properties: 20 compatible: 21 enum: 22 - st,stm32h7-i2s 23 24 "#sound-dai-cells": 25 const: 0 26 27 reg: 28 maxItems: 1 29 30 clocks: 31 items: 32 - description: clock feeding the peripheral bus interface. 33 - description: clock feeding the internal clock generator. 34 - description: I2S parent clock for sampling rates multiple of 8kHz. 35 - description: I2S parent clock for sampling rates multiple of 11.025kHz. 36 37 clock-names: 38 items: 39 - const: pclk 40 - const: i2sclk 41 - const: x8k 42 - const: x11k 43 44 interrupts: 45 maxItems: 1 46 47 dmas: 48 items: 49 - description: audio capture DMA. 50 - description: audio playback DMA. 51 52 dma-names: 53 items: 54 - const: rx 55 - const: tx 56 57 resets: 58 maxItems: 1 59 60 "#clock-cells": 61 description: Configure the I2S device as MCLK clock provider. 62 const: 0 63 64 port: 65 $ref: audio-graph-port.yaml# 66 unevaluatedProperties: false 67 68required: 69 - compatible 70 - "#sound-dai-cells" 71 - reg 72 - clocks 73 - clock-names 74 - interrupts 75 - dmas 76 - dma-names 77 78unevaluatedProperties: false 79 80examples: 81 - | 82 #include <dt-bindings/interrupt-controller/arm-gic.h> 83 #include <dt-bindings/clock/stm32mp1-clks.h> 84 i2s2: audio-controller@4000b000 { 85 compatible = "st,stm32h7-i2s"; 86 #sound-dai-cells = <0>; 87 reg = <0x4000b000 0x400>; 88 clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; 89 clock-names = "pclk", "i2sclk", "x8k", "x11k"; 90 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 91 dmas = <&dmamux1 39 0x400 0x01>, 92 <&dmamux1 40 0x400 0x01>; 93 dma-names = "rx", "tx"; 94 pinctrl-names = "default"; 95 pinctrl-0 = <&i2s2_pins_a>; 96 97 /* assume audio-graph */ 98 port { 99 codec_endpoint: endpoint { 100 remote-endpoint = <&codec_endpoint>; 101 }; 102 }; 103 }; 104 105... 106