xref: /freebsd/sys/contrib/device-tree/src/arm64/renesas/ulcb-audio-graph-card.dtsi (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1cb7aa33aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2cb7aa33aSEmmanuel Vadot/*
3cb7aa33aSEmmanuel Vadot * Device Tree for ULCB + Audio Graph Card
4cb7aa33aSEmmanuel Vadot *
5cb7aa33aSEmmanuel Vadot * Copyright (C) 2022 Renesas Electronics Corp.
6cb7aa33aSEmmanuel Vadot */
7cb7aa33aSEmmanuel Vadot
8cb7aa33aSEmmanuel Vadot/*
9cb7aa33aSEmmanuel Vadot *	(A) CPU0 <-----> ak4613
10cb7aa33aSEmmanuel Vadot *	(B) CPU1  -----> HDMI
11cb7aa33aSEmmanuel Vadot *
12cb7aa33aSEmmanuel Vadot *	(A) aplay   -D plughw:0,0 xxx.wav
13cb7aa33aSEmmanuel Vadot *	(B) aplay   -D plughw:0,1 xxx.wav
14cb7aa33aSEmmanuel Vadot *
15cb7aa33aSEmmanuel Vadot *	(A) arecord -D plughw:0,0 xxx.wav
16cb7aa33aSEmmanuel Vadot */
17cb7aa33aSEmmanuel Vadot
18cb7aa33aSEmmanuel Vadot/ {
19cb7aa33aSEmmanuel Vadot	sound_card: sound {
20cb7aa33aSEmmanuel Vadot		compatible = "audio-graph-card";
21*84943d6fSEmmanuel Vadot		label = "snd-ulcb";
22cb7aa33aSEmmanuel Vadot
23*84943d6fSEmmanuel Vadot		dais = <&snd_ulcb1 /* (A) CPU0 <-> ak4613 */
24*84943d6fSEmmanuel Vadot			&snd_ulcb2 /* (B) CPU1  -> HDMI   */
25cb7aa33aSEmmanuel Vadot		>;
26cb7aa33aSEmmanuel Vadot	};
27cb7aa33aSEmmanuel Vadot};
28cb7aa33aSEmmanuel Vadot
29cb7aa33aSEmmanuel Vadot&ak4613 {
30cb7aa33aSEmmanuel Vadot	#sound-dai-cells = <0>;
31cb7aa33aSEmmanuel Vadot
32cb7aa33aSEmmanuel Vadot	port {
33cb7aa33aSEmmanuel Vadot		/*
34cb7aa33aSEmmanuel Vadot		 * (A) CPU0 <-> ak4613
35cb7aa33aSEmmanuel Vadot		 */
36cb7aa33aSEmmanuel Vadot		ak4613_endpoint: endpoint {
37cb7aa33aSEmmanuel Vadot			remote-endpoint = <&rsnd_for_ak4613>;
38cb7aa33aSEmmanuel Vadot		};
39cb7aa33aSEmmanuel Vadot	};
40cb7aa33aSEmmanuel Vadot};
41cb7aa33aSEmmanuel Vadot
42cb7aa33aSEmmanuel Vadot&hdmi0 {
43cb7aa33aSEmmanuel Vadot	ports {
44cb7aa33aSEmmanuel Vadot		port@2 {
45cb7aa33aSEmmanuel Vadot			/*
46cb7aa33aSEmmanuel Vadot			 * (B) CPU1 -> HDMI
47cb7aa33aSEmmanuel Vadot			 */
48cb7aa33aSEmmanuel Vadot			dw_hdmi0_snd_in: endpoint {
49cb7aa33aSEmmanuel Vadot				remote-endpoint = <&rsnd_for_hdmi>;
50cb7aa33aSEmmanuel Vadot			};
51cb7aa33aSEmmanuel Vadot		};
52cb7aa33aSEmmanuel Vadot	};
53cb7aa33aSEmmanuel Vadot};
54cb7aa33aSEmmanuel Vadot
55cb7aa33aSEmmanuel Vadot&rcar_sound {
56cb7aa33aSEmmanuel Vadot	#address-cells = <1>;
57cb7aa33aSEmmanuel Vadot	#size-cells = <0>;
58*84943d6fSEmmanuel Vadot
59*84943d6fSEmmanuel Vadot	ports@0 {
60*84943d6fSEmmanuel Vadot		#address-cells = <1>;
61*84943d6fSEmmanuel Vadot		#size-cells = <0>;
62*84943d6fSEmmanuel Vadot		reg = <0>;
63*84943d6fSEmmanuel Vadot
64*84943d6fSEmmanuel Vadot		snd_ulcb1: port@0 {
65cb7aa33aSEmmanuel Vadot			/*
66cb7aa33aSEmmanuel Vadot			 * (A) CPU0 <-> ak4613
67cb7aa33aSEmmanuel Vadot			 */
68cb7aa33aSEmmanuel Vadot			reg = <0>;
69cb7aa33aSEmmanuel Vadot			rsnd_for_ak4613: endpoint {
70cb7aa33aSEmmanuel Vadot				remote-endpoint = <&ak4613_endpoint>;
71cb7aa33aSEmmanuel Vadot				bitclock-master;
72cb7aa33aSEmmanuel Vadot				frame-master;
73cb7aa33aSEmmanuel Vadot				playback = <&ssi0>, <&src0>, <&dvc0>;
74cb7aa33aSEmmanuel Vadot				capture  = <&ssi1>, <&src1>, <&dvc1>;
75cb7aa33aSEmmanuel Vadot			};
76cb7aa33aSEmmanuel Vadot		};
77*84943d6fSEmmanuel Vadot		snd_ulcb2: port@1 {
78cb7aa33aSEmmanuel Vadot			/*
79cb7aa33aSEmmanuel Vadot			 * (B) CPU1 -> HDMI
80cb7aa33aSEmmanuel Vadot			 */
81cb7aa33aSEmmanuel Vadot			reg = <1>;
82cb7aa33aSEmmanuel Vadot			rsnd_for_hdmi: endpoint {
83cb7aa33aSEmmanuel Vadot				remote-endpoint = <&dw_hdmi0_snd_in>;
84cb7aa33aSEmmanuel Vadot				bitclock-master;
85cb7aa33aSEmmanuel Vadot				frame-master;
86cb7aa33aSEmmanuel Vadot				playback = <&ssi2>;
87cb7aa33aSEmmanuel Vadot			};
88cb7aa33aSEmmanuel Vadot		};
89cb7aa33aSEmmanuel Vadot	};
90cb7aa33aSEmmanuel Vadot};
91