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 68 access-controllers: 69 minItems: 1 70 maxItems: 2 71 72required: 73 - compatible 74 - "#sound-dai-cells" 75 - reg 76 - clocks 77 - clock-names 78 - interrupts 79 - dmas 80 - dma-names 81 82unevaluatedProperties: false 83 84examples: 85 - | 86 #include <dt-bindings/interrupt-controller/arm-gic.h> 87 #include <dt-bindings/clock/stm32mp1-clks.h> 88 i2s2: audio-controller@4000b000 { 89 compatible = "st,stm32h7-i2s"; 90 #sound-dai-cells = <0>; 91 reg = <0x4000b000 0x400>; 92 clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; 93 clock-names = "pclk", "i2sclk", "x8k", "x11k"; 94 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 95 dmas = <&dmamux1 39 0x400 0x01>, 96 <&dmamux1 40 0x400 0x01>; 97 dma-names = "rx", "tx"; 98 pinctrl-names = "default"; 99 pinctrl-0 = <&i2s2_pins_a>; 100 101 /* assume audio-graph */ 102 port { 103 codec_endpoint: endpoint { 104 remote-endpoint = <&codec_endpoint>; 105 }; 106 }; 107 }; 108 109... 110