115ec87e0SKuninori Morimoto// SPDX-License-Identifier: GPL-2.0 215ec87e0SKuninori Morimoto/* 315ec87e0SKuninori Morimoto * Device Tree for ULCB + Audio Graph Card2 (MIX + TDM Split) 415ec87e0SKuninori Morimoto * 515ec87e0SKuninori Morimoto * Copyright (C) 2022 Renesas Electronics Corp. 615ec87e0SKuninori Morimoto */ 715ec87e0SKuninori Morimoto 815ec87e0SKuninori Morimoto/* 915ec87e0SKuninori Morimoto * Note: 1015ec87e0SKuninori Morimoto * The HDMI output is ignored due to the limited number of subdevices 1115ec87e0SKuninori Morimoto * 1215ec87e0SKuninori Morimoto * (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0) 1315ec87e0SKuninori Morimoto * (B) CPU1 (2ch) --/ (MIX-1) 1415ec87e0SKuninori Morimoto * 1515ec87e0SKuninori Morimoto * (A) aplay -D plughw:0,0 xxx.wav 1615ec87e0SKuninori Morimoto * (B) aplay -D plughw:0,1 xxx.wav 1715ec87e0SKuninori Morimoto * 1815ec87e0SKuninori Morimoto * (A) arecord -D plughw:0,0 xxx.wav 1915ec87e0SKuninori Morimoto */ 2015ec87e0SKuninori Morimoto/ { 2115ec87e0SKuninori Morimoto sound_card: sound { 2215ec87e0SKuninori Morimoto compatible = "audio-graph-card2"; 23*d70be079SKuninori Morimoto label = "snd-ulcb-mix"; 2415ec87e0SKuninori Morimoto 2515ec87e0SKuninori Morimoto routing = "ak4613 Playback", "DAI0 Playback", 2615ec87e0SKuninori Morimoto "ak4613 Playback", "DAI1 Playback", 2715ec87e0SKuninori Morimoto "DAI0 Capture", "ak4613 Capture"; 2815ec87e0SKuninori Morimoto 2915ec87e0SKuninori Morimoto links = <&fe_a /* (A) CPU0 */ 3015ec87e0SKuninori Morimoto &fe_b /* (B) CPU1 */ 3115ec87e0SKuninori Morimoto &be_x /* (X) ak4613 */ 3215ec87e0SKuninori Morimoto >; 3315ec87e0SKuninori Morimoto 3415ec87e0SKuninori Morimoto dpcm { 3515ec87e0SKuninori Morimoto #address-cells = <1>; 3615ec87e0SKuninori Morimoto #size-cells = <0>; 3715ec87e0SKuninori Morimoto 3815ec87e0SKuninori Morimoto ports@0 { 3915ec87e0SKuninori Morimoto #address-cells = <1>; 4015ec87e0SKuninori Morimoto #size-cells = <0>; 4115ec87e0SKuninori Morimoto reg = <0>; 4215ec87e0SKuninori Morimoto /* 4315ec87e0SKuninori Morimoto * FE 4415ec87e0SKuninori Morimoto * (A) CPU0 (MIX-0) 4515ec87e0SKuninori Morimoto * (B) CPU1 (MIX-1) 4615ec87e0SKuninori Morimoto */ 4715ec87e0SKuninori Morimoto fe_a: port@0 { reg = <0>; fe_a_ep: endpoint { remote-endpoint = <&rsnd_a_ep>; }; }; 4815ec87e0SKuninori Morimoto fe_b: port@1 { reg = <1>; fe_b_ep: endpoint { remote-endpoint = <&rsnd_b_ep>; }; }; 4915ec87e0SKuninori Morimoto }; 5015ec87e0SKuninori Morimoto 5115ec87e0SKuninori Morimoto ports@1 { 5215ec87e0SKuninori Morimoto reg = <1>; 5315ec87e0SKuninori Morimoto /* 5415ec87e0SKuninori Morimoto * BE 5515ec87e0SKuninori Morimoto * (X) ak4613 5615ec87e0SKuninori Morimoto */ 57*d70be079SKuninori Morimoto be_x: port { be_x_ep: endpoint { remote-endpoint = <&ak4613_x_ep>; }; }; 5815ec87e0SKuninori Morimoto }; 5915ec87e0SKuninori Morimoto }; 6015ec87e0SKuninori Morimoto }; 6115ec87e0SKuninori Morimoto}; 6215ec87e0SKuninori Morimoto 6315ec87e0SKuninori Morimoto&ak4613 { 6415ec87e0SKuninori Morimoto port { 6515ec87e0SKuninori Morimoto /* 6615ec87e0SKuninori Morimoto * (X) ak4613 6715ec87e0SKuninori Morimoto */ 6815ec87e0SKuninori Morimoto prefix = "ak4613"; 6915ec87e0SKuninori Morimoto convert-rate = <48000>; 7015ec87e0SKuninori Morimoto 7115ec87e0SKuninori Morimoto ak4613_x_ep: endpoint { 7215ec87e0SKuninori Morimoto remote-endpoint = <&be_x_ep>; 7315ec87e0SKuninori Morimoto }; 7415ec87e0SKuninori Morimoto }; 7515ec87e0SKuninori Morimoto}; 7615ec87e0SKuninori Morimoto 7715ec87e0SKuninori Morimoto&rcar_sound { 7815ec87e0SKuninori Morimoto #address-cells = <1>; 7915ec87e0SKuninori Morimoto #size-cells = <0>; 8015ec87e0SKuninori Morimoto 81*d70be079SKuninori Morimoto ports@0 { 82*d70be079SKuninori Morimoto #address-cells = <1>; 83*d70be079SKuninori Morimoto #size-cells = <0>; 84*d70be079SKuninori Morimoto reg = <0>; 85*d70be079SKuninori Morimoto 8615ec87e0SKuninori Morimoto /* 8715ec87e0SKuninori Morimoto * (A) CPU0 8815ec87e0SKuninori Morimoto */ 8915ec87e0SKuninori Morimoto port@0 { 9015ec87e0SKuninori Morimoto reg = <0>; 9115ec87e0SKuninori Morimoto rsnd_a_ep: endpoint { 9215ec87e0SKuninori Morimoto remote-endpoint = <&fe_a_ep>; 9315ec87e0SKuninori Morimoto bitclock-master; 9415ec87e0SKuninori Morimoto frame-master; 9515ec87e0SKuninori Morimoto playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; 9615ec87e0SKuninori Morimoto capture = <&ssi1 &src0 &dvc1>; 9715ec87e0SKuninori Morimoto }; 9815ec87e0SKuninori Morimoto }; 9915ec87e0SKuninori Morimoto /* 10015ec87e0SKuninori Morimoto * (B) CPU1 10115ec87e0SKuninori Morimoto */ 10215ec87e0SKuninori Morimoto port@1 { 10315ec87e0SKuninori Morimoto reg = <1>; 10415ec87e0SKuninori Morimoto rsnd_b_ep: endpoint { 10515ec87e0SKuninori Morimoto remote-endpoint = <&fe_b_ep>; 10615ec87e0SKuninori Morimoto bitclock-master; 10715ec87e0SKuninori Morimoto frame-master; 10815ec87e0SKuninori Morimoto playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; 10915ec87e0SKuninori Morimoto }; 11015ec87e0SKuninori Morimoto }; 11115ec87e0SKuninori Morimoto }; 11215ec87e0SKuninori Morimoto}; 113