18c2ecf20Sopenharmony_ciSTMicroelectronics Audio Digital Filter Sigma Delta modulators(DFSDM)
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThe DFSDM allows PDM microphones capture through SPI interface. The Audio
48c2ecf20Sopenharmony_ciinterface is seems as a sub block of the DFSDM device.
58c2ecf20Sopenharmony_ciFor details on DFSDM bindings refer to ../iio/adc/st,stm32-dfsdm-adc.txt
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciRequired properties:
88c2ecf20Sopenharmony_ci  - compatible: "st,stm32h7-dfsdm-dai".
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci  - #sound-dai-cells : Must be equal to 0
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci  - io-channels : phandle to iio dfsdm instance node.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ciExample of a sound card using audio DFSDM node.
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	sound_card {
178c2ecf20Sopenharmony_ci		compatible = "audio-graph-card";
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci		dais = <&cpu_port>;
208c2ecf20Sopenharmony_ci	};
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	dfsdm: dfsdm@40017000 {
238c2ecf20Sopenharmony_ci		compatible = "st,stm32h7-dfsdm";
248c2ecf20Sopenharmony_ci		reg = <0x40017000 0x400>;
258c2ecf20Sopenharmony_ci		clocks = <&rcc DFSDM1_CK>;
268c2ecf20Sopenharmony_ci		clock-names = "dfsdm";
278c2ecf20Sopenharmony_ci		#interrupt-cells = <1>;
288c2ecf20Sopenharmony_ci		#address-cells = <1>;
298c2ecf20Sopenharmony_ci		#size-cells = <0>;
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci		dfsdm_adc0: filter@0 {
328c2ecf20Sopenharmony_ci			compatible = "st,stm32-dfsdm-dmic";
338c2ecf20Sopenharmony_ci			reg = <0>;
348c2ecf20Sopenharmony_ci			interrupts = <110>;
358c2ecf20Sopenharmony_ci			dmas = <&dmamux1 101 0x400 0x00>;
368c2ecf20Sopenharmony_ci			dma-names = "rx";
378c2ecf20Sopenharmony_ci			st,adc-channels = <1>;
388c2ecf20Sopenharmony_ci			st,adc-channel-names = "dmic0";
398c2ecf20Sopenharmony_ci			st,adc-channel-types = "SPI_R";
408c2ecf20Sopenharmony_ci			st,adc-channel-clk-src = "CLKOUT";
418c2ecf20Sopenharmony_ci			st,filter-order = <5>;
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci			dfsdm_dai0: dfsdm-dai {
448c2ecf20Sopenharmony_ci				compatible = "st,stm32h7-dfsdm-dai";
458c2ecf20Sopenharmony_ci				#sound-dai-cells = <0>;
468c2ecf20Sopenharmony_ci				io-channels = <&dfsdm_adc0 0>;
478c2ecf20Sopenharmony_ci				cpu_port: port {
488c2ecf20Sopenharmony_ci				dfsdm_endpoint: endpoint {
498c2ecf20Sopenharmony_ci					remote-endpoint = <&dmic0_endpoint>;
508c2ecf20Sopenharmony_ci				};
518c2ecf20Sopenharmony_ci			};
528c2ecf20Sopenharmony_ci		};
538c2ecf20Sopenharmony_ci	};
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci	dmic0: dmic@0 {
568c2ecf20Sopenharmony_ci		compatible = "dmic-codec";
578c2ecf20Sopenharmony_ci		#sound-dai-cells = <0>;
588c2ecf20Sopenharmony_ci		port {
598c2ecf20Sopenharmony_ci			dmic0_endpoint: endpoint {
608c2ecf20Sopenharmony_ci				remote-endpoint = <&dfsdm_endpoint>;
618c2ecf20Sopenharmony_ci			};
628c2ecf20Sopenharmony_ci		};
638c2ecf20Sopenharmony_ci	};
64