1c9d95cf0SKuninori Morimoto// SPDX-License-Identifier: GPL-2.0 2c9d95cf0SKuninori Morimoto/* 3c9d95cf0SKuninori Morimoto * Device Tree for ULCB + Kingfisher + Simple Audio Card (MIX + TDM Split) 4c9d95cf0SKuninori Morimoto * 5c9d95cf0SKuninori Morimoto * Copyright (C) 2022 Renesas Electronics Corp. 6c9d95cf0SKuninori Morimoto */ 7c9d95cf0SKuninori Morimoto 8c9d95cf0SKuninori Morimoto/* 9c9d95cf0SKuninori Morimoto * Note: 10c9d95cf0SKuninori Morimoto * The HDMI output is ignored due to the limited number of subdevices 11c9d95cf0SKuninori Morimoto * 12c9d95cf0SKuninori Morimoto * (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0) 13c9d95cf0SKuninori Morimoto * (B) CPU1 (2ch) --/ (MIX-1) 14c9d95cf0SKuninori Morimoto * (C) CPU3 (2ch) ----> (8ch) (Y) PCM3168A-p (TDM-0 : 0,1ch) 15c9d95cf0SKuninori Morimoto * (D) CPU2 (2ch) --/ (TDM-1 : 2,3ch) 16c9d95cf0SKuninori Morimoto * (E) CPU4 (2ch) --/ (TDM-2 : 4,5ch) 17c9d95cf0SKuninori Morimoto * (F) CPU5 (2ch) --/ (TDM-3 : 6,7ch) 18*35a1c35eSKuninori Morimoto * (G) CPU6 (2ch) <---- (6ch) (Z) PCM3168A-c (TDM-a: 0,1ch) 19*35a1c35eSKuninori Morimoto * (H) CPU7 (2ch) <--/ (TDM-b: 2,3ch) 20*35a1c35eSKuninori Morimoto * (I) CPU8 (2ch) <--/ (TDM-c: 4,5ch) 21c9d95cf0SKuninori Morimoto * 22c9d95cf0SKuninori Morimoto * (A) aplay -D plughw:0,0 xxx.wav (MIX-0) 23c9d95cf0SKuninori Morimoto * (B) aplay -D plughw:0,1 xxx.wav (MIX-1) 24d70be079SKuninori Morimoto * (C) aplay -D plughw:1,0 xxx.wav (TDM-0) 25d70be079SKuninori Morimoto * (D) aplay -D plughw:1,1 xxx.wav (TDM-1) 26d70be079SKuninori Morimoto * (E) aplay -D plughw:1,2 xxx.wav (TDM-2) 27d70be079SKuninori Morimoto * (F) aplay -D plughw:1,3 xxx.wav (TDM-3) 28c9d95cf0SKuninori Morimoto * 29c9d95cf0SKuninori Morimoto * (A) arecord -D plughw:0,0 xxx.wav 30*35a1c35eSKuninori Morimoto * (G) arecord -D plughw:1,4 xxx.wav (TDM-a) 31*35a1c35eSKuninori Morimoto * (H) arecord -D plughw:1,5 xxx.wav (TDM-b) 32*35a1c35eSKuninori Morimoto * (I) arecord -D plughw:1,6 xxx.wav (TDM-c) 33c9d95cf0SKuninori Morimoto */ 34c9d95cf0SKuninori Morimoto 35d70be079SKuninori Morimoto/ { 36d70be079SKuninori Morimoto sound_card_kf: expand-sound { 37d70be079SKuninori Morimoto #address-cells = <1>; 38d70be079SKuninori Morimoto #size-cells = <0>; 39c9d95cf0SKuninori Morimoto 40d70be079SKuninori Morimoto compatible = "simple-scu-audio-card"; 41d70be079SKuninori Morimoto label = "snd-kf-split"; 42d70be079SKuninori Morimoto 43d70be079SKuninori Morimoto simple-audio-card,routing = "pcm3168a Playback", "DAI2 Playback", 44c9d95cf0SKuninori Morimoto "pcm3168a Playback", "DAI3 Playback", 45c9d95cf0SKuninori Morimoto "pcm3168a Playback", "DAI4 Playback", 46*35a1c35eSKuninori Morimoto "pcm3168a Playback", "DAI5 Playback", 47*35a1c35eSKuninori Morimoto "DAI6 Capture", "pcm3168a Capture", 48*35a1c35eSKuninori Morimoto "DAI7 Capture", "pcm3168a Capture", 49*35a1c35eSKuninori Morimoto "DAI8 Capture", "pcm3168a Capture"; 50c9d95cf0SKuninori Morimoto 51d70be079SKuninori Morimoto simple-audio-card,dai-link@0 { 52c9d95cf0SKuninori Morimoto #address-cells = <1>; 53c9d95cf0SKuninori Morimoto #size-cells = <0>; 54d70be079SKuninori Morimoto reg = <0>; 55c9d95cf0SKuninori Morimoto convert-channels = <8>; /* to 8ch TDM */ 56c9d95cf0SKuninori Morimoto 57c9d95cf0SKuninori Morimoto /* 58c9d95cf0SKuninori Morimoto * (C) CPU2 59c9d95cf0SKuninori Morimoto */ 60c9d95cf0SKuninori Morimoto cpu@0 { 61c9d95cf0SKuninori Morimoto reg = <0>; 62c9d95cf0SKuninori Morimoto bitclock-master; 63c9d95cf0SKuninori Morimoto frame-master; 64c9d95cf0SKuninori Morimoto sound-dai = <&rcar_sound 2>; 65c9d95cf0SKuninori Morimoto }; 66c9d95cf0SKuninori Morimoto /* 67c9d95cf0SKuninori Morimoto * (D) CPU3 68c9d95cf0SKuninori Morimoto */ 69c9d95cf0SKuninori Morimoto cpu@1 { 70c9d95cf0SKuninori Morimoto reg = <1>; 71c9d95cf0SKuninori Morimoto sound-dai = <&rcar_sound 3>; 72c9d95cf0SKuninori Morimoto }; 73c9d95cf0SKuninori Morimoto /* 74c9d95cf0SKuninori Morimoto * (E) CPU4 75c9d95cf0SKuninori Morimoto */ 76c9d95cf0SKuninori Morimoto cpu@2 { 77c9d95cf0SKuninori Morimoto reg = <2>; 78c9d95cf0SKuninori Morimoto sound-dai = <&rcar_sound 4>; 79c9d95cf0SKuninori Morimoto }; 80c9d95cf0SKuninori Morimoto /* 81c9d95cf0SKuninori Morimoto * (F) CPU5 82c9d95cf0SKuninori Morimoto */ 83c9d95cf0SKuninori Morimoto cpu@3 { 84c9d95cf0SKuninori Morimoto reg = <3>; 85c9d95cf0SKuninori Morimoto sound-dai = <&rcar_sound 5>; 86c9d95cf0SKuninori Morimoto }; 87c9d95cf0SKuninori Morimoto /* 88c9d95cf0SKuninori Morimoto * (Y) PCM3168A-p 89c9d95cf0SKuninori Morimoto */ 90c9d95cf0SKuninori Morimoto codec { 91c9d95cf0SKuninori Morimoto prefix = "pcm3168a"; 92c9d95cf0SKuninori Morimoto mclk-fs = <512>; 93c9d95cf0SKuninori Morimoto sound-dai = <&pcm3168a 0>; 94c9d95cf0SKuninori Morimoto }; 95c9d95cf0SKuninori Morimoto }; 96d70be079SKuninori Morimoto 97d70be079SKuninori Morimoto simple-audio-card,dai-link@1 { 98*35a1c35eSKuninori Morimoto #address-cells = <1>; 99*35a1c35eSKuninori Morimoto #size-cells = <0>; 100d70be079SKuninori Morimoto reg = <1>; 101*35a1c35eSKuninori Morimoto convert-channels = <6>; /* to 6ch TDM */ 102*35a1c35eSKuninori Morimoto 103c9d95cf0SKuninori Morimoto /* 104c9d95cf0SKuninori Morimoto * (G) CPU6 105c9d95cf0SKuninori Morimoto */ 106*35a1c35eSKuninori Morimoto cpu@0 { 107*35a1c35eSKuninori Morimoto reg = <0>; 108c9d95cf0SKuninori Morimoto bitclock-master; 109c9d95cf0SKuninori Morimoto frame-master; 110c9d95cf0SKuninori Morimoto sound-dai = <&rcar_sound 6>; 111c9d95cf0SKuninori Morimoto }; 112c9d95cf0SKuninori Morimoto /* 113*35a1c35eSKuninori Morimoto * (H) CPU7 114*35a1c35eSKuninori Morimoto */ 115*35a1c35eSKuninori Morimoto cpu@1 { 116*35a1c35eSKuninori Morimoto reg = <1>; 117*35a1c35eSKuninori Morimoto bitclock-master; 118*35a1c35eSKuninori Morimoto frame-master; 119*35a1c35eSKuninori Morimoto sound-dai = <&rcar_sound 7>; 120*35a1c35eSKuninori Morimoto }; 121*35a1c35eSKuninori Morimoto /* 122*35a1c35eSKuninori Morimoto * (I) CPU8 123*35a1c35eSKuninori Morimoto */ 124*35a1c35eSKuninori Morimoto cpu@2 { 125*35a1c35eSKuninori Morimoto reg = <2>; 126*35a1c35eSKuninori Morimoto bitclock-master; 127*35a1c35eSKuninori Morimoto frame-master; 128*35a1c35eSKuninori Morimoto sound-dai = <&rcar_sound 8>; 129*35a1c35eSKuninori Morimoto }; 130*35a1c35eSKuninori Morimoto 131*35a1c35eSKuninori Morimoto /* 132c9d95cf0SKuninori Morimoto * (Z) PCM3168A-c 133c9d95cf0SKuninori Morimoto */ 134c9d95cf0SKuninori Morimoto codec { 135c9d95cf0SKuninori Morimoto prefix = "pcm3168a"; 136c9d95cf0SKuninori Morimoto mclk-fs = <512>; 137c9d95cf0SKuninori Morimoto sound-dai = <&pcm3168a 1>; 138c9d95cf0SKuninori Morimoto }; 139c9d95cf0SKuninori Morimoto }; 140c9d95cf0SKuninori Morimoto }; 141d70be079SKuninori Morimoto}; 142c9d95cf0SKuninori Morimoto 143c9d95cf0SKuninori Morimoto&pcm3168a { 144c9d95cf0SKuninori Morimoto /* 145c9d95cf0SKuninori Morimoto * (Y) PCM3168A-p 146c9d95cf0SKuninori Morimoto * (Z) PCM3168A-c 147c9d95cf0SKuninori Morimoto */ 148c9d95cf0SKuninori Morimoto #sound-dai-cells = <1>; 149c9d95cf0SKuninori Morimoto}; 150c9d95cf0SKuninori Morimoto 151c9d95cf0SKuninori Morimoto&rcar_sound { 152d70be079SKuninori Morimoto rcar_sound,dai@1 { 153d70be079SKuninori Morimoto reg = <1>; 154c9d95cf0SKuninori Morimoto 155c9d95cf0SKuninori Morimoto /* dai0-1 are defined in ulcb.dtsi */ 156c9d95cf0SKuninori Morimoto 157c9d95cf0SKuninori Morimoto /* 158c9d95cf0SKuninori Morimoto * (C) CPU2 159c9d95cf0SKuninori Morimoto */ 160c9d95cf0SKuninori Morimoto dai2 { 161c9d95cf0SKuninori Morimoto playback = <&ssiu30 &ssi3>; 162c9d95cf0SKuninori Morimoto }; 163c9d95cf0SKuninori Morimoto /* 164c9d95cf0SKuninori Morimoto * (D) CPU3 165c9d95cf0SKuninori Morimoto */ 166c9d95cf0SKuninori Morimoto dai3 { 167c9d95cf0SKuninori Morimoto playback = <&ssiu31 &ssi3>; 168c9d95cf0SKuninori Morimoto }; 169c9d95cf0SKuninori Morimoto /* 170c9d95cf0SKuninori Morimoto * (E) CPU4 171c9d95cf0SKuninori Morimoto */ 172c9d95cf0SKuninori Morimoto dai4 { 173c9d95cf0SKuninori Morimoto playback = <&ssiu32 &ssi3>; 174c9d95cf0SKuninori Morimoto }; 175c9d95cf0SKuninori Morimoto /* 176c9d95cf0SKuninori Morimoto * (F) CPU5 177c9d95cf0SKuninori Morimoto */ 178c9d95cf0SKuninori Morimoto dai5 { 179c9d95cf0SKuninori Morimoto playback = <&ssiu33 &ssi3>; 180c9d95cf0SKuninori Morimoto }; 181c9d95cf0SKuninori Morimoto /* 182c9d95cf0SKuninori Morimoto * (G) CPU6 183c9d95cf0SKuninori Morimoto */ 184c9d95cf0SKuninori Morimoto dai6 { 185*35a1c35eSKuninori Morimoto capture = <&ssiu40 &ssi4>; 186*35a1c35eSKuninori Morimoto }; 187*35a1c35eSKuninori Morimoto /* 188*35a1c35eSKuninori Morimoto * (H) CPU7 189*35a1c35eSKuninori Morimoto */ 190*35a1c35eSKuninori Morimoto dai7 { 191*35a1c35eSKuninori Morimoto capture = <&ssiu41 &ssi4>; 192*35a1c35eSKuninori Morimoto }; 193*35a1c35eSKuninori Morimoto /* 194*35a1c35eSKuninori Morimoto * (I) CPU8 195*35a1c35eSKuninori Morimoto */ 196*35a1c35eSKuninori Morimoto dai8 { 197*35a1c35eSKuninori Morimoto capture = <&ssiu42 &ssi4>; 198c9d95cf0SKuninori Morimoto }; 199c9d95cf0SKuninori Morimoto }; 200c9d95cf0SKuninori Morimoto}; 201