1cb7aa33aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2cb7aa33aSEmmanuel Vadot/* 3cb7aa33aSEmmanuel Vadot * Device Tree for ULCB + Audio Graph Card2 (MIX + TDM Split) 4cb7aa33aSEmmanuel Vadot * 5cb7aa33aSEmmanuel Vadot * Copyright (C) 2022 Renesas Electronics Corp. 6cb7aa33aSEmmanuel Vadot */ 7cb7aa33aSEmmanuel Vadot 8cb7aa33aSEmmanuel Vadot/* 9cb7aa33aSEmmanuel Vadot * Note: 10cb7aa33aSEmmanuel Vadot * The HDMI output is ignored due to the limited number of subdevices 11cb7aa33aSEmmanuel Vadot * 12cb7aa33aSEmmanuel Vadot * (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0) 13cb7aa33aSEmmanuel Vadot * (B) CPU1 (2ch) --/ (MIX-1) 14cb7aa33aSEmmanuel Vadot * 15cb7aa33aSEmmanuel Vadot * (A) aplay -D plughw:0,0 xxx.wav 16cb7aa33aSEmmanuel Vadot * (B) aplay -D plughw:0,1 xxx.wav 17cb7aa33aSEmmanuel Vadot * 18cb7aa33aSEmmanuel Vadot * (A) arecord -D plughw:0,0 xxx.wav 19cb7aa33aSEmmanuel Vadot */ 20cb7aa33aSEmmanuel Vadot/ { 21cb7aa33aSEmmanuel Vadot sound_card: sound { 22cb7aa33aSEmmanuel Vadot compatible = "audio-graph-card2"; 23*84943d6fSEmmanuel Vadot label = "snd-ulcb-mix"; 24cb7aa33aSEmmanuel Vadot 25cb7aa33aSEmmanuel Vadot routing = "ak4613 Playback", "DAI0 Playback", 26cb7aa33aSEmmanuel Vadot "ak4613 Playback", "DAI1 Playback", 27cb7aa33aSEmmanuel Vadot "DAI0 Capture", "ak4613 Capture"; 28cb7aa33aSEmmanuel Vadot 29cb7aa33aSEmmanuel Vadot links = <&fe_a /* (A) CPU0 */ 30cb7aa33aSEmmanuel Vadot &fe_b /* (B) CPU1 */ 31cb7aa33aSEmmanuel Vadot &be_x /* (X) ak4613 */ 32cb7aa33aSEmmanuel Vadot >; 33cb7aa33aSEmmanuel Vadot 34cb7aa33aSEmmanuel Vadot dpcm { 35cb7aa33aSEmmanuel Vadot #address-cells = <1>; 36cb7aa33aSEmmanuel Vadot #size-cells = <0>; 37cb7aa33aSEmmanuel Vadot 38cb7aa33aSEmmanuel Vadot ports@0 { 39cb7aa33aSEmmanuel Vadot #address-cells = <1>; 40cb7aa33aSEmmanuel Vadot #size-cells = <0>; 41cb7aa33aSEmmanuel Vadot reg = <0>; 42cb7aa33aSEmmanuel Vadot /* 43cb7aa33aSEmmanuel Vadot * FE 44cb7aa33aSEmmanuel Vadot * (A) CPU0 (MIX-0) 45cb7aa33aSEmmanuel Vadot * (B) CPU1 (MIX-1) 46cb7aa33aSEmmanuel Vadot */ 47cb7aa33aSEmmanuel Vadot fe_a: port@0 { reg = <0>; fe_a_ep: endpoint { remote-endpoint = <&rsnd_a_ep>; }; }; 48cb7aa33aSEmmanuel Vadot fe_b: port@1 { reg = <1>; fe_b_ep: endpoint { remote-endpoint = <&rsnd_b_ep>; }; }; 49cb7aa33aSEmmanuel Vadot }; 50cb7aa33aSEmmanuel Vadot 51cb7aa33aSEmmanuel Vadot ports@1 { 52cb7aa33aSEmmanuel Vadot reg = <1>; 53cb7aa33aSEmmanuel Vadot /* 54cb7aa33aSEmmanuel Vadot * BE 55cb7aa33aSEmmanuel Vadot * (X) ak4613 56cb7aa33aSEmmanuel Vadot */ 57*84943d6fSEmmanuel Vadot be_x: port { be_x_ep: endpoint { remote-endpoint = <&ak4613_x_ep>; }; }; 58cb7aa33aSEmmanuel Vadot }; 59cb7aa33aSEmmanuel Vadot }; 60cb7aa33aSEmmanuel Vadot }; 61cb7aa33aSEmmanuel Vadot}; 62cb7aa33aSEmmanuel Vadot 63cb7aa33aSEmmanuel Vadot&ak4613 { 64cb7aa33aSEmmanuel Vadot port { 65cb7aa33aSEmmanuel Vadot /* 66cb7aa33aSEmmanuel Vadot * (X) ak4613 67cb7aa33aSEmmanuel Vadot */ 68cb7aa33aSEmmanuel Vadot prefix = "ak4613"; 69cb7aa33aSEmmanuel Vadot convert-rate = <48000>; 70cb7aa33aSEmmanuel Vadot 71cb7aa33aSEmmanuel Vadot ak4613_x_ep: endpoint { 72cb7aa33aSEmmanuel Vadot remote-endpoint = <&be_x_ep>; 73cb7aa33aSEmmanuel Vadot }; 74cb7aa33aSEmmanuel Vadot }; 75cb7aa33aSEmmanuel Vadot}; 76cb7aa33aSEmmanuel Vadot 77cb7aa33aSEmmanuel Vadot&rcar_sound { 78cb7aa33aSEmmanuel Vadot #address-cells = <1>; 79cb7aa33aSEmmanuel Vadot #size-cells = <0>; 80cb7aa33aSEmmanuel Vadot 81*84943d6fSEmmanuel Vadot ports@0 { 82*84943d6fSEmmanuel Vadot #address-cells = <1>; 83*84943d6fSEmmanuel Vadot #size-cells = <0>; 84*84943d6fSEmmanuel Vadot reg = <0>; 85*84943d6fSEmmanuel Vadot 86cb7aa33aSEmmanuel Vadot /* 87cb7aa33aSEmmanuel Vadot * (A) CPU0 88cb7aa33aSEmmanuel Vadot */ 89cb7aa33aSEmmanuel Vadot port@0 { 90cb7aa33aSEmmanuel Vadot reg = <0>; 91cb7aa33aSEmmanuel Vadot rsnd_a_ep: endpoint { 92cb7aa33aSEmmanuel Vadot remote-endpoint = <&fe_a_ep>; 93cb7aa33aSEmmanuel Vadot bitclock-master; 94cb7aa33aSEmmanuel Vadot frame-master; 95cb7aa33aSEmmanuel Vadot playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; 96cb7aa33aSEmmanuel Vadot capture = <&ssi1 &src0 &dvc1>; 97cb7aa33aSEmmanuel Vadot }; 98cb7aa33aSEmmanuel Vadot }; 99cb7aa33aSEmmanuel Vadot /* 100cb7aa33aSEmmanuel Vadot * (B) CPU1 101cb7aa33aSEmmanuel Vadot */ 102cb7aa33aSEmmanuel Vadot port@1 { 103cb7aa33aSEmmanuel Vadot reg = <1>; 104cb7aa33aSEmmanuel Vadot rsnd_b_ep: endpoint { 105cb7aa33aSEmmanuel Vadot remote-endpoint = <&fe_b_ep>; 106cb7aa33aSEmmanuel Vadot bitclock-master; 107cb7aa33aSEmmanuel Vadot frame-master; 108cb7aa33aSEmmanuel Vadot playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; 109cb7aa33aSEmmanuel Vadot }; 110cb7aa33aSEmmanuel Vadot }; 111cb7aa33aSEmmanuel Vadot }; 112cb7aa33aSEmmanuel Vadot}; 113