1cb7aa33aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2cb7aa33aSEmmanuel Vadot/* 3cb7aa33aSEmmanuel Vadot * Device Tree for ULCB + Audio Graph Card (MIX) 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/ { 22cb7aa33aSEmmanuel Vadot sound_card: sound { 23cb7aa33aSEmmanuel Vadot compatible = "audio-graph-scu-card"; 24*84943d6fSEmmanuel Vadot label = "snd-ulcb-mix"; 25cb7aa33aSEmmanuel Vadot 26cb7aa33aSEmmanuel Vadot routing = "ak4613 Playback", "DAI0 Playback", 27cb7aa33aSEmmanuel Vadot "ak4613 Playback", "DAI1 Playback", 28cb7aa33aSEmmanuel Vadot "DAI0 Capture", "ak4613 Capture"; 29cb7aa33aSEmmanuel Vadot 30*84943d6fSEmmanuel Vadot dais = <&snd_ulcb1 /* (A) CPU0 */ 31*84943d6fSEmmanuel Vadot &snd_ulcb2 /* (B) CPU1 */ 32cb7aa33aSEmmanuel Vadot >; 33cb7aa33aSEmmanuel Vadot }; 34cb7aa33aSEmmanuel Vadot}; 35cb7aa33aSEmmanuel Vadot 36cb7aa33aSEmmanuel Vadot&ak4613 { 37cb7aa33aSEmmanuel Vadot port { 38cb7aa33aSEmmanuel Vadot #address-cells = <1>; 39cb7aa33aSEmmanuel Vadot #size-cells = <0>; 40cb7aa33aSEmmanuel Vadot 41cb7aa33aSEmmanuel Vadot /* 42cb7aa33aSEmmanuel Vadot * (X) ak4613 43cb7aa33aSEmmanuel Vadot */ 44cb7aa33aSEmmanuel Vadot prefix = "ak4613"; 45cb7aa33aSEmmanuel Vadot convert-rate = <48000>; 46cb7aa33aSEmmanuel Vadot 47cb7aa33aSEmmanuel Vadot /* (A) CPU0 <-> (X) ak4613 */ 48cb7aa33aSEmmanuel Vadot ak4613_ep1: endpoint@0 { 49cb7aa33aSEmmanuel Vadot reg = <0>; 50cb7aa33aSEmmanuel Vadot remote-endpoint = <&rsnd_for_ak4613_1>; 51cb7aa33aSEmmanuel Vadot }; 52cb7aa33aSEmmanuel Vadot /* (B) CPU1 -> (X) ak4613 */ 53cb7aa33aSEmmanuel Vadot ak4613_ep2: endpoint@1 { 54cb7aa33aSEmmanuel Vadot reg = <1>; 55cb7aa33aSEmmanuel Vadot remote-endpoint = <&rsnd_for_ak4613_2>; 56cb7aa33aSEmmanuel Vadot }; 57cb7aa33aSEmmanuel Vadot }; 58cb7aa33aSEmmanuel Vadot}; 59cb7aa33aSEmmanuel Vadot 60cb7aa33aSEmmanuel Vadot&rcar_sound { 61cb7aa33aSEmmanuel Vadot #address-cells = <1>; 62cb7aa33aSEmmanuel Vadot #size-cells = <0>; 63cb7aa33aSEmmanuel Vadot 64*84943d6fSEmmanuel Vadot ports@0 { 65*84943d6fSEmmanuel Vadot #address-cells = <1>; 66*84943d6fSEmmanuel Vadot #size-cells = <0>; 67*84943d6fSEmmanuel Vadot reg = <0>; 68*84943d6fSEmmanuel Vadot 69cb7aa33aSEmmanuel Vadot /* 70cb7aa33aSEmmanuel Vadot * (A) CPU0 71cb7aa33aSEmmanuel Vadot */ 72*84943d6fSEmmanuel Vadot snd_ulcb1: port@0 { 73cb7aa33aSEmmanuel Vadot reg = <0>; 74cb7aa33aSEmmanuel Vadot rsnd_for_ak4613_1: endpoint { 75cb7aa33aSEmmanuel Vadot remote-endpoint = <&ak4613_ep1>; 76cb7aa33aSEmmanuel Vadot bitclock-master; 77cb7aa33aSEmmanuel Vadot frame-master; 78cb7aa33aSEmmanuel Vadot playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; 79cb7aa33aSEmmanuel Vadot capture = <&ssi1 &src0 &dvc1>; 80cb7aa33aSEmmanuel Vadot }; 81cb7aa33aSEmmanuel Vadot }; 82cb7aa33aSEmmanuel Vadot /* 83cb7aa33aSEmmanuel Vadot * (B) CPU1 84cb7aa33aSEmmanuel Vadot */ 85*84943d6fSEmmanuel Vadot snd_ulcb2: port@1 { 86cb7aa33aSEmmanuel Vadot reg = <1>; 87cb7aa33aSEmmanuel Vadot rsnd_for_ak4613_2: endpoint { 88cb7aa33aSEmmanuel Vadot remote-endpoint = <&ak4613_ep2>; 89cb7aa33aSEmmanuel Vadot bitclock-master; 90cb7aa33aSEmmanuel Vadot frame-master; 91cb7aa33aSEmmanuel Vadot playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; 92cb7aa33aSEmmanuel Vadot }; 93cb7aa33aSEmmanuel Vadot }; 94cb7aa33aSEmmanuel Vadot }; 95cb7aa33aSEmmanuel Vadot}; 96