1c601fdf5SKuninori Morimoto// SPDX-License-Identifier: GPL-2.0 2c601fdf5SKuninori Morimoto/* 3c601fdf5SKuninori Morimoto * audio-graph-card2-custom-sample.dtsi 4c601fdf5SKuninori Morimoto * 5c601fdf5SKuninori Morimoto * Copyright (C) 2020 Renesas Electronics Corp. 6c601fdf5SKuninori Morimoto * Copyright (C) 2020 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 7c601fdf5SKuninori Morimoto * 8c601fdf5SKuninori Morimoto * This sample indicates how to use audio-graph-card2 and its 9c601fdf5SKuninori Morimoto * custom driver. "audio-graph-card2-custom-sample" is the custome driver 10c601fdf5SKuninori Morimoto * which is using audio-graph-card2. 11c601fdf5SKuninori Morimoto * 12c601fdf5SKuninori Morimoto * You can easily use this sample by adding below line on your DT file, 13c601fdf5SKuninori Morimoto * and add new CONFIG to your .config. 14c601fdf5SKuninori Morimoto * 15c601fdf5SKuninori Morimoto * #include "../../../../../sound/soc/generic/audio-graph-card2-custom-sample.dtsi" 16c601fdf5SKuninori Morimoto * 17c601fdf5SKuninori Morimoto * CONFIG_SND_AUDIO_GRAPH_CARD2 18c601fdf5SKuninori Morimoto * CONFIG_SND_AUDIO_GRAPH_CARD2_CUSTOM_SAMPLE 19c601fdf5SKuninori Morimoto * CONFIG_SND_TEST_COMPONENT 20d33083f9SKuninori Morimoto * 21d33083f9SKuninori Morimoto * 22d33083f9SKuninori Morimoto * You can indicate more detail each device behavior as debug if you modify 23d33083f9SKuninori Morimoto * "compatible" on each test-component. see below 24d33083f9SKuninori Morimoto * 25d33083f9SKuninori Morimoto * test_cpu { 26d33083f9SKuninori Morimoto * - compatible = "test-cpu"; 27d33083f9SKuninori Morimoto * + compatible = "test-cpu-verbose"; 28d33083f9SKuninori Morimoto * ... 29d33083f9SKuninori Morimoto * }; 30d33083f9SKuninori Morimoto * 31d33083f9SKuninori Morimoto * test_codec { 32d33083f9SKuninori Morimoto * - compatible = "test-codec"; 33d33083f9SKuninori Morimoto * + compatible = "test-codec-verbose"; 34d33083f9SKuninori Morimoto * ... 35d33083f9SKuninori Morimoto * }; 36d33083f9SKuninori Morimoto * 37*ea2cb26aSKuninori Morimoto * 38*ea2cb26aSKuninori Morimoto * Below sample doesn't use "format" property, 39*ea2cb26aSKuninori Morimoto * because test-component driver (test-cpu/test-codec) is supporting 40*ea2cb26aSKuninori Morimoto * snd_soc_dai_ops :: .auto_selectable_formats. 41*ea2cb26aSKuninori Morimoto * see 42*ea2cb26aSKuninori Morimoto * snd_soc_runtime_get_dai_fmt() 43*ea2cb26aSKuninori Morimoto * linux/sound/soc/generic/test-component.c :: test_dai_formats 44c601fdf5SKuninori Morimoto */ 45c601fdf5SKuninori Morimoto/ { 46c601fdf5SKuninori Morimoto /* 47c601fdf5SKuninori Morimoto * @ : used at links 48c601fdf5SKuninori Morimoto * 49c601fdf5SKuninori Morimoto * [Normal] 50c601fdf5SKuninori Morimoto * cpu0 <-@-----------------> codec0 515279bd8aSKuninori Morimoto * 52ca27441eSKuninori Morimoto * [Semi-Multi] 53ca27441eSKuninori Morimoto * 54ca27441eSKuninori Morimoto * CPU:Codec = 1:N 55ca27441eSKuninori Morimoto * 56ca27441eSKuninori Morimoto * +-+ 57ca27441eSKuninori Morimoto * cpu7 <-@------->| |-> codec12 58ca27441eSKuninori Morimoto * | |-> codec13 59ca27441eSKuninori Morimoto * +-+ 60ca27441eSKuninori Morimoto * 615279bd8aSKuninori Morimoto * [Multi-CPU/Codec] 625279bd8aSKuninori Morimoto * +-+ +-+ 635279bd8aSKuninori Morimoto * cpu1 <--| |<-@--------->| |-> codec1 645279bd8aSKuninori Morimoto * cpu2 <--| | | |-> codec2 655279bd8aSKuninori Morimoto * +-+ +-+ 66e781759aSKuninori Morimoto * 67e781759aSKuninori Morimoto * [DPCM] 682dc025abSKuninori Morimoto * 692dc025abSKuninori Morimoto * CPU3/CPU4 are converting rate to 44100 702dc025abSKuninori Morimoto * 71e781759aSKuninori Morimoto * FE BE 72e781759aSKuninori Morimoto * **** 73e781759aSKuninori Morimoto * cpu3 <-@--* *--@-> codec3 742dc025abSKuninori Morimoto * cpu4 <-@--* * (44.1kHz) 75e781759aSKuninori Morimoto * **** 76cb2d94aaSKuninori Morimoto * 77cb2d94aaSKuninori Morimoto * [DPCM-Multi] 78cb2d94aaSKuninori Morimoto * 79cb2d94aaSKuninori Morimoto * --NOTE-- 80cb2d94aaSKuninori Morimoto * Multi-FE is not supported by ASoC. 81cb2d94aaSKuninori Morimoto * 82cb2d94aaSKuninori Morimoto * FE BE 83cb2d94aaSKuninori Morimoto * **** +-+ 84cb2d94aaSKuninori Morimoto * cpu5 <-@--* *--@-> | | -> codec4 85cb2d94aaSKuninori Morimoto * cpu6 <-@--* * | | -> codec5 86cb2d94aaSKuninori Morimoto * **** +-+ 87349b15efSKuninori Morimoto * 88349b15efSKuninori Morimoto * [Codec2Codec] 89349b15efSKuninori Morimoto * +-@-> codec6 90349b15efSKuninori Morimoto * | 91349b15efSKuninori Morimoto * +---> codec7 92baa274dbSKuninori Morimoto * 93baa274dbSKuninori Morimoto * [Codec2Codec-Multi] 94baa274dbSKuninori Morimoto * 95baa274dbSKuninori Morimoto * --NOTE-- 96baa274dbSKuninori Morimoto * Multi connect N:M is not supported by ASoC. 97baa274dbSKuninori Morimoto * 98baa274dbSKuninori Morimoto * +-+ 99baa274dbSKuninori Morimoto * +-@->| |-> codec8 100baa274dbSKuninori Morimoto * | | |-> codec9 101baa274dbSKuninori Morimoto * | +-+ 102baa274dbSKuninori Morimoto * | +-+ 103baa274dbSKuninori Morimoto * +--->| |-> codec10 104baa274dbSKuninori Morimoto * | |-> codec11 105baa274dbSKuninori Morimoto * +-+ 106c601fdf5SKuninori Morimoto */ 107c601fdf5SKuninori Morimoto audio-graph-card2-custom-sample { 108c601fdf5SKuninori Morimoto /* 109c601fdf5SKuninori Morimoto * You can use audio-graph-card2 directly by using 110c601fdf5SKuninori Morimoto * 111c601fdf5SKuninori Morimoto * compatible = "audio-graph-card2"; 112c601fdf5SKuninori Morimoto */ 113c601fdf5SKuninori Morimoto compatible = "audio-graph-card2-custom-sample"; 114c601fdf5SKuninori Morimoto 115e781759aSKuninori Morimoto /* for [DPCM] */ 116e781759aSKuninori Morimoto /* BE FE */ 117e781759aSKuninori Morimoto routing = "TC DAI3 Playback", "DAI3 Playback", 118e781759aSKuninori Morimoto "TC DAI3 Playback", "DAI4 Playback", 119e781759aSKuninori Morimoto "DAI3 Capture", "TC DAI3 Capture", 120cb2d94aaSKuninori Morimoto "DAI4 Capture", "TC DAI3 Capture", 121cb2d94aaSKuninori Morimoto /* for [DPCM-Multi] */ 122cb2d94aaSKuninori Morimoto /* BE FE */ 123cb2d94aaSKuninori Morimoto "TC DAI4 Playback", "DAI5 Playback", 124cb2d94aaSKuninori Morimoto "TC DAI5 Playback", "DAI5 Playback", 125cb2d94aaSKuninori Morimoto "TC DAI4 Playback", "DAI6 Playback", 126cb2d94aaSKuninori Morimoto "TC DAI5 Playback", "DAI6 Playback", 127cb2d94aaSKuninori Morimoto "DAI5 Capture", "TC DAI4 Capture", 128cb2d94aaSKuninori Morimoto "DAI5 Capture", "TC DAI5 Capture", 129cb2d94aaSKuninori Morimoto "DAI6 Capture", "TC DAI4 Capture", 130349b15efSKuninori Morimoto "DAI6 Capture", "TC DAI5 Capture", 131349b15efSKuninori Morimoto /* for [Codec2Codec] */ 132349b15efSKuninori Morimoto "TC OUT", "TC DAI7 Playback", 133baa274dbSKuninori Morimoto "TC DAI6 Capture", "TC IN", 134baa274dbSKuninori Morimoto /* for [Codec2Codec-Multi] */ 135baa274dbSKuninori Morimoto "TC OUT", "TC DAI10 Playback", 136baa274dbSKuninori Morimoto "TC DAI8 Capture", "TC IN", 137baa274dbSKuninori Morimoto "TC OUT", "TC DAI11 Playback", 138baa274dbSKuninori Morimoto "TC DAI9 Capture", "TC IN"; 139e781759aSKuninori Morimoto 140d33083f9SKuninori Morimoto links = < 141d33083f9SKuninori Morimoto /* 142d33083f9SKuninori Morimoto * [Normal]: cpu side only 143d33083f9SKuninori Morimoto * cpu0/codec0 144d33083f9SKuninori Morimoto */ 145d33083f9SKuninori Morimoto &cpu0 146d33083f9SKuninori Morimoto 147ca27441eSKuninori Morimoto /* [Semi-Multi] */ 148ca27441eSKuninori Morimoto &sm0 149ca27441eSKuninori Morimoto 150d33083f9SKuninori Morimoto /* 151d33083f9SKuninori Morimoto * [Multi-CPU/Codec]: cpu side only 152d33083f9SKuninori Morimoto * cpu1/cpu2/codec1/codec2 153d33083f9SKuninori Morimoto */ 154d33083f9SKuninori Morimoto &mcpu0 155d33083f9SKuninori Morimoto 156d33083f9SKuninori Morimoto /* 157d33083f9SKuninori Morimoto * [DPCM]: both FE / BE 158d33083f9SKuninori Morimoto * cpu3/cpu4/codec3 159d33083f9SKuninori Morimoto */ 160d33083f9SKuninori Morimoto &fe00 &fe01 &be0 161d33083f9SKuninori Morimoto 162d33083f9SKuninori Morimoto /* 163d33083f9SKuninori Morimoto * [DPCM-Multi]: both FE / BE 164d33083f9SKuninori Morimoto * cpu5/cpu6/codec4/codec5 165d33083f9SKuninori Morimoto */ 166d33083f9SKuninori Morimoto &fe10 &fe11 &be1 167d33083f9SKuninori Morimoto 168d33083f9SKuninori Morimoto /* 169d33083f9SKuninori Morimoto * [Codec2Codec]: cpu side only 170d33083f9SKuninori Morimoto * codec6/codec7 171d33083f9SKuninori Morimoto */ 172d33083f9SKuninori Morimoto &c2c 173d33083f9SKuninori Morimoto 174d33083f9SKuninori Morimoto /* 175d33083f9SKuninori Morimoto * [Codec2Codec-Multi]: cpu side only 176d33083f9SKuninori Morimoto * codec8/codec9/codec10/codec11 177d33083f9SKuninori Morimoto */ 178d33083f9SKuninori Morimoto &c2c_m 179c601fdf5SKuninori Morimoto >; 1805279bd8aSKuninori Morimoto 1815279bd8aSKuninori Morimoto multi { 182fd6f2236SKuninori Morimoto #address-cells = <1>; 183fd6f2236SKuninori Morimoto #size-cells = <0>; 184fd6f2236SKuninori Morimoto 1855279bd8aSKuninori Morimoto ports@0 { 186fd6f2236SKuninori Morimoto reg = <0>; 187fd6f2236SKuninori Morimoto #address-cells = <1>; 188fd6f2236SKuninori Morimoto #size-cells = <0>; 189d33083f9SKuninori Morimoto /* [Multi-CPU] */ 190fd6f2236SKuninori Morimoto mcpu0: port@0 { reg = <0>; mcpu0_ep: endpoint { remote-endpoint = <&mcodec0_ep>; }; }; 191fd6f2236SKuninori Morimoto port@1 { reg = <1>; mcpu1_ep: endpoint { remote-endpoint = <&cpu1_ep>; }; }; 192fd6f2236SKuninori Morimoto port@2 { reg = <2>; mcpu2_ep: endpoint { remote-endpoint = <&cpu2_ep>; }; }; 1935279bd8aSKuninori Morimoto }; 194d33083f9SKuninori Morimoto 195d33083f9SKuninori Morimoto /* [Multi-Codec] */ 1965279bd8aSKuninori Morimoto ports@1 { 197fd6f2236SKuninori Morimoto reg = <1>; 198fd6f2236SKuninori Morimoto #address-cells = <1>; 199fd6f2236SKuninori Morimoto #size-cells = <0>; 200fd6f2236SKuninori Morimoto port@0 { reg = <0>; mcodec0_ep: endpoint { remote-endpoint = <&mcpu0_ep>; }; }; 201fd6f2236SKuninori Morimoto port@1 { reg = <1>; mcodec1_ep: endpoint { remote-endpoint = <&codec1_ep>; }; }; 202fd6f2236SKuninori Morimoto port@2 { reg = <2>; mcodec2_ep: endpoint { remote-endpoint = <&codec2_ep>; }; }; 2035279bd8aSKuninori Morimoto }; 204d33083f9SKuninori Morimoto 205d33083f9SKuninori Morimoto /* [DPCM-Multi]::BE */ 206cb2d94aaSKuninori Morimoto ports@2 { 207fd6f2236SKuninori Morimoto reg = <2>; 208fd6f2236SKuninori Morimoto #address-cells = <1>; 209fd6f2236SKuninori Morimoto #size-cells = <0>; 210fd6f2236SKuninori Morimoto port@0 { reg = <0>; mbe_ep: endpoint { remote-endpoint = <&be10_ep>; }; }; 211fd6f2236SKuninori Morimoto port@1 { reg = <1>; mbe1_ep: endpoint { remote-endpoint = <&codec4_ep>; }; }; 212fd6f2236SKuninori Morimoto port@2 { reg = <2>; mbe2_ep: endpoint { remote-endpoint = <&codec5_ep>; }; }; 213cb2d94aaSKuninori Morimoto }; 214d33083f9SKuninori Morimoto 215d33083f9SKuninori Morimoto /* [Codec2Codec-Multi]::CPU */ 216baa274dbSKuninori Morimoto ports@3 { 217fd6f2236SKuninori Morimoto reg = <3>; 218fd6f2236SKuninori Morimoto #address-cells = <1>; 219fd6f2236SKuninori Morimoto #size-cells = <0>; 220fd6f2236SKuninori Morimoto port@0 { reg = <0>; mc2c0_ep: endpoint { remote-endpoint = <&c2cmf_ep>; }; }; 221fd6f2236SKuninori Morimoto port@1 { reg = <1>; mc2c00_ep: endpoint { remote-endpoint = <&codec8_ep>; }; }; 222fd6f2236SKuninori Morimoto port@2 { reg = <2>; mc2c01_ep: endpoint { remote-endpoint = <&codec9_ep>; }; }; 223baa274dbSKuninori Morimoto }; 224d33083f9SKuninori Morimoto 225d33083f9SKuninori Morimoto /* [Codec2Codec-Multi]::Codec */ 226baa274dbSKuninori Morimoto ports@4 { 227fd6f2236SKuninori Morimoto reg = <4>; 228fd6f2236SKuninori Morimoto #address-cells = <1>; 229fd6f2236SKuninori Morimoto #size-cells = <0>; 230fd6f2236SKuninori Morimoto port@0 { reg = <0>; mc2c1_ep: endpoint { remote-endpoint = <&c2cmb_ep>; }; }; 231fd6f2236SKuninori Morimoto port@1 { reg = <1>; mc2c10_ep: endpoint { remote-endpoint = <&codec10_ep>; }; }; 232fd6f2236SKuninori Morimoto port@2 { reg = <2>; mc2c11_ep: endpoint { remote-endpoint = <&codec11_ep>; }; }; 233baa274dbSKuninori Morimoto }; 234ca27441eSKuninori Morimoto 235ca27441eSKuninori Morimoto /* [Semi-Multi] */ 236ca27441eSKuninori Morimoto ports@5 { 237fd6f2236SKuninori Morimoto reg = <5>; 238fd6f2236SKuninori Morimoto #address-cells = <1>; 239fd6f2236SKuninori Morimoto #size-cells = <0>; 240fd6f2236SKuninori Morimoto port@0 { reg = <0>; smcodec0_ep: endpoint { remote-endpoint = <&cpu7_ep>; }; }; 241fd6f2236SKuninori Morimoto port@1 { reg = <1>; smcodec1_ep: endpoint { remote-endpoint = <&codec12_ep>; }; }; 242fd6f2236SKuninori Morimoto port@2 { reg = <2>; smcodec2_ep: endpoint { remote-endpoint = <&codec13_ep>; }; }; 243ca27441eSKuninori Morimoto }; 2445279bd8aSKuninori Morimoto }; 245e781759aSKuninori Morimoto 246e781759aSKuninori Morimoto dpcm { 247fd6f2236SKuninori Morimoto #address-cells = <1>; 248fd6f2236SKuninori Morimoto #size-cells = <0>; 249fd6f2236SKuninori Morimoto 250e781759aSKuninori Morimoto ports@0 { 251fd6f2236SKuninori Morimoto reg = <0>; 252fd6f2236SKuninori Morimoto 253fd6f2236SKuninori Morimoto #address-cells = <1>; 254fd6f2236SKuninori Morimoto #size-cells = <0>; 255d33083f9SKuninori Morimoto /* [DPCM]::FE */ 256fd6f2236SKuninori Morimoto fe00: port@0 { reg = <0>; fe00_ep: endpoint { remote-endpoint = <&cpu3_ep>; }; }; 257fd6f2236SKuninori Morimoto fe01: port@1 { reg = <1>; fe01_ep: endpoint { remote-endpoint = <&cpu4_ep>; }; }; 258d33083f9SKuninori Morimoto 259d33083f9SKuninori Morimoto /* [DPCM-Multi]::FE */ 260fd6f2236SKuninori Morimoto fe10: port@2 { reg = <2>; fe10_ep: endpoint { remote-endpoint = <&cpu5_ep>; }; }; 261fd6f2236SKuninori Morimoto fe11: port@3 { reg = <3>; fe11_ep: endpoint { remote-endpoint = <&cpu6_ep>; }; }; 262e781759aSKuninori Morimoto }; 263d33083f9SKuninori Morimoto 264e781759aSKuninori Morimoto ports@1 { 265fd6f2236SKuninori Morimoto reg = <1>; 266fd6f2236SKuninori Morimoto 267fd6f2236SKuninori Morimoto #address-cells = <1>; 268fd6f2236SKuninori Morimoto #size-cells = <0>; 269d33083f9SKuninori Morimoto /* [DPCM]::BE */ 270fd6f2236SKuninori Morimoto be0: port@0 { reg = <0>; be00_ep: endpoint { remote-endpoint = <&codec3_ep>; }; }; 271d33083f9SKuninori Morimoto 272d33083f9SKuninori Morimoto /* [DPCM-Multi]::BE */ 273fd6f2236SKuninori Morimoto be1: port@1 { reg = <1>; be10_ep: endpoint { remote-endpoint = <&mbe_ep>; }; }; 274e781759aSKuninori Morimoto }; 275e781759aSKuninori Morimoto }; 276349b15efSKuninori Morimoto 277349b15efSKuninori Morimoto codec2codec { 278fd6f2236SKuninori Morimoto #address-cells = <1>; 279fd6f2236SKuninori Morimoto #size-cells = <0>; 280d33083f9SKuninori Morimoto /* [Codec2Codec] */ 281349b15efSKuninori Morimoto ports@0 { 282fd6f2236SKuninori Morimoto reg = <0>; 283fd6f2236SKuninori Morimoto 284fd6f2236SKuninori Morimoto #address-cells = <1>; 285fd6f2236SKuninori Morimoto #size-cells = <0>; 286fd6f2236SKuninori Morimoto 287c2ff7f15SKuninori Morimoto /* use default settings */ 288fd6f2236SKuninori Morimoto c2c: port@0 { reg = <0>; c2cf_ep: endpoint { remote-endpoint = <&codec6_ep>; }; }; 289fd6f2236SKuninori Morimoto port@1 { reg = <1>; c2cb_ep: endpoint { remote-endpoint = <&codec7_ep>; }; }; 290349b15efSKuninori Morimoto }; 291d33083f9SKuninori Morimoto 292d33083f9SKuninori Morimoto /* [Codec2Codec-Multi] */ 293baa274dbSKuninori Morimoto ports@1 { 294fd6f2236SKuninori Morimoto reg = <1>; 295fd6f2236SKuninori Morimoto 296fd6f2236SKuninori Morimoto #address-cells = <1>; 297fd6f2236SKuninori Morimoto #size-cells = <0>; 298fd6f2236SKuninori Morimoto 299c2ff7f15SKuninori Morimoto /* use original settings */ 300baa274dbSKuninori Morimoto rate = <48000>; 301fd6f2236SKuninori Morimoto c2c_m: port@0 { reg = <0>; c2cmf_ep: endpoint { remote-endpoint = <&mc2c0_ep>; }; }; 302fd6f2236SKuninori Morimoto port@1 { reg = <1>; c2cmb_ep: endpoint { remote-endpoint = <&mc2c1_ep>; }; }; 303baa274dbSKuninori Morimoto }; 304349b15efSKuninori Morimoto }; 305c601fdf5SKuninori Morimoto }; 306c601fdf5SKuninori Morimoto 307c601fdf5SKuninori Morimoto test_cpu { 308c601fdf5SKuninori Morimoto /* 309c601fdf5SKuninori Morimoto * update compatible to indicate more detail behaviour 310c601fdf5SKuninori Morimoto * if you want. see test-compatible for more detail. 311c601fdf5SKuninori Morimoto * 312c601fdf5SKuninori Morimoto * ex) 313c601fdf5SKuninori Morimoto * - compatible = "test-cpu"; 314c601fdf5SKuninori Morimoto * + compatible = "test-cpu-verbose"; 315c601fdf5SKuninori Morimoto */ 316c601fdf5SKuninori Morimoto compatible = "test-cpu"; 317c601fdf5SKuninori Morimoto ports { 318fd6f2236SKuninori Morimoto #address-cells = <1>; 319fd6f2236SKuninori Morimoto #size-cells = <0>; 320fd6f2236SKuninori Morimoto 321c601fdf5SKuninori Morimoto bitclock-master; 322c601fdf5SKuninori Morimoto frame-master; 323d33083f9SKuninori Morimoto /* [Normal] */ 324fd6f2236SKuninori Morimoto cpu0: port@0 { reg = <0>; cpu0_ep: endpoint { remote-endpoint = <&codec0_ep>; }; }; 325d33083f9SKuninori Morimoto 326d33083f9SKuninori Morimoto /* [Multi-CPU] */ 327fd6f2236SKuninori Morimoto port@1 { reg = <1>; cpu1_ep: endpoint { remote-endpoint = <&mcpu1_ep>; }; }; 328fd6f2236SKuninori Morimoto port@2 { reg = <2>; cpu2_ep: endpoint { remote-endpoint = <&mcpu2_ep>; }; }; 329d33083f9SKuninori Morimoto 330d33083f9SKuninori Morimoto /* [DPCM]::FE */ 331fd6f2236SKuninori Morimoto port@3 { reg = <3>; cpu3_ep: endpoint { remote-endpoint = <&fe00_ep>; }; }; 332fd6f2236SKuninori Morimoto port@4 { reg = <4>; cpu4_ep: endpoint { remote-endpoint = <&fe01_ep>; }; }; 333d33083f9SKuninori Morimoto 334d33083f9SKuninori Morimoto /* [DPCM-Multi]::FE */ 335fd6f2236SKuninori Morimoto port@5 { reg = <5>; cpu5_ep: endpoint { remote-endpoint = <&fe10_ep>; }; }; 336fd6f2236SKuninori Morimoto port@6 { reg = <6>; cpu6_ep: endpoint { remote-endpoint = <&fe11_ep>; }; }; 337ca27441eSKuninori Morimoto 338ca27441eSKuninori Morimoto /* [Semi-Multi] */ 339fd6f2236SKuninori Morimoto sm0: port@7 { reg = <7>; cpu7_ep: endpoint { remote-endpoint = <&smcodec0_ep>; }; }; 340c601fdf5SKuninori Morimoto }; 341c601fdf5SKuninori Morimoto }; 342c601fdf5SKuninori Morimoto 343c601fdf5SKuninori Morimoto test_codec { 344c601fdf5SKuninori Morimoto /* 345c601fdf5SKuninori Morimoto * update compatible to indicate more detail behaviour 346c601fdf5SKuninori Morimoto * if you want. see test-compatible for more detail. 347c601fdf5SKuninori Morimoto * 348c601fdf5SKuninori Morimoto * ex) 349c601fdf5SKuninori Morimoto * - compatible = "test-codec"; 350c601fdf5SKuninori Morimoto * + compatible = "test-codec-verbose"; 351c601fdf5SKuninori Morimoto */ 352c601fdf5SKuninori Morimoto compatible = "test-codec"; 353c601fdf5SKuninori Morimoto ports { 354fd6f2236SKuninori Morimoto #address-cells = <1>; 355fd6f2236SKuninori Morimoto #size-cells = <0>; 356fd6f2236SKuninori Morimoto 357e781759aSKuninori Morimoto /* 358e781759aSKuninori Morimoto * prefix can be added to *component*, 359e781759aSKuninori Morimoto * see audio-graph-card2::routing 360e781759aSKuninori Morimoto */ 361e781759aSKuninori Morimoto prefix = "TC"; 362e781759aSKuninori Morimoto 363d33083f9SKuninori Morimoto /* [Normal] */ 364fd6f2236SKuninori Morimoto port@0 { reg = <0>; codec0_ep: endpoint { remote-endpoint = <&cpu0_ep>; }; }; 365d33083f9SKuninori Morimoto 366d33083f9SKuninori Morimoto /* [Multi-Codec] */ 367fd6f2236SKuninori Morimoto port@1 { reg = <1>; codec1_ep: endpoint { remote-endpoint = <&mcodec1_ep>; }; }; 368fd6f2236SKuninori Morimoto port@2 { reg = <2>; codec2_ep: endpoint { remote-endpoint = <&mcodec2_ep>; }; }; 369d33083f9SKuninori Morimoto 370d33083f9SKuninori Morimoto /* [DPCM]::BE */ 3712dc025abSKuninori Morimoto port@3 { 3722dc025abSKuninori Morimoto convert-rate = <44100>; 373fd6f2236SKuninori Morimoto reg = <3>; codec3_ep: endpoint { remote-endpoint = <&be00_ep>; }; 3742dc025abSKuninori Morimoto }; 375d33083f9SKuninori Morimoto 376d33083f9SKuninori Morimoto /* [DPCM-Multi]::BE */ 377fd6f2236SKuninori Morimoto port@4 { reg = <4>; codec4_ep: endpoint { remote-endpoint = <&mbe1_ep>; }; }; 378fd6f2236SKuninori Morimoto port@5 { reg = <5>; codec5_ep: endpoint { remote-endpoint = <&mbe2_ep>; }; }; 379d33083f9SKuninori Morimoto 380d33083f9SKuninori Morimoto /* [Codec2Codec] */ 381349b15efSKuninori Morimoto port@6 { bitclock-master; 382349b15efSKuninori Morimoto frame-master; 383fd6f2236SKuninori Morimoto reg = <6>; codec6_ep: endpoint { remote-endpoint = <&c2cf_ep>; }; }; 384fd6f2236SKuninori Morimoto port@7 { reg = <7>; codec7_ep: endpoint { remote-endpoint = <&c2cb_ep>; }; }; 385d33083f9SKuninori Morimoto 386d33083f9SKuninori Morimoto /* [Codec2Codec-Multi] */ 387baa274dbSKuninori Morimoto port@8 { bitclock-master; 388baa274dbSKuninori Morimoto frame-master; 389fd6f2236SKuninori Morimoto reg = <8>; codec8_ep: endpoint { remote-endpoint = <&mc2c00_ep>; }; }; 390fd6f2236SKuninori Morimoto port@9 { reg = <9>; codec9_ep: endpoint { remote-endpoint = <&mc2c01_ep>; }; }; 391fd6f2236SKuninori Morimoto port@a { reg = <10>; codec10_ep: endpoint { remote-endpoint = <&mc2c10_ep>; }; }; 392fd6f2236SKuninori Morimoto port@b { reg = <11>; codec11_ep: endpoint { remote-endpoint = <&mc2c11_ep>; }; }; 393ca27441eSKuninori Morimoto 394ca27441eSKuninori Morimoto /* [Semi-Multi] */ 395fd6f2236SKuninori Morimoto port@c { reg = <12>; codec12_ep: endpoint { remote-endpoint = <&smcodec1_ep>; }; }; 396fd6f2236SKuninori Morimoto port@d { reg = <13>; codec13_ep: endpoint { remote-endpoint = <&smcodec2_ep>; }; }; 397fd6f2236SKuninori Morimoto 398c601fdf5SKuninori Morimoto }; 399c601fdf5SKuninori Morimoto }; 400c601fdf5SKuninori Morimoto}; 401