162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Device Tree for ULCB + Audio Graph Card2 (MIX + TDM Split) 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2022 Renesas Electronics Corp. 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci/* 962306a36Sopenharmony_ci * Note: 1062306a36Sopenharmony_ci * The HDMI output is ignored due to the limited number of subdevices 1162306a36Sopenharmony_ci * 1262306a36Sopenharmony_ci * (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0) 1362306a36Sopenharmony_ci * (B) CPU1 (2ch) --/ (MIX-1) 1462306a36Sopenharmony_ci * 1562306a36Sopenharmony_ci * (A) aplay -D plughw:0,0 xxx.wav 1662306a36Sopenharmony_ci * (B) aplay -D plughw:0,1 xxx.wav 1762306a36Sopenharmony_ci * 1862306a36Sopenharmony_ci * (A) arecord -D plughw:0,0 xxx.wav 1962306a36Sopenharmony_ci */ 2062306a36Sopenharmony_ci/ { 2162306a36Sopenharmony_ci sound_card: sound { 2262306a36Sopenharmony_ci compatible = "audio-graph-card2"; 2362306a36Sopenharmony_ci label = "rcar-sound"; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci routing = "ak4613 Playback", "DAI0 Playback", 2662306a36Sopenharmony_ci "ak4613 Playback", "DAI1 Playback", 2762306a36Sopenharmony_ci "DAI0 Capture", "ak4613 Capture"; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci /delete-property/ dais; 3062306a36Sopenharmony_ci links = <&fe_a /* (A) CPU0 */ 3162306a36Sopenharmony_ci &fe_b /* (B) CPU1 */ 3262306a36Sopenharmony_ci &be_x /* (X) ak4613 */ 3362306a36Sopenharmony_ci >; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci dpcm { 3662306a36Sopenharmony_ci #address-cells = <1>; 3762306a36Sopenharmony_ci #size-cells = <0>; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci ports@0 { 4062306a36Sopenharmony_ci #address-cells = <1>; 4162306a36Sopenharmony_ci #size-cells = <0>; 4262306a36Sopenharmony_ci reg = <0>; 4362306a36Sopenharmony_ci /* 4462306a36Sopenharmony_ci * FE 4562306a36Sopenharmony_ci * (A) CPU0 (MIX-0) 4662306a36Sopenharmony_ci * (B) CPU1 (MIX-1) 4762306a36Sopenharmony_ci */ 4862306a36Sopenharmony_ci fe_a: port@0 { reg = <0>; fe_a_ep: endpoint { remote-endpoint = <&rsnd_a_ep>; }; }; 4962306a36Sopenharmony_ci fe_b: port@1 { reg = <1>; fe_b_ep: endpoint { remote-endpoint = <&rsnd_b_ep>; }; }; 5062306a36Sopenharmony_ci }; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci ports@1 { 5362306a36Sopenharmony_ci #address-cells = <1>; 5462306a36Sopenharmony_ci #size-cells = <0>; 5562306a36Sopenharmony_ci reg = <1>; 5662306a36Sopenharmony_ci /* 5762306a36Sopenharmony_ci * BE 5862306a36Sopenharmony_ci * (X) ak4613 5962306a36Sopenharmony_ci */ 6062306a36Sopenharmony_ci be_x: port@0 { reg = <0>; be_x_ep: endpoint { remote-endpoint = <&ak4613_x_ep>; }; }; 6162306a36Sopenharmony_ci }; 6262306a36Sopenharmony_ci }; 6362306a36Sopenharmony_ci }; 6462306a36Sopenharmony_ci}; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci&ak4613 { 6762306a36Sopenharmony_ci port { 6862306a36Sopenharmony_ci /* 6962306a36Sopenharmony_ci * (X) ak4613 7062306a36Sopenharmony_ci */ 7162306a36Sopenharmony_ci prefix = "ak4613"; 7262306a36Sopenharmony_ci convert-rate = <48000>; 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci ak4613_x_ep: endpoint { 7562306a36Sopenharmony_ci remote-endpoint = <&be_x_ep>; 7662306a36Sopenharmony_ci }; 7762306a36Sopenharmony_ci }; 7862306a36Sopenharmony_ci}; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci&rcar_sound { 8162306a36Sopenharmony_ci ports { 8262306a36Sopenharmony_ci #address-cells = <1>; 8362306a36Sopenharmony_ci #size-cells = <0>; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci /* 8662306a36Sopenharmony_ci * (A) CPU0 8762306a36Sopenharmony_ci */ 8862306a36Sopenharmony_ci port@0 { 8962306a36Sopenharmony_ci reg = <0>; 9062306a36Sopenharmony_ci rsnd_a_ep: endpoint { 9162306a36Sopenharmony_ci remote-endpoint = <&fe_a_ep>; 9262306a36Sopenharmony_ci bitclock-master; 9362306a36Sopenharmony_ci frame-master; 9462306a36Sopenharmony_ci playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; 9562306a36Sopenharmony_ci capture = <&ssi1 &src0 &dvc1>; 9662306a36Sopenharmony_ci }; 9762306a36Sopenharmony_ci }; 9862306a36Sopenharmony_ci /* 9962306a36Sopenharmony_ci * (B) CPU1 10062306a36Sopenharmony_ci */ 10162306a36Sopenharmony_ci port@1 { 10262306a36Sopenharmony_ci reg = <1>; 10362306a36Sopenharmony_ci rsnd_b_ep: endpoint { 10462306a36Sopenharmony_ci remote-endpoint = <&fe_b_ep>; 10562306a36Sopenharmony_ci bitclock-master; 10662306a36Sopenharmony_ci frame-master; 10762306a36Sopenharmony_ci playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; 10862306a36Sopenharmony_ci }; 10962306a36Sopenharmony_ci }; 11062306a36Sopenharmony_ci }; 11162306a36Sopenharmony_ci}; 112