# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/sound/st,stm32-i2s.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: STMicroelectronics STM32 SPI/I2S Controller maintainers: - Olivier Moysan <olivier.moysan@foss.st.com> description: The SPI/I2S block supports I2S/PCM protocols when configured on I2S mode. Only some SPI instances support I2S. allOf: - $ref: dai-common.yaml# properties: compatible: enum: - st,stm32h7-i2s "#sound-dai-cells": const: 0 reg: maxItems: 1 clocks: items: - description: clock feeding the peripheral bus interface. - description: clock feeding the internal clock generator. - description: I2S parent clock for sampling rates multiple of 8kHz. - description: I2S parent clock for sampling rates multiple of 11.025kHz. clock-names: items: - const: pclk - const: i2sclk - const: x8k - const: x11k interrupts: maxItems: 1 dmas: items: - description: audio capture DMA. - description: audio playback DMA. dma-names: items: - const: rx - const: tx resets: maxItems: 1 "#clock-cells": description: Configure the I2S device as MCLK clock provider. const: 0 port: $ref: audio-graph-port.yaml# unevaluatedProperties: false required: - compatible - "#sound-dai-cells" - reg - clocks - clock-names - interrupts - dmas - dma-names unevaluatedProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/stm32mp1-clks.h> i2s2: audio-controller@4000b000 { compatible = "st,stm32h7-i2s"; #sound-dai-cells = <0>; reg = <0x4000b000 0x400>; clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; clock-names = "pclk", "i2sclk", "x8k", "x11k"; interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; dmas = <&dmamux1 39 0x400 0x01>, <&dmamux1 40 0x400 0x01>; dma-names = "rx", "tx"; pinctrl-names = "default"; pinctrl-0 = <&i2s2_pins_a>; /* assume audio-graph */ port { codec_endpoint: endpoint { remote-endpoint = <&codec_endpoint>; }; }; }; ...