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:
856ba98acSGeert Uytterhoeven				    - "renesas,rcar_sound-r8a7790" (R-Car H2)
956ba98acSGeert Uytterhoeven				    - "renesas,rcar_sound-r8a7791" (R-Car M2-W)
1090e8e50fSKuninori Morimoto- reg				: Should contain the register physical address.
1190e8e50fSKuninori Morimoto				  required register is
1290e8e50fSKuninori Morimoto				   SRU/ADG/SSI      if generation1
1390e8e50fSKuninori Morimoto				   SRU/ADG/SSIU/SSI if generation2
148bab0dd5SKuninori Morimoto- rcar_sound,ssi		: Should contain SSI feature.
158bab0dd5SKuninori Morimoto				  The number of SSI subnode should be same as HW.
168bab0dd5SKuninori Morimoto				  see below for detail.
178bab0dd5SKuninori Morimoto- rcar_sound,src		: Should contain SRC feature.
188bab0dd5SKuninori Morimoto				  The number of SRC subnode should be same as HW.
198bab0dd5SKuninori Morimoto				  see below for detail.
2034cb6123SKuninori Morimoto- rcar_sound,dvc		: Should contain DVC feature.
2134cb6123SKuninori Morimoto				  The number of DVC subnode should be same as HW.
2234cb6123SKuninori Morimoto				  see below for detail.
238bab0dd5SKuninori Morimoto- rcar_sound,dai		: DAI contents.
248bab0dd5SKuninori Morimoto				  The number of DAI subnode should be same as HW.
258bab0dd5SKuninori Morimoto				  see below for detail.
2690e8e50fSKuninori Morimoto
2790e8e50fSKuninori MorimotoSSI subnode properties:
2890e8e50fSKuninori Morimoto- interrupts			: Should contain SSI interrupt for PIO transfer
2990e8e50fSKuninori Morimoto- shared-pin			: if shared clock pin
30199e7688SKuninori Morimoto- pio-transfer			: use PIO transfer mode
31d9288d0bSKuninori Morimoto- no-busif			: BUSIF is not ussed when [mem -> SSI] via DMA case
32e80a2fb1SKuninori Morimoto- dma				: Should contain Audio DMAC entry
33e80a2fb1SKuninori Morimoto- dma-names			: SSI  case "rx"  (=playback), "tx"  (=capture)
34e80a2fb1SKuninori Morimoto				  SSIU case "rxu" (=playback), "txu" (=capture)
3590e8e50fSKuninori Morimoto
368bab0dd5SKuninori MorimotoSRC subnode properties:
37e80a2fb1SKuninori Morimoto- dma				: Should contain Audio DMAC entry
38e80a2fb1SKuninori Morimoto- dma-names			: "rx" (=playback), "tx" (=capture)
39e80a2fb1SKuninori Morimoto
40e80a2fb1SKuninori MorimotoDVC subnode properties:
41e80a2fb1SKuninori Morimoto- dma				: Should contain Audio DMAC entry
42e80a2fb1SKuninori Morimoto- dma-names			: "tx" (=playback/capture)
438bab0dd5SKuninori Morimoto
4490e8e50fSKuninori MorimotoDAI subnode properties:
4590e8e50fSKuninori Morimoto- playback			: list of playback modules
4690e8e50fSKuninori Morimoto- capture			: list of capture  modules
4790e8e50fSKuninori Morimoto
4890e8e50fSKuninori MorimotoExample:
4990e8e50fSKuninori Morimoto
5056ba98acSGeert Uytterhoevenrcar_sound: rcar_sound@ec500000 {
5190e8e50fSKuninori Morimoto	#sound-dai-cells = <1>;
5256ba98acSGeert Uytterhoeven	compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2";
5390e8e50fSKuninori Morimoto	reg =	<0 0xec500000 0 0x1000>, /* SCU */
5490e8e50fSKuninori Morimoto		<0 0xec5a0000 0 0x100>,  /* ADG */
5590e8e50fSKuninori Morimoto		<0 0xec540000 0 0x1000>, /* SSIU */
5690e8e50fSKuninori Morimoto		<0 0xec541000 0 0x1280>; /* SSI */
5790e8e50fSKuninori Morimoto
58bb02714fSKuninori Morimoto	clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>,
59bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>,
60bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>,
61bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>,
62bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>,
63bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>,
64bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>,
65bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>,
66bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>,
67bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>,
68bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>,
69bb02714fSKuninori Morimoto		<&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>,
70bb02714fSKuninori Morimoto		<&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;
71bb02714fSKuninori Morimoto	clock-names = "ssi-all",
72bb02714fSKuninori Morimoto			"ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5",
73bb02714fSKuninori Morimoto			"ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
74bb02714fSKuninori Morimoto			"src.9", "src.8", "src.7", "src.6", "src.5",
75bb02714fSKuninori Morimoto			"src.4", "src.3", "src.2", "src.1", "src.0",
76bb02714fSKuninori Morimoto			"dvc.0", "dvc.1",
77bb02714fSKuninori Morimoto			"clk_a", "clk_b", "clk_c", "clk_i";
78bb02714fSKuninori Morimoto
7934cb6123SKuninori Morimoto	rcar_sound,dvc {
80e80a2fb1SKuninori Morimoto		dvc0: dvc@0 {
81e80a2fb1SKuninori Morimoto			dmas = <&audma0 0xbc>;
82e80a2fb1SKuninori Morimoto			dma-names = "tx";
83e80a2fb1SKuninori Morimoto		};
84e80a2fb1SKuninori Morimoto		dvc1: dvc@1 {
85e80a2fb1SKuninori Morimoto			dmas = <&audma0 0xbe>;
86e80a2fb1SKuninori Morimoto			dma-names = "tx";
87e80a2fb1SKuninori Morimoto		};
8834cb6123SKuninori Morimoto	};
8934cb6123SKuninori Morimoto
9090e8e50fSKuninori Morimoto	rcar_sound,src {
915cf4f686SKuninori Morimoto		src0: src@0 {
925cf4f686SKuninori Morimoto			interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
93e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x85>, <&audma1 0x9a>;
94e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
955cf4f686SKuninori Morimoto		};
965cf4f686SKuninori Morimoto		src1: src@1 {
975cf4f686SKuninori Morimoto			interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>;
98e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x87>, <&audma1 0x9c>;
99e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1005cf4f686SKuninori Morimoto		};
1015cf4f686SKuninori Morimoto		src2: src@2 {
1025cf4f686SKuninori Morimoto			interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>;
103e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x89>, <&audma1 0x9e>;
104e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1055cf4f686SKuninori Morimoto		};
1065cf4f686SKuninori Morimoto		src3: src@3 {
1075cf4f686SKuninori Morimoto			interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>;
108e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x8b>, <&audma1 0xa0>;
109e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1105cf4f686SKuninori Morimoto		};
1115cf4f686SKuninori Morimoto		src4: src@4 {
1125cf4f686SKuninori Morimoto			interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>;
113e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x8d>, <&audma1 0xb0>;
114e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1155cf4f686SKuninori Morimoto		};
1165cf4f686SKuninori Morimoto		src5: src@5 {
1175cf4f686SKuninori Morimoto			interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>;
118e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x8f>, <&audma1 0xb2>;
119e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1205cf4f686SKuninori Morimoto		};
1215cf4f686SKuninori Morimoto		src6: src@6 {
1225cf4f686SKuninori Morimoto			interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>;
123e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x91>, <&audma1 0xb4>;
124e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1255cf4f686SKuninori Morimoto		};
1265cf4f686SKuninori Morimoto		src7: src@7 {
1275cf4f686SKuninori Morimoto			interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>;
128e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x93>, <&audma1 0xb6>;
129e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1305cf4f686SKuninori Morimoto		};
1315cf4f686SKuninori Morimoto		src8: src@8 {
1325cf4f686SKuninori Morimoto			interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>;
133e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x95>, <&audma1 0xb8>;
134e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1355cf4f686SKuninori Morimoto		};
1365cf4f686SKuninori Morimoto		src9: src@9 {
1375cf4f686SKuninori Morimoto			interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>;
138e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x97>, <&audma1 0xba>;
139e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx";
1405cf4f686SKuninori Morimoto		};
14190e8e50fSKuninori Morimoto	};
14290e8e50fSKuninori Morimoto
14390e8e50fSKuninori Morimoto	rcar_sound,ssi {
14490e8e50fSKuninori Morimoto		ssi0: ssi@0 {
14590e8e50fSKuninori Morimoto			interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>;
146e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
147e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
14890e8e50fSKuninori Morimoto		};
14990e8e50fSKuninori Morimoto		ssi1: ssi@1 {
15090e8e50fSKuninori Morimoto			interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>;
151e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
152e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
15390e8e50fSKuninori Morimoto		};
15490e8e50fSKuninori Morimoto		ssi2: ssi@2 {
15590e8e50fSKuninori Morimoto			interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>;
156e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
157e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
15890e8e50fSKuninori Morimoto		};
15990e8e50fSKuninori Morimoto		ssi3: ssi@3 {
16090e8e50fSKuninori Morimoto			interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>;
161e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
162e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
16390e8e50fSKuninori Morimoto		};
16490e8e50fSKuninori Morimoto		ssi4: ssi@4 {
16590e8e50fSKuninori Morimoto			interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>;
166e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
167e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
16890e8e50fSKuninori Morimoto		};
16990e8e50fSKuninori Morimoto		ssi5: ssi@5 {
17090e8e50fSKuninori Morimoto			interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>;
171e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
172e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
17390e8e50fSKuninori Morimoto		};
17490e8e50fSKuninori Morimoto		ssi6: ssi@6 {
17590e8e50fSKuninori Morimoto			interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>;
176e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
177e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
17890e8e50fSKuninori Morimoto		};
17990e8e50fSKuninori Morimoto		ssi7: ssi@7 {
18090e8e50fSKuninori Morimoto			interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>;
181e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
182e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
18390e8e50fSKuninori Morimoto		};
18490e8e50fSKuninori Morimoto		ssi8: ssi@8 {
18590e8e50fSKuninori Morimoto			interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>;
186e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
187e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
18890e8e50fSKuninori Morimoto		};
18990e8e50fSKuninori Morimoto		ssi9: ssi@9 {
19090e8e50fSKuninori Morimoto			interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>;
191e80a2fb1SKuninori Morimoto			dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
192e80a2fb1SKuninori Morimoto			dma-names = "rx", "tx", "rxu", "txu";
19390e8e50fSKuninori Morimoto		};
19490e8e50fSKuninori Morimoto	};
19590e8e50fSKuninori Morimoto
19690e8e50fSKuninori Morimoto	rcar_sound,dai {
19790e8e50fSKuninori Morimoto		dai0 {
19890e8e50fSKuninori Morimoto			playback = <&ssi5 &src5>;
19990e8e50fSKuninori Morimoto			capture  = <&ssi6>;
20090e8e50fSKuninori Morimoto		};
20190e8e50fSKuninori Morimoto		dai1 {
20290e8e50fSKuninori Morimoto			playback = <&ssi3>;
20390e8e50fSKuninori Morimoto		};
20490e8e50fSKuninori Morimoto		dai2 {
20590e8e50fSKuninori Morimoto			capture  = <&ssi4>;
20690e8e50fSKuninori Morimoto		};
20790e8e50fSKuninori Morimoto		dai3 {
20890e8e50fSKuninori Morimoto			playback = <&ssi7>;
20990e8e50fSKuninori Morimoto		};
21090e8e50fSKuninori Morimoto		dai4 {
21190e8e50fSKuninori Morimoto			capture  = <&ssi8>;
21290e8e50fSKuninori Morimoto		};
21390e8e50fSKuninori Morimoto	};
21490e8e50fSKuninori Morimoto};
215