[PATCH v4 11/12] ASoC: add bindings for stm32 DFSDM filter

Rob Herring robh at kernel.org
Wed Nov 15 07:43:04 PST 2017


On Thu, Nov 09, 2017 at 11:12:33AM +0100, Arnaud Pouliquen wrote:
> Add bindings that describes audio settings to support
> Digital Filter for pulse density modulation(PDM) microphone.
> 
> Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen at st.com>
> ---
> V3 -> V4 changes:
> 	- Update to move on of_graph description.
> 	- Link to DFSDM IIO bindings.
> 
>  .../devicetree/bindings/sound/st,stm32-adfsdm.txt  | 63 ++++++++++++++++++++++
>  1 file changed, 63 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt
> 
> diff --git a/Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt b/Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt
> new file mode 100644
> index 0000000..75e298b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt
> @@ -0,0 +1,63 @@
> +STMicroelectronics audio DFSDM DT bindings
> +
> +This driver supports audio PDM microphone capture through Digital Filter format

Bindings aren't drivers.

> +Sigma Delta modulators (DFSDM).
> +
> +Required properties:
> +  - compatible: "st,stm32h7-dfsdm-dai".
> +
> +  - #sound-dai-cells : Must be equal to 0
> +
> +  - io-channels : phandle to iio dfsdm instance node.
> +		[See: ../iio/adc/st,stm32-dfsdm-adc.txt for DFSDM options]
> +
> +Example of a sound card using audio DFSDM node.
> +
> +	sound_card {
> +		compatible = "audio-graph-card";
> +
> +		dais = <&cpu_port>;
> +	};
> +
> +	dfsdm: dfsdm at 40017000 {
> +		compatible = "st,stm32h7-dfsdm";
> +		reg = <0x40017000 0x400>;
> +		clocks = <&rcc DFSDM1_CK>;
> +		clock-names = "dfsdm";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		dfsdm_adc0: dfsdm-adc at 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 at 0 {

Unit address without reg property is not valid. Building your dtb with 
W=2 will tell you this.

Need a space after the ':'.

Should be a child of dfsdm?

> +		compatible = "st,stm32h7-dfsdm-dai";
> +		#sound-dai-cells = <0>;
> +		io-channels = <&dfsdm_adc0 0>;

It doesn't seem like this is an actual h/w block. Why can't 'dais' point 
directly to the ADC?

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



More information about the linux-arm-kernel mailing list