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