190e8e50fSKuninori MorimotoRenesas R-Car sound
290e8e50fSKuninori Morimoto
390e8e50fSKuninori MorimotoRequired properties:
456ba98acSGeert Uytterhoeven- compatible			: "renesas,rcar_sound-<soctype>", fallbacks
556ba98acSGeert Uytterhoeven				  "renesas,rcar_sound-gen1" if generation1, and
690e8e50fSKuninori Morimoto				  "renesas,rcar_sound-gen2" if generation2
756ba98acSGeert Uytterhoeven				  Examples with soctypes are:
87667f716SGeert Uytterhoeven				    - "renesas,rcar_sound-r8a7778" (R-Car M1A)
956ba98acSGeert Uytterhoeven				    - "renesas,rcar_sound-r8a7790" (R-Car H2)
1056ba98acSGeert Uytterhoeven				    - "renesas,rcar_sound-r8a7791" (R-Car M2-W)
1190e8e50fSKuninori Morimoto- reg				: Should contain the register physical address.
1290e8e50fSKuninori Morimoto				  required register is
1390e8e50fSKuninori Morimoto				   SRU/ADG/SSI      if generation1
1490e8e50fSKuninori Morimoto				   SRU/ADG/SSIU/SSI if generation2
158bab0dd5SKuninori Morimoto- rcar_sound,ssi		: Should contain SSI feature.
168bab0dd5SKuninori Morimoto				  The number of SSI subnode should be same as HW.
178bab0dd5SKuninori Morimoto				  see below for detail.
188bab0dd5SKuninori Morimoto- rcar_sound,src		: Should contain SRC feature.
198bab0dd5SKuninori Morimoto				  The number of SRC subnode should be same as HW.
208bab0dd5SKuninori Morimoto				  see below for detail.
219269e3c3SKuninori Morimoto- rcar_sound,ctu		: Should contain CTU feature.
229269e3c3SKuninori Morimoto				  The number of CTU subnode should be same as HW.
239269e3c3SKuninori Morimoto				  see below for detail.
2470fb1052SKuninori Morimoto- rcar_sound,mix		: Should contain MIX feature.
2570fb1052SKuninori Morimoto				  The number of MIX subnode should be same as HW.
2670fb1052SKuninori Morimoto				  see below for detail.
2734cb6123SKuninori Morimoto- rcar_sound,dvc		: Should contain DVC feature.
2834cb6123SKuninori Morimoto				  The number of DVC subnode should be same as HW.
2934cb6123SKuninori Morimoto				  see below for detail.
308bab0dd5SKuninori Morimoto- rcar_sound,dai		: DAI contents.
318bab0dd5SKuninori Morimoto				  The number of DAI subnode should be same as HW.
328bab0dd5SKuninori Morimoto				  see below for detail.
3390e8e50fSKuninori Morimoto
3490e8e50fSKuninori MorimotoSSI subnode properties:
3590e8e50fSKuninori Morimoto- interrupts			: Should contain SSI interrupt for PIO transfer
3690e8e50fSKuninori Morimoto- shared-pin			: if shared clock pin
37199e7688SKuninori Morimoto- pio-transfer			: use PIO transfer mode
38d9288d0bSKuninori Morimoto- no-busif			: BUSIF is not ussed when [mem -> SSI] via DMA case
39e80a2fb1SKuninori Morimoto- dma				: Should contain Audio DMAC entry
40e80a2fb1SKuninori Morimoto- dma-names			: SSI  case "rx"  (=playback), "tx"  (=capture)
41e80a2fb1SKuninori Morimoto				  SSIU case "rxu" (=playback), "txu" (=capture)
4290e8e50fSKuninori Morimoto
438bab0dd5SKuninori MorimotoSRC subnode properties:
44e80a2fb1SKuninori Morimoto- dma				: Should contain Audio DMAC entry
45e80a2fb1SKuninori Morimoto- dma-names			: "rx" (=playback), "tx" (=capture)
46e80a2fb1SKuninori Morimoto
47e80a2fb1SKuninori MorimotoDVC subnode properties:
48e80a2fb1SKuninori Morimoto- dma				: Should contain Audio DMAC entry
49e80a2fb1SKuninori Morimoto- dma-names			: "tx" (=playback/capture)
508bab0dd5SKuninori Morimoto
5190e8e50fSKuninori MorimotoDAI subnode properties:
5290e8e50fSKuninori Morimoto- playback			: list of playback modules
5390e8e50fSKuninori Morimoto- capture			: list of capture  modules
5490e8e50fSKuninori Morimoto
5590e8e50fSKuninori MorimotoExample:
5690e8e50fSKuninori Morimoto
57596f74ecSGeert Uytterhoevenrcar_sound: sound@ec500000 {
5890e8e50fSKuninori Morimoto	#sound-dai-cells = <1>;
5956ba98acSGeert Uytterhoeven	compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2";
6090e8e50fSKuninori Morimoto	reg =	<0 0xec500000 0 0x1000>, /* SCU */
6190e8e50fSKuninori Morimoto		<0 0xec5a0000 0 0x100>,  /* ADG */
6290e8e50fSKuninori Morimoto		<0 0xec540000 0 0x1000>, /* SSIU */
63d3b1c0baSKuninori Morimoto		<0 0xec541000 0 0x1280>, /* SSI */
64d3b1c0baSKuninori Morimoto		<0 0xec740000 0 0x200>;  /* Audio DMAC peri peri*/
65d3b1c0baSKuninori Morimoto	reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
6690e8e50fSKuninori Morimoto
67bb02714fSKuninori Morimoto	clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>,
68bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>,
69bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>,
70bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>,
71bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>,
72bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>,
73bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>,
74bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>,
75bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>,
76bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>,
77bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>,
78bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>,
79bb02714fSKuninori Morimoto		<&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;
80bb02714fSKuninori Morimoto	clock-names = "ssi-all",
81bb02714fSKuninori Morimoto			"ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
82bb02714fSKuninori Morimoto			"ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
83bb02714fSKuninori Morimoto			"src.9", "src.8", "src.7", "src.6", "src.5",
84bb02714fSKuninori Morimoto			"src.4", "src.3", "src.2", "src.1", "src.0",
85bb02714fSKuninori Morimoto			"dvc.0", "dvc.1",
86bb02714fSKuninori Morimoto			"clk_a", "clk_b", "clk_c", "clk_i";
87bb02714fSKuninori Morimoto
8834cb6123SKuninori Morimoto	rcar_sound,dvc {
89e80a2fb1SKuninori Morimoto		dvc0: dvc@0 {
90e80a2fb1SKuninori Morimoto			dmas = <&audma0 0xbc>;
91e80a2fb1SKuninori Morimoto			dma-names = "tx";
92e80a2fb1SKuninori Morimoto		};
93e80a2fb1SKuninori Morimoto		dvc1: dvc@1 {
94e80a2fb1SKuninori Morimoto			dmas = <&audma0 0xbe>;
95e80a2fb1SKuninori Morimoto			dma-names = "tx";
96e80a2fb1SKuninori Morimoto		};
9734cb6123SKuninori Morimoto	};
9834cb6123SKuninori Morimoto
9970fb1052SKuninori Morimoto	rcar_sound,mix {
10070fb1052SKuninori Morimoto		mix0: mix@0 { };
10170fb1052SKuninori Morimoto		mix1: mix@1 { };
10270fb1052SKuninori Morimoto	};
10370fb1052SKuninori Morimoto
1049269e3c3SKuninori Morimoto	rcar_sound,ctu {
1059269e3c3SKuninori Morimoto		ctu00: ctu@0 { };
1069269e3c3SKuninori Morimoto		ctu01: ctu@1 { };
1079269e3c3SKuninori Morimoto		ctu02: ctu@2 { };
1089269e3c3SKuninori Morimoto		ctu03: ctu@3 { };
1099269e3c3SKuninori Morimoto		ctu10: ctu@4 { };
1109269e3c3SKuninori Morimoto		ctu11: ctu@5 { };
1119269e3c3SKuninori Morimoto		ctu12: ctu@6 { };
1129269e3c3SKuninori Morimoto		ctu13: ctu@7 { };
1139269e3c3SKuninori Morimoto	};
1149269e3c3SKuninori Morimoto
11590e8e50fSKuninori Morimoto	rcar_sound,src {
1165cf4f686SKuninori Morimoto		src0: src@0 {
1175cf4f686SKuninori Morimoto			interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
118e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x85>, <&audma1 0x9a>;
119e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1205cf4f686SKuninori Morimoto		};
1215cf4f686SKuninori Morimoto		src1: src@1 {
1225cf4f686SKuninori Morimoto			interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;
123e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x87>, <&audma1 0x9c>;
124e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1255cf4f686SKuninori Morimoto		};
1265cf4f686SKuninori Morimoto		src2: src@2 {
1275cf4f686SKuninori Morimoto			interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;
128e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x89>, <&audma1 0x9e>;
129e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1305cf4f686SKuninori Morimoto		};
1315cf4f686SKuninori Morimoto		src3: src@3 {
1325cf4f686SKuninori Morimoto			interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;
133e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x8b>, <&audma1 0xa0>;
134e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1355cf4f686SKuninori Morimoto		};
1365cf4f686SKuninori Morimoto		src4: src@4 {
1375cf4f686SKuninori Morimoto			interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;
138e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x8d>, <&audma1 0xb0>;
139e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1405cf4f686SKuninori Morimoto		};
1415cf4f686SKuninori Morimoto		src5: src@5 {
1425cf4f686SKuninori Morimoto			interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;
143e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x8f>, <&audma1 0xb2>;
144e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1455cf4f686SKuninori Morimoto		};
1465cf4f686SKuninori Morimoto		src6: src@6 {
1475cf4f686SKuninori Morimoto			interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;
148e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x91>, <&audma1 0xb4>;
149e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1505cf4f686SKuninori Morimoto		};
1515cf4f686SKuninori Morimoto		src7: src@7 {
1525cf4f686SKuninori Morimoto			interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;
153e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x93>, <&audma1 0xb6>;
154e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1555cf4f686SKuninori Morimoto		};
1565cf4f686SKuninori Morimoto		src8: src@8 {
1575cf4f686SKuninori Morimoto			interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;
158e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x95>, <&audma1 0xb8>;
159e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1605cf4f686SKuninori Morimoto		};
1615cf4f686SKuninori Morimoto		src9: src@9 {
1625cf4f686SKuninori Morimoto			interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;
163e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x97>, <&audma1 0xba>;
164e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1655cf4f686SKuninori Morimoto		};
16690e8e50fSKuninori Morimoto	};
16790e8e50fSKuninori Morimoto
16890e8e50fSKuninori Morimoto	rcar_sound,ssi {
16990e8e50fSKuninori Morimoto		ssi0: ssi@0 {
17090e8e50fSKuninori Morimoto			interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
171e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
172e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
17390e8e50fSKuninori Morimoto		};
17490e8e50fSKuninori Morimoto		ssi1: ssi@1 {
17590e8e50fSKuninori Morimoto			interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
176e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
177e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
17890e8e50fSKuninori Morimoto		};
17990e8e50fSKuninori Morimoto		ssi2: ssi@2 {
18090e8e50fSKuninori Morimoto			interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;
181e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
182e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
18390e8e50fSKuninori Morimoto		};
18490e8e50fSKuninori Morimoto		ssi3: ssi@3 {
18590e8e50fSKuninori Morimoto			interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;
186e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
187e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
18890e8e50fSKuninori Morimoto		};
18990e8e50fSKuninori Morimoto		ssi4: ssi@4 {
19090e8e50fSKuninori Morimoto			interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;
191e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
192e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
19390e8e50fSKuninori Morimoto		};
19490e8e50fSKuninori Morimoto		ssi5: ssi@5 {
19590e8e50fSKuninori Morimoto			interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;
196e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
197e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
19890e8e50fSKuninori Morimoto		};
19990e8e50fSKuninori Morimoto		ssi6: ssi@6 {
20090e8e50fSKuninori Morimoto			interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;
201e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
202e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
20390e8e50fSKuninori Morimoto		};
20490e8e50fSKuninori Morimoto		ssi7: ssi@7 {
20590e8e50fSKuninori Morimoto			interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;
206e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
207e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
20890e8e50fSKuninori Morimoto		};
20990e8e50fSKuninori Morimoto		ssi8: ssi@8 {
21090e8e50fSKuninori Morimoto			interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
211e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
212e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
21390e8e50fSKuninori Morimoto		};
21490e8e50fSKuninori Morimoto		ssi9: ssi@9 {
21590e8e50fSKuninori Morimoto			interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
216e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
217e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
21890e8e50fSKuninori Morimoto		};
21990e8e50fSKuninori Morimoto	};
22090e8e50fSKuninori Morimoto
22190e8e50fSKuninori Morimoto	rcar_sound,dai {
22290e8e50fSKuninori Morimoto		dai0 {
22390e8e50fSKuninori Morimoto			playback = <&ssi5 &src5>;
22490e8e50fSKuninori Morimoto			capture  = <&ssi6>;
22590e8e50fSKuninori Morimoto		};
22690e8e50fSKuninori Morimoto		dai1 {
22790e8e50fSKuninori Morimoto			playback = <&ssi3>;
22890e8e50fSKuninori Morimoto		};
22990e8e50fSKuninori Morimoto		dai2 {
23090e8e50fSKuninori Morimoto			capture  = <&ssi4>;
23190e8e50fSKuninori Morimoto		};
23290e8e50fSKuninori Morimoto		dai3 {
23390e8e50fSKuninori Morimoto			playback = <&ssi7>;
23490e8e50fSKuninori Morimoto		};
23590e8e50fSKuninori Morimoto		dai4 {
23690e8e50fSKuninori Morimoto			capture  = <&ssi8>;
23790e8e50fSKuninori Morimoto		};
23890e8e50fSKuninori Morimoto	};
23990e8e50fSKuninori Morimoto};
240