1*7c057219SKuninori Morimoto// SPDX-License-Identifier: GPL-2.0 2*7c057219SKuninori Morimoto/* 3*7c057219SKuninori Morimoto * audio-graph-card2-custom-sample2.dtsi 4*7c057219SKuninori Morimoto * 5*7c057219SKuninori Morimoto * Copyright (C) 2020 Renesas Electronics Corp. 6*7c057219SKuninori Morimoto * Copyright (C) 2020 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 7*7c057219SKuninori Morimoto * 8*7c057219SKuninori Morimoto * This sample indicates how to use audio-graph-card2 and its 9*7c057219SKuninori Morimoto * custom driver. "audio-graph-card2-custom-sample" is the custome driver 10*7c057219SKuninori Morimoto * which is using audio-graph-card2. 11*7c057219SKuninori Morimoto * 12*7c057219SKuninori Morimoto * You can easily use this sample by adding below line on your DT file, 13*7c057219SKuninori Morimoto * and add new CONFIG to your .config. 14*7c057219SKuninori Morimoto * 15*7c057219SKuninori Morimoto * #include "../../../../../sound/soc/generic/audio-graph-card2-custom-sample2.dtsi" 16*7c057219SKuninori Morimoto * 17*7c057219SKuninori Morimoto * CONFIG_SND_AUDIO_GRAPH_CARD2 18*7c057219SKuninori Morimoto * CONFIG_SND_AUDIO_GRAPH_CARD2_CUSTOM_SAMPLE 19*7c057219SKuninori Morimoto * CONFIG_SND_TEST_COMPONENT 20*7c057219SKuninori Morimoto * 21*7c057219SKuninori Morimoto * 22*7c057219SKuninori Morimoto * You can indicate more detail each device behavior as debug if you modify 23*7c057219SKuninori Morimoto * "compatible" on each test-component. see below 24*7c057219SKuninori Morimoto * 25*7c057219SKuninori Morimoto * test_cpu { 26*7c057219SKuninori Morimoto * - compatible = "test-cpu"; 27*7c057219SKuninori Morimoto * + compatible = "test-cpu-verbose"; 28*7c057219SKuninori Morimoto * ... 29*7c057219SKuninori Morimoto * }; 30*7c057219SKuninori Morimoto * 31*7c057219SKuninori Morimoto * test_codec { 32*7c057219SKuninori Morimoto * - compatible = "test-codec"; 33*7c057219SKuninori Morimoto * + compatible = "test-codec-verbose"; 34*7c057219SKuninori Morimoto * ... 35*7c057219SKuninori Morimoto * }; 36*7c057219SKuninori Morimoto * 37*7c057219SKuninori Morimoto * 38*7c057219SKuninori Morimoto * Below sample doesn't use "format" property, 39*7c057219SKuninori Morimoto * because test-component driver (test-cpu/test-codec) is supporting 40*7c057219SKuninori Morimoto * snd_soc_dai_ops :: .auto_selectable_formats. 41*7c057219SKuninori Morimoto * see 42*7c057219SKuninori Morimoto * snd_soc_runtime_get_dai_fmt() 43*7c057219SKuninori Morimoto * linux/sound/soc/generic/test-component.c :: test_dai_formats 44*7c057219SKuninori Morimoto */ 45*7c057219SKuninori Morimoto/ { 46*7c057219SKuninori Morimoto audio-graph-card2-custom-sample-2 { 47*7c057219SKuninori Morimoto /* 48*7c057219SKuninori Morimoto * You can use audio-graph-card2 directly by using 49*7c057219SKuninori Morimoto * 50*7c057219SKuninori Morimoto * compatible = "audio-graph-card2"; 51*7c057219SKuninori Morimoto */ 52*7c057219SKuninori Morimoto compatible = "audio-graph-card2-custom-sample"; 53*7c057219SKuninori Morimoto label = "card2-custom-sample-2"; 54*7c057219SKuninori Morimoto 55*7c057219SKuninori Morimoto /* for [DPCM] */ 56*7c057219SKuninori Morimoto /* BE FE */ 57*7c057219SKuninori Morimoto routing = "TC DAI0 Playback", "DAI0 Playback", 58*7c057219SKuninori Morimoto "TC DAI0 Playback", "DAI1 Playback", 59*7c057219SKuninori Morimoto "DAI0 Capture", "TC DAI0 Capture", 60*7c057219SKuninori Morimoto "DAI1 Capture", "TC DAI0 Capture", 61*7c057219SKuninori Morimoto /* for [DPCM-Multi] */ 62*7c057219SKuninori Morimoto /* BE FE */ 63*7c057219SKuninori Morimoto "TC DAI1 Playback", "DAI2 Playback", 64*7c057219SKuninori Morimoto "TC DAI2 Playback", "DAI2 Playback", 65*7c057219SKuninori Morimoto "TC DAI1 Playback", "DAI3 Playback", 66*7c057219SKuninori Morimoto "TC DAI2 Playback", "DAI3 Playback", 67*7c057219SKuninori Morimoto "DAI2 Capture", "TC DAI1 Capture", 68*7c057219SKuninori Morimoto "DAI2 Capture", "TC DAI2 Capture", 69*7c057219SKuninori Morimoto "DAI3 Capture", "TC DAI1 Capture", 70*7c057219SKuninori Morimoto "DAI3 Capture", "TC DAI2 Capture", 71*7c057219SKuninori Morimoto /* for [Codec2Codec] */ 72*7c057219SKuninori Morimoto "TC OUT", "TC DAI4 Playback", 73*7c057219SKuninori Morimoto "TC DAI3 Capture", "TC IN", 74*7c057219SKuninori Morimoto /* for [Codec2Codec-Multi] */ 75*7c057219SKuninori Morimoto "TC OUT", "TC DAI7 Playback", 76*7c057219SKuninori Morimoto "TC DAI5 Capture", "TC IN", 77*7c057219SKuninori Morimoto "TC OUT", "TC DAI8 Playback", 78*7c057219SKuninori Morimoto "TC DAI6 Capture", "TC IN"; 79*7c057219SKuninori Morimoto 80*7c057219SKuninori Morimoto /* 81*7c057219SKuninori Morimoto * @ : used at links 82*7c057219SKuninori Morimoto */ 83*7c057219SKuninori Morimoto links = < 84*7c057219SKuninori Morimoto /* 85*7c057219SKuninori Morimoto * [DPCM] 86*7c057219SKuninori Morimoto * 87*7c057219SKuninori Morimoto * cpu20/cpu21 are converting rate to 44.1kHz 88*7c057219SKuninori Morimoto * 89*7c057219SKuninori Morimoto * FE BE 90*7c057219SKuninori Morimoto * <feA> **** <beA> 91*7c057219SKuninori Morimoto * cpu2_0 <----@---* *------@---> codec2_0 (44.1kHz) 92*7c057219SKuninori Morimoto * cpu2_1 <----@---* * 93*7c057219SKuninori Morimoto * <feB> **** 94*7c057219SKuninori Morimoto */ 95*7c057219SKuninori Morimoto &feA &feB &beA /* both FE / BE */ 96*7c057219SKuninori Morimoto 97*7c057219SKuninori Morimoto /* 98*7c057219SKuninori Morimoto * [DPCM-Multi] 99*7c057219SKuninori Morimoto * 100*7c057219SKuninori Morimoto * FE BE 101*7c057219SKuninori Morimoto * <feC> **** <beB> +-+ 102*7c057219SKuninori Morimoto * cpu2_2 <----@---* *------@---> | | -> codec2_1 103*7c057219SKuninori Morimoto * cpu2_3 <----@---* * | | -> codec2_2 104*7c057219SKuninori Morimoto * <feD> **** +-+ 105*7c057219SKuninori Morimoto */ 106*7c057219SKuninori Morimoto &feC &feD &beB /* both FE / BE*/ 107*7c057219SKuninori Morimoto 108*7c057219SKuninori Morimoto /* 109*7c057219SKuninori Morimoto * [Codec2Codec] 110*7c057219SKuninori Morimoto * 111*7c057219SKuninori Morimoto * <c2c> 112*7c057219SKuninori Morimoto * +-@-> codec2_3 113*7c057219SKuninori Morimoto * | 114*7c057219SKuninori Morimoto * +---> codec2_4 115*7c057219SKuninori Morimoto */ 116*7c057219SKuninori Morimoto &c2c /* CPU side only */ 117*7c057219SKuninori Morimoto 118*7c057219SKuninori Morimoto /* 119*7c057219SKuninori Morimoto * [Codec2Codec-Multi] 120*7c057219SKuninori Morimoto * 121*7c057219SKuninori Morimoto * --NOTE-- 122*7c057219SKuninori Morimoto * Multi connect N:M is not supported by ASoC. 123*7c057219SKuninori Morimoto * 124*7c057219SKuninori Morimoto * <c2c_m> +-+ 125*7c057219SKuninori Morimoto * +---@-->| |-> codec2_5 126*7c057219SKuninori Morimoto * | | |-> codec2_6 127*7c057219SKuninori Morimoto * | +-+ 128*7c057219SKuninori Morimoto * | +-+ 129*7c057219SKuninori Morimoto * +------>| |-> codec2_7 130*7c057219SKuninori Morimoto * | |-> codec2_8 131*7c057219SKuninori Morimoto * +-+ 132*7c057219SKuninori Morimoto */ 133*7c057219SKuninori Morimoto &c2c_m /* CPU side only */ 134*7c057219SKuninori Morimoto >; 135*7c057219SKuninori Morimoto 136*7c057219SKuninori Morimoto multi { 137*7c057219SKuninori Morimoto #address-cells = <1>; 138*7c057219SKuninori Morimoto #size-cells = <0>; 139*7c057219SKuninori Morimoto 140*7c057219SKuninori Morimoto /* 141*7c057219SKuninori Morimoto * [DPCM-Multi]::BE 142*7c057219SKuninori Morimoto * 143*7c057219SKuninori Morimoto * FE BE 144*7c057219SKuninori Morimoto * <feC> **** <beB> +---+ 145*7c057219SKuninori Morimoto * cpu2_2 <----@---* *------@---> |x a| -> codec2_1 146*7c057219SKuninori Morimoto * cpu2_3 <----@---* * | b| -> codec2_2 147*7c057219SKuninori Morimoto * <feD> **** +---+ 148*7c057219SKuninori Morimoto */ 149*7c057219SKuninori Morimoto ports@2 { 150*7c057219SKuninori Morimoto reg = <2>; 151*7c057219SKuninori Morimoto #address-cells = <1>; 152*7c057219SKuninori Morimoto #size-cells = <0>; 153*7c057219SKuninori Morimoto port@0 { reg = <0>; mbe_x_ep: endpoint { remote-endpoint = <&beB_ep>; };};/* (x) to pair */ 154*7c057219SKuninori Morimoto port@1 { reg = <1>; mbe_a_ep: endpoint { remote-endpoint = <&codec2_1_ep>; };};/* (a) Multi Element */ 155*7c057219SKuninori Morimoto port@2 { reg = <2>; mbe_b_ep: endpoint { remote-endpoint = <&codec2_2_ep>; };};/* (b) Multi Element */ 156*7c057219SKuninori Morimoto }; 157*7c057219SKuninori Morimoto 158*7c057219SKuninori Morimoto /* 159*7c057219SKuninori Morimoto * [Codec2Codec-Multi]::CPU 160*7c057219SKuninori Morimoto * 161*7c057219SKuninori Morimoto * <c2c_m> c2cmf +---+ 162*7c057219SKuninori Morimoto * +---@---------->|X A|-> codec2_5 163*7c057219SKuninori Morimoto * | | B|-> codec2_6 164*7c057219SKuninori Morimoto * | +---+ 165*7c057219SKuninori Morimoto * | c2cmb +---+ 166*7c057219SKuninori Morimoto * +-------------->|x a|-> codec2_7 167*7c057219SKuninori Morimoto * | b|-> codec2_8 168*7c057219SKuninori Morimoto * +---+ 169*7c057219SKuninori Morimoto */ 170*7c057219SKuninori Morimoto ports@3 { 171*7c057219SKuninori Morimoto reg = <3>; 172*7c057219SKuninori Morimoto #address-cells = <1>; 173*7c057219SKuninori Morimoto #size-cells = <0>; 174*7c057219SKuninori Morimoto port@0 { reg = <0>; mc2c0X_ep: endpoint { remote-endpoint = <&c2cmf_ep>; };};/* (X) to pair */ 175*7c057219SKuninori Morimoto port@1 { reg = <1>; mc2c0A_ep: endpoint { remote-endpoint = <&codec2_5_ep>; };};/* (A) Multi Element */ 176*7c057219SKuninori Morimoto port@2 { reg = <2>; mc2c0B_ep: endpoint { remote-endpoint = <&codec2_6_ep>; };};/* (B) Multi Element */ 177*7c057219SKuninori Morimoto }; 178*7c057219SKuninori Morimoto 179*7c057219SKuninori Morimoto /* 180*7c057219SKuninori Morimoto * [Codec2Codec-Multi]::Codec 181*7c057219SKuninori Morimoto * 182*7c057219SKuninori Morimoto * <c2c_m> c2cmf +---+ 183*7c057219SKuninori Morimoto * +---@---------->|X A|-> codec2_5 184*7c057219SKuninori Morimoto * | | B|-> codec2_6 185*7c057219SKuninori Morimoto * | +---+ 186*7c057219SKuninori Morimoto * | c2cmb +---+ 187*7c057219SKuninori Morimoto * +-------------->|x a|-> codec2_7 188*7c057219SKuninori Morimoto * | b|-> codec2_8 189*7c057219SKuninori Morimoto * +---+ 190*7c057219SKuninori Morimoto */ 191*7c057219SKuninori Morimoto ports@4 { 192*7c057219SKuninori Morimoto reg = <4>; 193*7c057219SKuninori Morimoto #address-cells = <1>; 194*7c057219SKuninori Morimoto #size-cells = <0>; 195*7c057219SKuninori Morimoto port@0 { reg = <0>; mc2c1x_ep: endpoint { remote-endpoint = <&c2cmb_ep>; };};/* (x) to pair */ 196*7c057219SKuninori Morimoto port@1 { reg = <1>; mc2c1a_ep: endpoint { remote-endpoint = <&codec2_7_ep>; };};/* (a) Multi Element */ 197*7c057219SKuninori Morimoto port@2 { reg = <2>; mc2c1b_ep: endpoint { remote-endpoint = <&codec2_8_ep>; };};/* (b) Multi Element */ 198*7c057219SKuninori Morimoto }; 199*7c057219SKuninori Morimoto }; 200*7c057219SKuninori Morimoto 201*7c057219SKuninori Morimoto dpcm { 202*7c057219SKuninori Morimoto #address-cells = <1>; 203*7c057219SKuninori Morimoto #size-cells = <0>; 204*7c057219SKuninori Morimoto 205*7c057219SKuninori Morimoto /* FE part */ 206*7c057219SKuninori Morimoto ports@0 { 207*7c057219SKuninori Morimoto reg = <0>; 208*7c057219SKuninori Morimoto 209*7c057219SKuninori Morimoto #address-cells = <1>; 210*7c057219SKuninori Morimoto #size-cells = <0>; 211*7c057219SKuninori Morimoto /* 212*7c057219SKuninori Morimoto * [DPCM]::FE 213*7c057219SKuninori Morimoto * 214*7c057219SKuninori Morimoto * FE BE 215*7c057219SKuninori Morimoto * <feA> **** <beA> 216*7c057219SKuninori Morimoto * cpu2_0 <----@---* *------@---> codec2_0 (44.1kHz) 217*7c057219SKuninori Morimoto * cpu2_1 <----@---* * 218*7c057219SKuninori Morimoto * <feB> **** 219*7c057219SKuninori Morimoto */ 220*7c057219SKuninori Morimoto feA: port@0 { reg = <0>; feA_ep: endpoint { remote-endpoint = <&cpu2_0_ep>; }; }; 221*7c057219SKuninori Morimoto feB: port@1 { reg = <1>; feB_ep: endpoint { remote-endpoint = <&cpu2_1_ep>; }; }; 222*7c057219SKuninori Morimoto 223*7c057219SKuninori Morimoto /* 224*7c057219SKuninori Morimoto * [DPCM-Multi]::FE 225*7c057219SKuninori Morimoto * 226*7c057219SKuninori Morimoto * FE BE 227*7c057219SKuninori Morimoto * <feC> **** <beB> +-+ 228*7c057219SKuninori Morimoto * cpu2_2 <----@---* *------@---> | | -> codec2_1 229*7c057219SKuninori Morimoto * cpu2_3 <----@---* * | | -> codec2_2 230*7c057219SKuninori Morimoto * <feD> **** +-+ 231*7c057219SKuninori Morimoto */ 232*7c057219SKuninori Morimoto feC: port@2 { reg = <2>; feC_ep: endpoint { remote-endpoint = <&cpu2_2_ep>; }; }; 233*7c057219SKuninori Morimoto feD: port@3 { reg = <3>; feD_ep: endpoint { remote-endpoint = <&cpu2_3_ep>; }; }; 234*7c057219SKuninori Morimoto }; 235*7c057219SKuninori Morimoto 236*7c057219SKuninori Morimoto /* BE part */ 237*7c057219SKuninori Morimoto ports@1 { 238*7c057219SKuninori Morimoto reg = <1>; 239*7c057219SKuninori Morimoto 240*7c057219SKuninori Morimoto #address-cells = <1>; 241*7c057219SKuninori Morimoto #size-cells = <0>; 242*7c057219SKuninori Morimoto /* 243*7c057219SKuninori Morimoto * [DPCM]::BE 244*7c057219SKuninori Morimoto * 245*7c057219SKuninori Morimoto * FE BE 246*7c057219SKuninori Morimoto * <feA> **** <beA> 247*7c057219SKuninori Morimoto * cpu2_0 <----@---* *------@---> codec2_0 (44.1kHz) 248*7c057219SKuninori Morimoto * cpu2_1 <----@---* * 249*7c057219SKuninori Morimoto * <feB> **** 250*7c057219SKuninori Morimoto */ 251*7c057219SKuninori Morimoto beA: port@0 { reg = <0>; beA_ep: endpoint { remote-endpoint = <&codec2_0_ep>; }; }; 252*7c057219SKuninori Morimoto 253*7c057219SKuninori Morimoto /* 254*7c057219SKuninori Morimoto * [DPCM-Multi]::BE 255*7c057219SKuninori Morimoto * 256*7c057219SKuninori Morimoto * FE BE 257*7c057219SKuninori Morimoto * <feC> **** <beB> +-------+ 258*7c057219SKuninori Morimoto * cpu2_2 <----@---* *------@---> |mbe_x | -> codec2_1 259*7c057219SKuninori Morimoto * cpu2_3 <----@---* * | | -> codec2_2 260*7c057219SKuninori Morimoto * <feD> **** +-------+ 261*7c057219SKuninori Morimoto */ 262*7c057219SKuninori Morimoto beB: port@1 { reg = <1>; beB_ep: endpoint { remote-endpoint = <&mbe_x_ep>; }; }; 263*7c057219SKuninori Morimoto }; 264*7c057219SKuninori Morimoto }; 265*7c057219SKuninori Morimoto 266*7c057219SKuninori Morimoto codec2codec { 267*7c057219SKuninori Morimoto #address-cells = <1>; 268*7c057219SKuninori Morimoto #size-cells = <0>; 269*7c057219SKuninori Morimoto /* 270*7c057219SKuninori Morimoto * [Codec2Codec] 271*7c057219SKuninori Morimoto * 272*7c057219SKuninori Morimoto * <c2c> 273*7c057219SKuninori Morimoto * +-@--> codec2_3 274*7c057219SKuninori Morimoto * | 275*7c057219SKuninori Morimoto * +----> codec2_4 276*7c057219SKuninori Morimoto */ 277*7c057219SKuninori Morimoto ports@0 { 278*7c057219SKuninori Morimoto reg = <0>; 279*7c057219SKuninori Morimoto 280*7c057219SKuninori Morimoto #address-cells = <1>; 281*7c057219SKuninori Morimoto #size-cells = <0>; 282*7c057219SKuninori Morimoto 283*7c057219SKuninori Morimoto /* use default settings */ 284*7c057219SKuninori Morimoto c2c: port@0 { reg = <0>; c2cf_ep: endpoint { remote-endpoint = <&codec2_3_ep>; }; }; 285*7c057219SKuninori Morimoto port@1 { reg = <1>; c2cb_ep: endpoint { remote-endpoint = <&codec2_4_ep>; }; }; 286*7c057219SKuninori Morimoto }; 287*7c057219SKuninori Morimoto 288*7c057219SKuninori Morimoto /* 289*7c057219SKuninori Morimoto * [Codec2Codec-Multi] 290*7c057219SKuninori Morimoto * 291*7c057219SKuninori Morimoto * <c2c_m> c2cmf +--------+ 292*7c057219SKuninori Morimoto * +---@---------->|mc2c0X |-> codec2_5 293*7c057219SKuninori Morimoto * | | |-> codec2_6 294*7c057219SKuninori Morimoto * | +--------+ 295*7c057219SKuninori Morimoto * | c2cmb +--------+ 296*7c057219SKuninori Morimoto * +-------------->|mc2c1x |-> codec2_7 297*7c057219SKuninori Morimoto * | |-> codec2_8 298*7c057219SKuninori Morimoto * +--------+ 299*7c057219SKuninori Morimoto */ 300*7c057219SKuninori Morimoto ports@1 { 301*7c057219SKuninori Morimoto reg = <1>; 302*7c057219SKuninori Morimoto 303*7c057219SKuninori Morimoto #address-cells = <1>; 304*7c057219SKuninori Morimoto #size-cells = <0>; 305*7c057219SKuninori Morimoto 306*7c057219SKuninori Morimoto /* use original settings */ 307*7c057219SKuninori Morimoto rate = <48000>; 308*7c057219SKuninori Morimoto c2c_m: port@0 { reg = <0>; c2cmf_ep: endpoint { remote-endpoint = <&mc2c0X_ep>; }; }; 309*7c057219SKuninori Morimoto port@1 { reg = <1>; c2cmb_ep: endpoint { remote-endpoint = <&mc2c1x_ep>; }; }; 310*7c057219SKuninori Morimoto }; 311*7c057219SKuninori Morimoto }; 312*7c057219SKuninori Morimoto }; 313*7c057219SKuninori Morimoto 314*7c057219SKuninori Morimoto test_cpu_2 { 315*7c057219SKuninori Morimoto /* 316*7c057219SKuninori Morimoto * update compatible to indicate more detail behaviour 317*7c057219SKuninori Morimoto * if you want. see test-compatible for more detail. 318*7c057219SKuninori Morimoto * 319*7c057219SKuninori Morimoto * ex) 320*7c057219SKuninori Morimoto * - compatible = "test-cpu"; 321*7c057219SKuninori Morimoto * + compatible = "test-cpu-verbose"; 322*7c057219SKuninori Morimoto */ 323*7c057219SKuninori Morimoto compatible = "test-cpu"; 324*7c057219SKuninori Morimoto ports { 325*7c057219SKuninori Morimoto #address-cells = <1>; 326*7c057219SKuninori Morimoto #size-cells = <0>; 327*7c057219SKuninori Morimoto 328*7c057219SKuninori Morimoto bitclock-master; 329*7c057219SKuninori Morimoto frame-master; 330*7c057219SKuninori Morimoto 331*7c057219SKuninori Morimoto /* [DPCM]::FE */ 332*7c057219SKuninori Morimoto port@0 { reg = <0>; cpu2_0_ep: endpoint { remote-endpoint = <&feA_ep>; };}; 333*7c057219SKuninori Morimoto port@1 { reg = <1>; cpu2_1_ep: endpoint { remote-endpoint = <&feB_ep>; };}; 334*7c057219SKuninori Morimoto /* [DPCM-Multi]::FE */ 335*7c057219SKuninori Morimoto port@2 { reg = <2>; cpu2_2_ep: endpoint { remote-endpoint = <&feC_ep>; };}; 336*7c057219SKuninori Morimoto port@3 { reg = <3>; cpu2_3_ep: endpoint { remote-endpoint = <&feD_ep>; };}; 337*7c057219SKuninori Morimoto }; 338*7c057219SKuninori Morimoto }; 339*7c057219SKuninori Morimoto 340*7c057219SKuninori Morimoto test_codec_2 { 341*7c057219SKuninori Morimoto /* 342*7c057219SKuninori Morimoto * update compatible to indicate more detail behaviour 343*7c057219SKuninori Morimoto * if you want. see test-compatible for more detail. 344*7c057219SKuninori Morimoto * 345*7c057219SKuninori Morimoto * ex) 346*7c057219SKuninori Morimoto * - compatible = "test-codec"; 347*7c057219SKuninori Morimoto * + compatible = "test-codec-verbose"; 348*7c057219SKuninori Morimoto */ 349*7c057219SKuninori Morimoto compatible = "test-codec"; 350*7c057219SKuninori Morimoto ports { 351*7c057219SKuninori Morimoto #address-cells = <1>; 352*7c057219SKuninori Morimoto #size-cells = <0>; 353*7c057219SKuninori Morimoto 354*7c057219SKuninori Morimoto /* 355*7c057219SKuninori Morimoto * prefix can be added to *component*, 356*7c057219SKuninori Morimoto * see audio-graph-card2::routing 357*7c057219SKuninori Morimoto */ 358*7c057219SKuninori Morimoto prefix = "TC"; 359*7c057219SKuninori Morimoto 360*7c057219SKuninori Morimoto /* [DPCM]::BE */ 361*7c057219SKuninori Morimoto port@0 { 362*7c057219SKuninori Morimoto convert-rate = <44100>; 363*7c057219SKuninori Morimoto reg = <0>; codec2_0_ep: endpoint { remote-endpoint = <&beA_ep>; }; 364*7c057219SKuninori Morimoto }; 365*7c057219SKuninori Morimoto /* [DPCM-Multi]::BE */ 366*7c057219SKuninori Morimoto port@1 { reg = <1>; codec2_1_ep: endpoint { remote-endpoint = <&mbe_a_ep>; };}; 367*7c057219SKuninori Morimoto port@2 { reg = <2>; codec2_2_ep: endpoint { remote-endpoint = <&mbe_b_ep>; };}; 368*7c057219SKuninori Morimoto /* [Codec2Codec] */ 369*7c057219SKuninori Morimoto port@3 { bitclock-master; 370*7c057219SKuninori Morimoto frame-master; 371*7c057219SKuninori Morimoto reg = <3>; codec2_3_ep: endpoint { remote-endpoint = <&c2cf_ep>; };}; 372*7c057219SKuninori Morimoto port@4 { reg = <4>; codec2_4_ep: endpoint { remote-endpoint = <&c2cb_ep>; };}; 373*7c057219SKuninori Morimoto /* [Codec2Codec-Multi] */ 374*7c057219SKuninori Morimoto port@5 { bitclock-master; 375*7c057219SKuninori Morimoto frame-master; 376*7c057219SKuninori Morimoto reg = <5>; codec2_5_ep: endpoint { remote-endpoint = <&mc2c0A_ep>; };}; 377*7c057219SKuninori Morimoto port@6 { reg = <6>; codec2_6_ep: endpoint { remote-endpoint = <&mc2c0B_ep>; };}; 378*7c057219SKuninori Morimoto port@7 { reg = <7>; codec2_7_ep: endpoint { remote-endpoint = <&mc2c1a_ep>; };}; 379*7c057219SKuninori Morimoto port@8 { reg = <8>; codec2_8_ep: endpoint { remote-endpoint = <&mc2c1b_ep>; };}; 380*7c057219SKuninori Morimoto }; 381*7c057219SKuninori Morimoto }; 382*7c057219SKuninori Morimoto}; 383