Kernel-4.18.0-80.el8_st,stm32-adfs

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>;
        };
    };
};