xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/sound/st,stm32-adfsdm.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSTMicroelectronics Audio Digital Filter Sigma Delta modulators(DFSDM)
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunThe DFSDM allows PDM microphones capture through SPI interface. The Audio
4*4882a593Smuzhiyuninterface is seems as a sub block of the DFSDM device.
5*4882a593SmuzhiyunFor details on DFSDM bindings refer to ../iio/adc/st,stm32-dfsdm-adc.txt
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunRequired properties:
8*4882a593Smuzhiyun  - compatible: "st,stm32h7-dfsdm-dai".
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun  - #sound-dai-cells : Must be equal to 0
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun  - io-channels : phandle to iio dfsdm instance node.
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunExample of a sound card using audio DFSDM node.
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	sound_card {
17*4882a593Smuzhiyun		compatible = "audio-graph-card";
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun		dais = <&cpu_port>;
20*4882a593Smuzhiyun	};
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun	dfsdm: dfsdm@40017000 {
23*4882a593Smuzhiyun		compatible = "st,stm32h7-dfsdm";
24*4882a593Smuzhiyun		reg = <0x40017000 0x400>;
25*4882a593Smuzhiyun		clocks = <&rcc DFSDM1_CK>;
26*4882a593Smuzhiyun		clock-names = "dfsdm";
27*4882a593Smuzhiyun		#interrupt-cells = <1>;
28*4882a593Smuzhiyun		#address-cells = <1>;
29*4882a593Smuzhiyun		#size-cells = <0>;
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun		dfsdm_adc0: filter@0 {
32*4882a593Smuzhiyun			compatible = "st,stm32-dfsdm-dmic";
33*4882a593Smuzhiyun			reg = <0>;
34*4882a593Smuzhiyun			interrupts = <110>;
35*4882a593Smuzhiyun			dmas = <&dmamux1 101 0x400 0x00>;
36*4882a593Smuzhiyun			dma-names = "rx";
37*4882a593Smuzhiyun			st,adc-channels = <1>;
38*4882a593Smuzhiyun			st,adc-channel-names = "dmic0";
39*4882a593Smuzhiyun			st,adc-channel-types = "SPI_R";
40*4882a593Smuzhiyun			st,adc-channel-clk-src = "CLKOUT";
41*4882a593Smuzhiyun			st,filter-order = <5>;
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun			dfsdm_dai0: dfsdm-dai {
44*4882a593Smuzhiyun				compatible = "st,stm32h7-dfsdm-dai";
45*4882a593Smuzhiyun				#sound-dai-cells = <0>;
46*4882a593Smuzhiyun				io-channels = <&dfsdm_adc0 0>;
47*4882a593Smuzhiyun				cpu_port: port {
48*4882a593Smuzhiyun				dfsdm_endpoint: endpoint {
49*4882a593Smuzhiyun					remote-endpoint = <&dmic0_endpoint>;
50*4882a593Smuzhiyun				};
51*4882a593Smuzhiyun			};
52*4882a593Smuzhiyun		};
53*4882a593Smuzhiyun	};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun	dmic0: dmic@0 {
56*4882a593Smuzhiyun		compatible = "dmic-codec";
57*4882a593Smuzhiyun		#sound-dai-cells = <0>;
58*4882a593Smuzhiyun		port {
59*4882a593Smuzhiyun			dmic0_endpoint: endpoint {
60*4882a593Smuzhiyun				remote-endpoint = <&dfsdm_endpoint>;
61*4882a593Smuzhiyun			};
62*4882a593Smuzhiyun		};
63*4882a593Smuzhiyun	};
64