summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt
blob: 864f5b00b031460c0db5295fab0d118159d507bb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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>;
			};
		};
	};