1*79149fb8SKuninori Morimoto# SPDX-License-Identifier: GPL-2.0 2*79149fb8SKuninori Morimoto%YAML 1.2 3*79149fb8SKuninori Morimoto--- 4*79149fb8SKuninori Morimoto$id: http://devicetree.org/schemas/sound/simple-card.yaml# 5*79149fb8SKuninori Morimoto$schema: http://devicetree.org/meta-schemas/core.yaml# 6*79149fb8SKuninori Morimoto 7*79149fb8SKuninori Morimototitle: Simple Audio Card Driver Device Tree Bindings 8*79149fb8SKuninori Morimoto 9*79149fb8SKuninori Morimotomaintainers: 10*79149fb8SKuninori Morimoto - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 11*79149fb8SKuninori Morimoto 12*79149fb8SKuninori Morimotodefinitions: 13*79149fb8SKuninori Morimoto 14*79149fb8SKuninori Morimoto frame-master: 15*79149fb8SKuninori Morimoto description: Indicates dai-link frame master. 16*79149fb8SKuninori Morimoto allOf: 17*79149fb8SKuninori Morimoto - $ref: /schemas/types.yaml#/definitions/phandle-array 18*79149fb8SKuninori Morimoto - maxItems: 1 19*79149fb8SKuninori Morimoto 20*79149fb8SKuninori Morimoto bitclock-master: 21*79149fb8SKuninori Morimoto description: Indicates dai-link bit clock master 22*79149fb8SKuninori Morimoto allOf: 23*79149fb8SKuninori Morimoto - $ref: /schemas/types.yaml#/definitions/phandle-array 24*79149fb8SKuninori Morimoto - maxItems: 1 25*79149fb8SKuninori Morimoto 26*79149fb8SKuninori Morimoto frame-inversion: 27*79149fb8SKuninori Morimoto description: dai-link uses frame clock inversion 28*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 29*79149fb8SKuninori Morimoto 30*79149fb8SKuninori Morimoto bitclock-inversion: 31*79149fb8SKuninori Morimoto description: dai-link uses bit clock inversion 32*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 33*79149fb8SKuninori Morimoto 34*79149fb8SKuninori Morimoto dai-tdm-slot-num: 35*79149fb8SKuninori Morimoto description: see tdm-slot.txt. 36*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 37*79149fb8SKuninori Morimoto 38*79149fb8SKuninori Morimoto dai-tdm-slot-width: 39*79149fb8SKuninori Morimoto description: see tdm-slot.txt. 40*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 41*79149fb8SKuninori Morimoto 42*79149fb8SKuninori Morimoto system-clock-frequency: 43*79149fb8SKuninori Morimoto description: | 44*79149fb8SKuninori Morimoto If a clock is specified and a multiplication factor is given with 45*79149fb8SKuninori Morimoto mclk-fs, the clock will be set to the calculated mclk frequency 46*79149fb8SKuninori Morimoto when the stream starts. 47*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 48*79149fb8SKuninori Morimoto 49*79149fb8SKuninori Morimoto system-clock-direction-out: 50*79149fb8SKuninori Morimoto description: | 51*79149fb8SKuninori Morimoto specifies clock direction as 'out' on initialization. 52*79149fb8SKuninori Morimoto It is useful for some aCPUs with fixed clocks. 53*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 54*79149fb8SKuninori Morimoto 55*79149fb8SKuninori Morimoto mclk-fs: 56*79149fb8SKuninori Morimoto description: | 57*79149fb8SKuninori Morimoto Multiplication factor between stream rate and codec mclk. 58*79149fb8SKuninori Morimoto When defined, mclk-fs property defined in dai-link sub nodes are ignored. 59*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 60*79149fb8SKuninori Morimoto 61*79149fb8SKuninori Morimoto aux-devs: 62*79149fb8SKuninori Morimoto description: | 63*79149fb8SKuninori Morimoto List of phandles pointing to auxiliary devices, such 64*79149fb8SKuninori Morimoto as amplifiers, to be added to the sound card. 65*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/phandle-array 66*79149fb8SKuninori Morimoto 67*79149fb8SKuninori Morimoto convert-rate: 68*79149fb8SKuninori Morimoto description: CPU to Codec rate convert. 69*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 70*79149fb8SKuninori Morimoto 71*79149fb8SKuninori Morimoto convert-channels: 72*79149fb8SKuninori Morimoto description: CPU to Codec rate channels. 73*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 74*79149fb8SKuninori Morimoto 75*79149fb8SKuninori Morimoto prefix: 76*79149fb8SKuninori Morimoto description: "device name prefix" 77*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/string 78*79149fb8SKuninori Morimoto 79*79149fb8SKuninori Morimoto label: 80*79149fb8SKuninori Morimoto maxItems: 1 81*79149fb8SKuninori Morimoto 82*79149fb8SKuninori Morimoto routing: 83*79149fb8SKuninori Morimoto description: | 84*79149fb8SKuninori Morimoto A list of the connections between audio components. 85*79149fb8SKuninori Morimoto Each entry is a pair of strings, the first being the 86*79149fb8SKuninori Morimoto connection's sink, the second being the connection's source. 87*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/non-unique-string-array 88*79149fb8SKuninori Morimoto 89*79149fb8SKuninori Morimoto widgets: 90*79149fb8SKuninori Morimoto description: User specified audio sound widgets. 91*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/non-unique-string-array 92*79149fb8SKuninori Morimoto 93*79149fb8SKuninori Morimoto pin-switches: 94*79149fb8SKuninori Morimoto description: the widget names for which pin switches must be created. 95*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/string-array 96*79149fb8SKuninori Morimoto 97*79149fb8SKuninori Morimoto format: 98*79149fb8SKuninori Morimoto description: audio format. 99*79149fb8SKuninori Morimoto items: 100*79149fb8SKuninori Morimoto enum: 101*79149fb8SKuninori Morimoto - i2s 102*79149fb8SKuninori Morimoto - right_j 103*79149fb8SKuninori Morimoto - left_j 104*79149fb8SKuninori Morimoto - dsp_a 105*79149fb8SKuninori Morimoto - dsp_b 106*79149fb8SKuninori Morimoto - ac97 107*79149fb8SKuninori Morimoto - pdm 108*79149fb8SKuninori Morimoto - msb 109*79149fb8SKuninori Morimoto - lsb 110*79149fb8SKuninori Morimoto 111*79149fb8SKuninori Morimoto dai: 112*79149fb8SKuninori Morimoto type: object 113*79149fb8SKuninori Morimoto properties: 114*79149fb8SKuninori Morimoto sound-dai: 115*79149fb8SKuninori Morimoto maxItems: 1 116*79149fb8SKuninori Morimoto 117*79149fb8SKuninori Morimoto # common properties 118*79149fb8SKuninori Morimoto mclk-fs: 119*79149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 120*79149fb8SKuninori Morimoto prefix: 121*79149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 122*79149fb8SKuninori Morimoto frame-inversion: 123*79149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 124*79149fb8SKuninori Morimoto bitclock-inversion: 125*79149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 126*79149fb8SKuninori Morimoto frame-master: 127*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 128*79149fb8SKuninori Morimoto bitclock-master: 129*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 130*79149fb8SKuninori Morimoto 131*79149fb8SKuninori Morimoto dai-tdm-slot-num: 132*79149fb8SKuninori Morimoto $ref: "#/definitions/dai-tdm-slot-num" 133*79149fb8SKuninori Morimoto dai-tdm-slot-width: 134*79149fb8SKuninori Morimoto $ref: "#/definitions/dai-tdm-slot-width" 135*79149fb8SKuninori Morimoto clocks: 136*79149fb8SKuninori Morimoto maxItems: 1 137*79149fb8SKuninori Morimoto system-clock-frequency: 138*79149fb8SKuninori Morimoto $ref: "#/definitions/system-clock-frequency" 139*79149fb8SKuninori Morimoto system-clock-direction-out: 140*79149fb8SKuninori Morimoto $ref: "#/definitions/system-clock-direction-out" 141*79149fb8SKuninori Morimoto required: 142*79149fb8SKuninori Morimoto - sound-dai 143*79149fb8SKuninori Morimoto 144*79149fb8SKuninori Morimotoproperties: 145*79149fb8SKuninori Morimoto compatible: 146*79149fb8SKuninori Morimoto contains: 147*79149fb8SKuninori Morimoto enum: 148*79149fb8SKuninori Morimoto - simple-audio-card 149*79149fb8SKuninori Morimoto - simple-scu-audio-card 150*79149fb8SKuninori Morimoto 151*79149fb8SKuninori Morimoto "#address-cells": 152*79149fb8SKuninori Morimoto const: 1 153*79149fb8SKuninori Morimoto "#size-cells": 154*79149fb8SKuninori Morimoto const: 0 155*79149fb8SKuninori Morimoto 156*79149fb8SKuninori Morimoto label: 157*79149fb8SKuninori Morimoto $ref: "#/definitions/label" 158*79149fb8SKuninori Morimoto 159*79149fb8SKuninori Morimoto simple-audio-card,name: 160*79149fb8SKuninori Morimoto description: User specified audio sound card name. 161*79149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/string 162*79149fb8SKuninori Morimoto 163*79149fb8SKuninori Morimoto# use patternProperties to avoid naming "xxx,yyy" issue 164*79149fb8SKuninori MorimotopatternProperties: 165*79149fb8SKuninori Morimoto "^simple-audio-card,widgets$": 166*79149fb8SKuninori Morimoto $ref: "#/definitions/widgets" 167*79149fb8SKuninori Morimoto "^simple-audio-card,routing$": 168*79149fb8SKuninori Morimoto $ref: "#/definitions/routing" 169*79149fb8SKuninori Morimoto "^simple-audio-card,cpu(@[0-9a-f]+)?": 170*79149fb8SKuninori Morimoto $ref: "#/definitions/dai" 171*79149fb8SKuninori Morimoto "^simple-audio-card,codec(@[0-9a-f]+)?": 172*79149fb8SKuninori Morimoto $ref: "#/definitions/dai" 173*79149fb8SKuninori Morimoto 174*79149fb8SKuninori Morimoto # common properties 175*79149fb8SKuninori Morimoto "^simple-audio-card,frame-master$": 176*79149fb8SKuninori Morimoto $ref: "#/definitions/frame-master" 177*79149fb8SKuninori Morimoto "^simple-audio-card,bitclock-master$": 178*79149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-master" 179*79149fb8SKuninori Morimoto "^simple-audio-card,frame-inversion$": 180*79149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 181*79149fb8SKuninori Morimoto "^simple-audio-card,bitclock-inversion$": 182*79149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 183*79149fb8SKuninori Morimoto "^simple-audio-card,format$": 184*79149fb8SKuninori Morimoto $ref: "#/definitions/format" 185*79149fb8SKuninori Morimoto "^simple-audio-card,mclk-fs$": 186*79149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 187*79149fb8SKuninori Morimoto "^simple-audio-card,aux-devs$": 188*79149fb8SKuninori Morimoto $ref: "#/definitions/aux-devs" 189*79149fb8SKuninori Morimoto "^simple-audio-card,convert-rate$": 190*79149fb8SKuninori Morimoto $ref: "#/definitions/convert-rate" 191*79149fb8SKuninori Morimoto "^simple-audio-card,convert-channels$": 192*79149fb8SKuninori Morimoto $ref: "#/definitions/convert-channels" 193*79149fb8SKuninori Morimoto "^simple-audio-card,prefix$": 194*79149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 195*79149fb8SKuninori Morimoto "^simple-audio-card,pin-switches$": 196*79149fb8SKuninori Morimoto $ref: "#/definitions/pin-switches" 197*79149fb8SKuninori Morimoto "^simple-audio-card,hp-det-gpio$": 198*79149fb8SKuninori Morimoto maxItems: 1 199*79149fb8SKuninori Morimoto "^simple-audio-card,mic-det-gpio$": 200*79149fb8SKuninori Morimoto maxItems: 1 201*79149fb8SKuninori Morimoto 202*79149fb8SKuninori Morimoto "^simple-audio-card,dai-link(@[0-9a-f]+)?$": 203*79149fb8SKuninori Morimoto description: | 204*79149fb8SKuninori Morimoto Container for dai-link level properties and the CPU and CODEC sub-nodes. 205*79149fb8SKuninori Morimoto This container may be omitted when the card has only one DAI link. 206*79149fb8SKuninori Morimoto type: object 207*79149fb8SKuninori Morimoto properties: 208*79149fb8SKuninori Morimoto reg: 209*79149fb8SKuninori Morimoto maxItems: 1 210*79149fb8SKuninori Morimoto 211*79149fb8SKuninori Morimoto # common properties 212*79149fb8SKuninori Morimoto frame-master: 213*79149fb8SKuninori Morimoto $ref: "#/definitions/frame-master" 214*79149fb8SKuninori Morimoto bitclock-master: 215*79149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-master" 216*79149fb8SKuninori Morimoto frame-inversion: 217*79149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 218*79149fb8SKuninori Morimoto bitclock-inversion: 219*79149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 220*79149fb8SKuninori Morimoto format: 221*79149fb8SKuninori Morimoto $ref: "#/definitions/format" 222*79149fb8SKuninori Morimoto mclk-fs: 223*79149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 224*79149fb8SKuninori Morimoto aux-devs: 225*79149fb8SKuninori Morimoto $ref: "#/definitions/aux-devs" 226*79149fb8SKuninori Morimoto convert-rate: 227*79149fb8SKuninori Morimoto $ref: "#/definitions/convert-rate" 228*79149fb8SKuninori Morimoto convert-channels: 229*79149fb8SKuninori Morimoto $ref: "#/definitions/convert-channels" 230*79149fb8SKuninori Morimoto prefix: 231*79149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 232*79149fb8SKuninori Morimoto pin-switches: 233*79149fb8SKuninori Morimoto $ref: "#/definitions/pin-switches" 234*79149fb8SKuninori Morimoto hp-det-gpio: 235*79149fb8SKuninori Morimoto maxItems: 1 236*79149fb8SKuninori Morimoto mic-det-gpio: 237*79149fb8SKuninori Morimoto maxItems: 1 238*79149fb8SKuninori Morimoto 239*79149fb8SKuninori Morimoto patternProperties: 240*79149fb8SKuninori Morimoto "^cpu(@[0-9a-f]+)?": 241*79149fb8SKuninori Morimoto $ref: "#/definitions/dai" 242*79149fb8SKuninori Morimoto "^codec(@[0-9a-f]+)?": 243*79149fb8SKuninori Morimoto $ref: "#/definitions/dai" 244*79149fb8SKuninori Morimoto additionalProperties: false 245*79149fb8SKuninori Morimoto 246*79149fb8SKuninori Morimotorequired: 247*79149fb8SKuninori Morimoto - compatible 248*79149fb8SKuninori Morimoto 249*79149fb8SKuninori MorimotoadditionalProperties: false 250*79149fb8SKuninori Morimoto 251*79149fb8SKuninori Morimotoexamples: 252*79149fb8SKuninori Morimoto#-------------------- 253*79149fb8SKuninori Morimoto# single DAI link 254*79149fb8SKuninori Morimoto#-------------------- 255*79149fb8SKuninori Morimoto - | 256*79149fb8SKuninori Morimoto sound { 257*79149fb8SKuninori Morimoto compatible = "simple-audio-card"; 258*79149fb8SKuninori Morimoto simple-audio-card,name = "VF610-Tower-Sound-Card"; 259*79149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 260*79149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&dailink0_master>; 261*79149fb8SKuninori Morimoto simple-audio-card,frame-master = <&dailink0_master>; 262*79149fb8SKuninori Morimoto simple-audio-card,widgets = 263*79149fb8SKuninori Morimoto "Microphone", "Microphone Jack", 264*79149fb8SKuninori Morimoto "Headphone", "Headphone Jack", 265*79149fb8SKuninori Morimoto "Speaker", "External Speaker"; 266*79149fb8SKuninori Morimoto simple-audio-card,routing = 267*79149fb8SKuninori Morimoto "MIC_IN", "Microphone Jack", 268*79149fb8SKuninori Morimoto "Headphone Jack", "HP_OUT", 269*79149fb8SKuninori Morimoto "External Speaker", "LINE_OUT"; 270*79149fb8SKuninori Morimoto 271*79149fb8SKuninori Morimoto simple-audio-card,cpu { 272*79149fb8SKuninori Morimoto sound-dai = <&sh_fsi2 0>; 273*79149fb8SKuninori Morimoto }; 274*79149fb8SKuninori Morimoto 275*79149fb8SKuninori Morimoto dailink0_master: simple-audio-card,codec { 276*79149fb8SKuninori Morimoto sound-dai = <&ak4648>; 277*79149fb8SKuninori Morimoto clocks = <&osc>; 278*79149fb8SKuninori Morimoto }; 279*79149fb8SKuninori Morimoto }; 280*79149fb8SKuninori Morimoto 281*79149fb8SKuninori Morimoto#-------------------- 282*79149fb8SKuninori Morimoto# Multi DAI links 283*79149fb8SKuninori Morimoto#-------------------- 284*79149fb8SKuninori Morimoto - | 285*79149fb8SKuninori Morimoto sound { 286*79149fb8SKuninori Morimoto compatible = "simple-audio-card"; 287*79149fb8SKuninori Morimoto simple-audio-card,name = "Cubox Audio"; 288*79149fb8SKuninori Morimoto 289*79149fb8SKuninori Morimoto #address-cells = <1>; 290*79149fb8SKuninori Morimoto #size-cells = <0>; 291*79149fb8SKuninori Morimoto 292*79149fb8SKuninori Morimoto simple-audio-card,dai-link@0 { /* I2S - HDMI */ 293*79149fb8SKuninori Morimoto reg = <0>; 294*79149fb8SKuninori Morimoto format = "i2s"; 295*79149fb8SKuninori Morimoto cpu { 296*79149fb8SKuninori Morimoto sound-dai = <&audio0>; 297*79149fb8SKuninori Morimoto }; 298*79149fb8SKuninori Morimoto codec { 299*79149fb8SKuninori Morimoto sound-dai = <&tda998x0>; 300*79149fb8SKuninori Morimoto }; 301*79149fb8SKuninori Morimoto }; 302*79149fb8SKuninori Morimoto 303*79149fb8SKuninori Morimoto simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */ 304*79149fb8SKuninori Morimoto reg = <1>; 305*79149fb8SKuninori Morimoto cpu { 306*79149fb8SKuninori Morimoto sound-dai = <&audio1>; 307*79149fb8SKuninori Morimoto }; 308*79149fb8SKuninori Morimoto codec { 309*79149fb8SKuninori Morimoto sound-dai = <&tda998x1>; 310*79149fb8SKuninori Morimoto }; 311*79149fb8SKuninori Morimoto }; 312*79149fb8SKuninori Morimoto 313*79149fb8SKuninori Morimoto simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */ 314*79149fb8SKuninori Morimoto reg = <2>; 315*79149fb8SKuninori Morimoto cpu { 316*79149fb8SKuninori Morimoto sound-dai = <&audio2>; 317*79149fb8SKuninori Morimoto }; 318*79149fb8SKuninori Morimoto codec { 319*79149fb8SKuninori Morimoto sound-dai = <&spdif_codec>; 320*79149fb8SKuninori Morimoto }; 321*79149fb8SKuninori Morimoto }; 322*79149fb8SKuninori Morimoto }; 323*79149fb8SKuninori Morimoto 324*79149fb8SKuninori Morimoto#-------------------- 325*79149fb8SKuninori Morimoto# route audio from IMX6 SSI2 through TLV320DAC3100 codec 326*79149fb8SKuninori Morimoto# through TPA6130A2 amplifier to headphones: 327*79149fb8SKuninori Morimoto#-------------------- 328*79149fb8SKuninori Morimoto - | 329*79149fb8SKuninori Morimoto sound { 330*79149fb8SKuninori Morimoto compatible = "simple-audio-card"; 331*79149fb8SKuninori Morimoto 332*79149fb8SKuninori Morimoto simple-audio-card,widgets = 333*79149fb8SKuninori Morimoto "Headphone", "Headphone Jack"; 334*79149fb8SKuninori Morimoto simple-audio-card,routing = 335*79149fb8SKuninori Morimoto "Headphone Jack", "HPLEFT", 336*79149fb8SKuninori Morimoto "Headphone Jack", "HPRIGHT", 337*79149fb8SKuninori Morimoto "LEFTIN", "HPL", 338*79149fb8SKuninori Morimoto "RIGHTIN", "HPR"; 339*79149fb8SKuninori Morimoto simple-audio-card,aux-devs = <&>; 340*79149fb8SKuninori Morimoto simple-audio-card,cpu { 341*79149fb8SKuninori Morimoto sound-dai = <&ssi2>; 342*79149fb8SKuninori Morimoto }; 343*79149fb8SKuninori Morimoto simple-audio-card,codec { 344*79149fb8SKuninori Morimoto sound-dai = <&codec>; 345*79149fb8SKuninori Morimoto clocks = <&clocks>; 346*79149fb8SKuninori Morimoto }; 347*79149fb8SKuninori Morimoto }; 348*79149fb8SKuninori Morimoto 349*79149fb8SKuninori Morimoto#-------------------- 350*79149fb8SKuninori Morimoto# Sampling Rate Conversion 351*79149fb8SKuninori Morimoto#-------------------- 352*79149fb8SKuninori Morimoto - | 353*79149fb8SKuninori Morimoto sound { 354*79149fb8SKuninori Morimoto compatible = "simple-audio-card"; 355*79149fb8SKuninori Morimoto 356*79149fb8SKuninori Morimoto simple-audio-card,name = "rsnd-ak4643"; 357*79149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 358*79149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&sndcodec>; 359*79149fb8SKuninori Morimoto simple-audio-card,frame-master = <&sndcodec>; 360*79149fb8SKuninori Morimoto 361*79149fb8SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 362*79149fb8SKuninori Morimoto 363*79149fb8SKuninori Morimoto simple-audio-card,prefix = "ak4642"; 364*79149fb8SKuninori Morimoto simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 365*79149fb8SKuninori Morimoto "DAI0 Capture", "ak4642 Capture"; 366*79149fb8SKuninori Morimoto 367*79149fb8SKuninori Morimoto sndcpu: simple-audio-card,cpu { 368*79149fb8SKuninori Morimoto sound-dai = <&rcar_sound>; 369*79149fb8SKuninori Morimoto }; 370*79149fb8SKuninori Morimoto 371*79149fb8SKuninori Morimoto sndcodec: simple-audio-card,codec { 372*79149fb8SKuninori Morimoto sound-dai = <&ak4643>; 373*79149fb8SKuninori Morimoto system-clock-frequency = <11289600>; 374*79149fb8SKuninori Morimoto }; 375*79149fb8SKuninori Morimoto }; 376*79149fb8SKuninori Morimoto 377*79149fb8SKuninori Morimoto#-------------------- 378*79149fb8SKuninori Morimoto# 2 CPU 1 Codec (Mixing) 379*79149fb8SKuninori Morimoto#-------------------- 380*79149fb8SKuninori Morimoto - | 381*79149fb8SKuninori Morimoto sound { 382*79149fb8SKuninori Morimoto compatible = "simple-audio-card"; 383*79149fb8SKuninori Morimoto 384*79149fb8SKuninori Morimoto simple-audio-card,name = "rsnd-ak4643"; 385*79149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 386*79149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&dpcmcpu>; 387*79149fb8SKuninori Morimoto simple-audio-card,frame-master = <&dpcmcpu>; 388*79149fb8SKuninori Morimoto 389*79149fb8SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 390*79149fb8SKuninori Morimoto simple-audio-card,convert-channels = <2>; 391*79149fb8SKuninori Morimoto 392*79149fb8SKuninori Morimoto simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 393*79149fb8SKuninori Morimoto "ak4642 Playback", "DAI1 Playback"; 394*79149fb8SKuninori Morimoto 395*79149fb8SKuninori Morimoto dpcmcpu: simple-audio-card,cpu@0 { 396*79149fb8SKuninori Morimoto sound-dai = <&rcar_sound 0>; 397*79149fb8SKuninori Morimoto }; 398*79149fb8SKuninori Morimoto 399*79149fb8SKuninori Morimoto simple-audio-card,cpu@1 { 400*79149fb8SKuninori Morimoto sound-dai = <&rcar_sound 1>; 401*79149fb8SKuninori Morimoto }; 402*79149fb8SKuninori Morimoto 403*79149fb8SKuninori Morimoto simple-audio-card,codec { 404*79149fb8SKuninori Morimoto prefix = "ak4642"; 405*79149fb8SKuninori Morimoto sound-dai = <&ak4643>; 406*79149fb8SKuninori Morimoto clocks = <&audio_clock>; 407*79149fb8SKuninori Morimoto }; 408*79149fb8SKuninori Morimoto }; 409*79149fb8SKuninori Morimoto 410*79149fb8SKuninori Morimoto#-------------------- 411*79149fb8SKuninori Morimoto# Multi DAI links with DPCM: 412*79149fb8SKuninori Morimoto# 413*79149fb8SKuninori Morimoto# CPU0 ------ ak4613 414*79149fb8SKuninori Morimoto# CPU1 ------ PCM3168A-p /* DPCM 1ch/2ch */ 415*79149fb8SKuninori Morimoto# CPU2 --/ /* DPCM 3ch/4ch */ 416*79149fb8SKuninori Morimoto# CPU3 --/ /* DPCM 5ch/6ch */ 417*79149fb8SKuninori Morimoto# CPU4 --/ /* DPCM 7ch/8ch */ 418*79149fb8SKuninori Morimoto# CPU5 ------ PCM3168A-c 419*79149fb8SKuninori Morimoto#-------------------- 420*79149fb8SKuninori Morimoto - | 421*79149fb8SKuninori Morimoto sound { 422*79149fb8SKuninori Morimoto compatible = "simple-audio-card"; 423*79149fb8SKuninori Morimoto 424*79149fb8SKuninori Morimoto simple-audio-card,routing = 425*79149fb8SKuninori Morimoto "pcm3168a Playback", "DAI1 Playback", 426*79149fb8SKuninori Morimoto "pcm3168a Playback", "DAI2 Playback", 427*79149fb8SKuninori Morimoto "pcm3168a Playback", "DAI3 Playback", 428*79149fb8SKuninori Morimoto "pcm3168a Playback", "DAI4 Playback"; 429*79149fb8SKuninori Morimoto 430*79149fb8SKuninori Morimoto simple-audio-card,dai-link@0 { 431*79149fb8SKuninori Morimoto format = "left_j"; 432*79149fb8SKuninori Morimoto bitclock-master = <&sndcpu0>; 433*79149fb8SKuninori Morimoto frame-master = <&sndcpu0>; 434*79149fb8SKuninori Morimoto 435*79149fb8SKuninori Morimoto sndcpu0: cpu { 436*79149fb8SKuninori Morimoto sound-dai = <&rcar_sound 0>; 437*79149fb8SKuninori Morimoto }; 438*79149fb8SKuninori Morimoto codec { 439*79149fb8SKuninori Morimoto sound-dai = <&ak4613>; 440*79149fb8SKuninori Morimoto }; 441*79149fb8SKuninori Morimoto }; 442*79149fb8SKuninori Morimoto 443*79149fb8SKuninori Morimoto simple-audio-card,dai-link@1 { 444*79149fb8SKuninori Morimoto format = "i2s"; 445*79149fb8SKuninori Morimoto bitclock-master = <&sndcpu1>; 446*79149fb8SKuninori Morimoto frame-master = <&sndcpu1>; 447*79149fb8SKuninori Morimoto 448*79149fb8SKuninori Morimoto convert-channels = <8>; /* TDM Split */ 449*79149fb8SKuninori Morimoto 450*79149fb8SKuninori Morimoto sndcpu1: cpu@0 { 451*79149fb8SKuninori Morimoto sound-dai = <&rcar_sound 1>; 452*79149fb8SKuninori Morimoto }; 453*79149fb8SKuninori Morimoto cpu@1 { 454*79149fb8SKuninori Morimoto sound-dai = <&rcar_sound 2>; 455*79149fb8SKuninori Morimoto }; 456*79149fb8SKuninori Morimoto cpu@2 { 457*79149fb8SKuninori Morimoto sound-dai = <&rcar_sound 3>; 458*79149fb8SKuninori Morimoto }; 459*79149fb8SKuninori Morimoto cpu@3 { 460*79149fb8SKuninori Morimoto sound-dai = <&rcar_sound 4>; 461*79149fb8SKuninori Morimoto }; 462*79149fb8SKuninori Morimoto codec { 463*79149fb8SKuninori Morimoto mclk-fs = <512>; 464*79149fb8SKuninori Morimoto prefix = "pcm3168a"; 465*79149fb8SKuninori Morimoto dai-tdm-slot-num = <8>; 466*79149fb8SKuninori Morimoto sound-dai = <&pcm3168a 0>; 467*79149fb8SKuninori Morimoto }; 468*79149fb8SKuninori Morimoto }; 469*79149fb8SKuninori Morimoto 470*79149fb8SKuninori Morimoto simple-audio-card,dai-link@2 { 471*79149fb8SKuninori Morimoto format = "i2s"; 472*79149fb8SKuninori Morimoto bitclock-master = <&sndcpu2>; 473*79149fb8SKuninori Morimoto frame-master = <&sndcpu2>; 474*79149fb8SKuninori Morimoto 475*79149fb8SKuninori Morimoto sndcpu2: cpu { 476*79149fb8SKuninori Morimoto sound-dai = <&rcar_sound 5>; 477*79149fb8SKuninori Morimoto }; 478*79149fb8SKuninori Morimoto codec { 479*79149fb8SKuninori Morimoto mclk-fs = <512>; 480*79149fb8SKuninori Morimoto prefix = "pcm3168a"; 481*79149fb8SKuninori Morimoto sound-dai = <&pcm3168a 1>; 482*79149fb8SKuninori Morimoto }; 483*79149fb8SKuninori Morimoto }; 484*79149fb8SKuninori Morimoto }; 485