Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit a7161579 authored by Arnaud Pouliquen's avatar Arnaud Pouliquen Committed by Mark Brown
Browse files

ASoC: add bindings for stm32 DFSDM filter



Add bindings that describes audio settings to support
Digital Filter for pulse density modulation(PDM) microphone.

Signed-off-by: default avatarArnaud Pouliquen <arnaud.pouliquen@st.com>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 4fbd8d19
Loading
Loading
Loading
Loading
+63 −0
Original line number Original line Diff line number Diff line
STMicroelectronics Audio Digital Filter Sigma Delta modulators(DFSDM)

The DFSDM allows PDM microphones capture through SPI interface. The Audio
interface is seems as a sub block of the DFSDM device.
For details on DFSDM bindings refer to ../iio/adc/st,stm32-dfsdm-adc.txt

Required properties:
  - compatible: "st,stm32h7-dfsdm-dai".

  - #sound-dai-cells : Must be equal to 0

  - io-channels : phandle to iio dfsdm instance node.

Example of a sound card using audio DFSDM node.

	sound_card {
		compatible = "audio-graph-card";

		dais = <&cpu_port>;
	};

	dfsdm: dfsdm@40017000 {
		compatible = "st,stm32h7-dfsdm";
		reg = <0x40017000 0x400>;
		clocks = <&rcc DFSDM1_CK>;
		clock-names = "dfsdm";
		#interrupt-cells = <1>;
		#address-cells = <1>;
		#size-cells = <0>;

		dfsdm_adc0: filter@0 {
			compatible = "st,stm32-dfsdm-dmic";
			reg = <0>;
			interrupts = <110>;
			dmas = <&dmamux1 101 0x400 0x00>;
			dma-names = "rx";
			st,adc-channels = <1>;
			st,adc-channel-names = "dmic0";
			st,adc-channel-types = "SPI_R";
			st,adc-channel-clk-src = "CLKOUT";
			st,filter-order = <5>;

			dfsdm_dai0: dfsdm-dai {
				compatible = "st,stm32h7-dfsdm-dai";
				#sound-dai-cells = <0>;
				io-channels = <&dfsdm_adc0 0>;
				cpu_port: port {
				dfsdm_endpoint: endpoint {
					remote-endpoint = <&dmic0_endpoint>;
				};
			};
		};
	};

	dmic0: dmic@0 {
		compatible = "dmic-codec";
		#sound-dai-cells = <0>;
		port {
			dmic0_endpoint: endpoint {
				remote-endpoint = <&dfsdm_endpoint>;
			};
		};
	};