1*2d8fc973SKuninori Morimoto# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*2d8fc973SKuninori Morimoto%YAML 1.2 3*2d8fc973SKuninori Morimoto--- 4*2d8fc973SKuninori Morimoto$id: http://devicetree.org/schemas/sound/renesas,rsnd.yaml# 5*2d8fc973SKuninori Morimoto$schema: http://devicetree.org/meta-schemas/core.yaml# 6*2d8fc973SKuninori Morimoto 7*2d8fc973SKuninori Morimototitle: Renesas R-Car Sound Driver Device Tree Bindings 8*2d8fc973SKuninori Morimoto 9*2d8fc973SKuninori Morimotomaintainers: 10*2d8fc973SKuninori Morimoto - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 11*2d8fc973SKuninori Morimoto 12*2d8fc973SKuninori Morimotoproperties: 13*2d8fc973SKuninori Morimoto 14*2d8fc973SKuninori Morimoto compatible: 15*2d8fc973SKuninori Morimoto oneOf: 16*2d8fc973SKuninori Morimoto # for Gen1 SoC 17*2d8fc973SKuninori Morimoto - items: 18*2d8fc973SKuninori Morimoto - enum: 19*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7778 # R-Car M1A 20*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7779 # R-Car H1 21*2d8fc973SKuninori Morimoto - enum: 22*2d8fc973SKuninori Morimoto - renesas,rcar_sound-gen1 23*2d8fc973SKuninori Morimoto # for Gen2 SoC 24*2d8fc973SKuninori Morimoto - items: 25*2d8fc973SKuninori Morimoto - enum: 26*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7742 # RZ/G1H 27*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7743 # RZ/G1M 28*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7744 # RZ/G1N 29*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7745 # RZ/G1E 30*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a77470 # RZ/G1C 31*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7790 # R-Car H2 32*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7791 # R-Car M2-W 33*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7793 # R-Car M2-N 34*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7794 # R-Car E2 35*2d8fc973SKuninori Morimoto - enum: 36*2d8fc973SKuninori Morimoto - renesas,rcar_sound-gen2 37*2d8fc973SKuninori Morimoto # for Gen3 SoC 38*2d8fc973SKuninori Morimoto - items: 39*2d8fc973SKuninori Morimoto - enum: 40*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a774a1 # RZ/G2M 41*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a774b1 # RZ/G2N 42*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a774c0 # RZ/G2E 43*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a774e1 # RZ/G2H 44*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7795 # R-Car H3 45*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a7796 # R-Car M3-W 46*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a77965 # R-Car M3-N 47*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a77990 # R-Car E3 48*2d8fc973SKuninori Morimoto - renesas,rcar_sound-r8a77995 # R-Car D3 49*2d8fc973SKuninori Morimoto - enum: 50*2d8fc973SKuninori Morimoto - renesas,rcar_sound-gen3 51*2d8fc973SKuninori Morimoto # for Generic 52*2d8fc973SKuninori Morimoto - items: 53*2d8fc973SKuninori Morimoto - enum: 54*2d8fc973SKuninori Morimoto - renesas,rcar_sound-gen1 55*2d8fc973SKuninori Morimoto - renesas,rcar_sound-gen2 56*2d8fc973SKuninori Morimoto - renesas,rcar_sound-gen3 57*2d8fc973SKuninori Morimoto 58*2d8fc973SKuninori Morimoto reg: 59*2d8fc973SKuninori Morimoto minItems: 1 60*2d8fc973SKuninori Morimoto maxItems: 5 61*2d8fc973SKuninori Morimoto 62*2d8fc973SKuninori Morimoto reg-names: 63*2d8fc973SKuninori Morimoto minItems: 1 64*2d8fc973SKuninori Morimoto maxItems: 5 65*2d8fc973SKuninori Morimoto 66*2d8fc973SKuninori Morimoto "#sound-dai-cells": 67*2d8fc973SKuninori Morimoto description: | 68*2d8fc973SKuninori Morimoto it must be 0 if your system is using single DAI 69*2d8fc973SKuninori Morimoto it must be 1 if your system is using multi DAIs 70*2d8fc973SKuninori Morimoto enum: [0, 1] 71*2d8fc973SKuninori Morimoto 72*2d8fc973SKuninori Morimoto "#clock-cells": 73*2d8fc973SKuninori Morimoto description: | 74*2d8fc973SKuninori Morimoto it must be 0 if your system has audio_clkout 75*2d8fc973SKuninori Morimoto it must be 1 if your system has audio_clkout0/1/2/3 76*2d8fc973SKuninori Morimoto enum: [0, 1] 77*2d8fc973SKuninori Morimoto 78*2d8fc973SKuninori Morimoto clock-frequency: 79*2d8fc973SKuninori Morimoto description: for audio_clkout0/1/2/3 80*2d8fc973SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32-array 81*2d8fc973SKuninori Morimoto 82*2d8fc973SKuninori Morimoto clkout-lr-asynchronous: 83*2d8fc973SKuninori Morimoto description: audio_clkoutn is asynchronizes with lr-clock. 84*2d8fc973SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 85*2d8fc973SKuninori Morimoto 86*2d8fc973SKuninori Morimoto power-domains: true 87*2d8fc973SKuninori Morimoto 88*2d8fc973SKuninori Morimoto resets: 89*2d8fc973SKuninori Morimoto maxItems: 11 90*2d8fc973SKuninori Morimoto 91*2d8fc973SKuninori Morimoto reset-names: 92*2d8fc973SKuninori Morimoto maxItems: 11 93*2d8fc973SKuninori Morimoto 94*2d8fc973SKuninori Morimoto clocks: 95*2d8fc973SKuninori Morimoto description: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks. 96*2d8fc973SKuninori Morimoto minItems: 1 97*2d8fc973SKuninori Morimoto maxItems: 31 98*2d8fc973SKuninori Morimoto 99*2d8fc973SKuninori Morimoto clock-names: 100*2d8fc973SKuninori Morimoto description: List of necessary clock names. 101*2d8fc973SKuninori Morimoto minItems: 1 102*2d8fc973SKuninori Morimoto maxItems: 31 103*2d8fc973SKuninori Morimoto items: 104*2d8fc973SKuninori Morimoto oneOf: 105*2d8fc973SKuninori Morimoto - const: ssi-all 106*2d8fc973SKuninori Morimoto - pattern: '^ssi\.[0-9]$' 107*2d8fc973SKuninori Morimoto - pattern: '^src\.[0-9]$' 108*2d8fc973SKuninori Morimoto - pattern: '^mix\.[0-1]$' 109*2d8fc973SKuninori Morimoto - pattern: '^ctu\.[0-1]$' 110*2d8fc973SKuninori Morimoto - pattern: '^dvc\.[0-1]$' 111*2d8fc973SKuninori Morimoto - pattern: '^clk_(a|b|c|i)$' 112*2d8fc973SKuninori Morimoto 113*2d8fc973SKuninori Morimoto port: 114*2d8fc973SKuninori Morimoto description: OF-Graph subnode 115*2d8fc973SKuninori Morimoto $ref: "audio-graph-card.yaml#/properties/port" 116*2d8fc973SKuninori Morimoto 117*2d8fc973SKuninori Morimoto ports: 118*2d8fc973SKuninori Morimoto description: multi OF-Graph subnode 119*2d8fc973SKuninori Morimoto $ref: "audio-graph-card.yaml#/properties/ports" 120*2d8fc973SKuninori Morimoto 121*2d8fc973SKuninori Morimoto# use patternProperties to avoid naming "xxx,yyy" issue 122*2d8fc973SKuninori MorimotopatternProperties: 123*2d8fc973SKuninori Morimoto "^rcar_sound,dvc$": 124*2d8fc973SKuninori Morimoto description: DVC subnode. 125*2d8fc973SKuninori Morimoto type: object 126*2d8fc973SKuninori Morimoto patternProperties: 127*2d8fc973SKuninori Morimoto "^dvc-[0-1]$": 128*2d8fc973SKuninori Morimoto type: object 129*2d8fc973SKuninori Morimoto properties: 130*2d8fc973SKuninori Morimoto dmas: 131*2d8fc973SKuninori Morimoto maxItems: 1 132*2d8fc973SKuninori Morimoto dma-names: 133*2d8fc973SKuninori Morimoto const: "tx" 134*2d8fc973SKuninori Morimoto required: 135*2d8fc973SKuninori Morimoto - dmas 136*2d8fc973SKuninori Morimoto - dma-names 137*2d8fc973SKuninori Morimoto additionalProperties: false 138*2d8fc973SKuninori Morimoto 139*2d8fc973SKuninori Morimoto "^rcar_sound,mix$": 140*2d8fc973SKuninori Morimoto description: MIX subnode. 141*2d8fc973SKuninori Morimoto type: object 142*2d8fc973SKuninori Morimoto patternProperties: 143*2d8fc973SKuninori Morimoto "^mix-[0-1]$": 144*2d8fc973SKuninori Morimoto type: object 145*2d8fc973SKuninori Morimoto # no properties 146*2d8fc973SKuninori Morimoto additionalProperties: false 147*2d8fc973SKuninori Morimoto 148*2d8fc973SKuninori Morimoto "^rcar_sound,ctu$": 149*2d8fc973SKuninori Morimoto description: CTU subnode. 150*2d8fc973SKuninori Morimoto type: object 151*2d8fc973SKuninori Morimoto patternProperties: 152*2d8fc973SKuninori Morimoto "^ctu-[0-7]$": 153*2d8fc973SKuninori Morimoto type: object 154*2d8fc973SKuninori Morimoto # no properties 155*2d8fc973SKuninori Morimoto additionalProperties: false 156*2d8fc973SKuninori Morimoto 157*2d8fc973SKuninori Morimoto "^rcar_sound,src$": 158*2d8fc973SKuninori Morimoto description: SRC subnode. 159*2d8fc973SKuninori Morimoto type: object 160*2d8fc973SKuninori Morimoto patternProperties: 161*2d8fc973SKuninori Morimoto "^src-[0-9]$": 162*2d8fc973SKuninori Morimoto type: object 163*2d8fc973SKuninori Morimoto properties: 164*2d8fc973SKuninori Morimoto interrupts: 165*2d8fc973SKuninori Morimoto maxItems: 1 166*2d8fc973SKuninori Morimoto dmas: 167*2d8fc973SKuninori Morimoto maxItems: 2 168*2d8fc973SKuninori Morimoto dma-names: 169*2d8fc973SKuninori Morimoto allOf: 170*2d8fc973SKuninori Morimoto - items: 171*2d8fc973SKuninori Morimoto enum: 172*2d8fc973SKuninori Morimoto - tx 173*2d8fc973SKuninori Morimoto - rx 174*2d8fc973SKuninori Morimoto required: 175*2d8fc973SKuninori Morimoto - interrupts 176*2d8fc973SKuninori Morimoto - dmas 177*2d8fc973SKuninori Morimoto - dma-names 178*2d8fc973SKuninori Morimoto additionalProperties: false 179*2d8fc973SKuninori Morimoto 180*2d8fc973SKuninori Morimoto "^rcar_sound,ssiu$": 181*2d8fc973SKuninori Morimoto description: SSIU subnode. 182*2d8fc973SKuninori Morimoto type: object 183*2d8fc973SKuninori Morimoto patternProperties: 184*2d8fc973SKuninori Morimoto "^ssiu-[0-9]+$": 185*2d8fc973SKuninori Morimoto type: object 186*2d8fc973SKuninori Morimoto properties: 187*2d8fc973SKuninori Morimoto dmas: 188*2d8fc973SKuninori Morimoto maxItems: 2 189*2d8fc973SKuninori Morimoto dma-names: 190*2d8fc973SKuninori Morimoto allOf: 191*2d8fc973SKuninori Morimoto - items: 192*2d8fc973SKuninori Morimoto enum: 193*2d8fc973SKuninori Morimoto - tx 194*2d8fc973SKuninori Morimoto - rx 195*2d8fc973SKuninori Morimoto required: 196*2d8fc973SKuninori Morimoto - dmas 197*2d8fc973SKuninori Morimoto - dma-names 198*2d8fc973SKuninori Morimoto additionalProperties: false 199*2d8fc973SKuninori Morimoto 200*2d8fc973SKuninori Morimoto "^rcar_sound,ssi$": 201*2d8fc973SKuninori Morimoto description: SSI subnode. 202*2d8fc973SKuninori Morimoto type: object 203*2d8fc973SKuninori Morimoto patternProperties: 204*2d8fc973SKuninori Morimoto "^ssi-[0-9]$": 205*2d8fc973SKuninori Morimoto type: object 206*2d8fc973SKuninori Morimoto properties: 207*2d8fc973SKuninori Morimoto interrupts: 208*2d8fc973SKuninori Morimoto maxItems: 1 209*2d8fc973SKuninori Morimoto dmas: 210*2d8fc973SKuninori Morimoto minItems: 2 211*2d8fc973SKuninori Morimoto maxItems: 4 212*2d8fc973SKuninori Morimoto dma-names: 213*2d8fc973SKuninori Morimoto allOf: 214*2d8fc973SKuninori Morimoto - items: 215*2d8fc973SKuninori Morimoto enum: 216*2d8fc973SKuninori Morimoto - tx 217*2d8fc973SKuninori Morimoto - rx 218*2d8fc973SKuninori Morimoto - txu # if no ssiu node 219*2d8fc973SKuninori Morimoto - rxu # if no ssiu node 220*2d8fc973SKuninori Morimoto 221*2d8fc973SKuninori Morimoto shared-pin: 222*2d8fc973SKuninori Morimoto description: shared clock pin 223*2d8fc973SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 224*2d8fc973SKuninori Morimoto pio-transfer: 225*2d8fc973SKuninori Morimoto description: PIO transfer mode 226*2d8fc973SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 227*2d8fc973SKuninori Morimoto no-busif: 228*2d8fc973SKuninori Morimoto description: BUSIF is not used when [mem -> SSI] via DMA case 229*2d8fc973SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 230*2d8fc973SKuninori Morimoto required: 231*2d8fc973SKuninori Morimoto - interrupts 232*2d8fc973SKuninori Morimoto - dmas 233*2d8fc973SKuninori Morimoto - dma-names 234*2d8fc973SKuninori Morimoto additionalProperties: false 235*2d8fc973SKuninori Morimoto 236*2d8fc973SKuninori Morimoto # For DAI base 237*2d8fc973SKuninori Morimoto "^rcar_sound,dai$": 238*2d8fc973SKuninori Morimoto description: DAI subnode. 239*2d8fc973SKuninori Morimoto type: object 240*2d8fc973SKuninori Morimoto patternProperties: 241*2d8fc973SKuninori Morimoto "^dai([0-9]+)?$": 242*2d8fc973SKuninori Morimoto type: object 243*2d8fc973SKuninori Morimoto properties: 244*2d8fc973SKuninori Morimoto playback: 245*2d8fc973SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/phandle-array 246*2d8fc973SKuninori Morimoto capture: 247*2d8fc973SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/phandle-array 248*2d8fc973SKuninori Morimoto anyOf: 249*2d8fc973SKuninori Morimoto - required: 250*2d8fc973SKuninori Morimoto - playback 251*2d8fc973SKuninori Morimoto - required: 252*2d8fc973SKuninori Morimoto - capture 253*2d8fc973SKuninori Morimoto additionalProperties: false 254*2d8fc973SKuninori Morimoto 255*2d8fc973SKuninori Morimotorequired: 256*2d8fc973SKuninori Morimoto - compatible 257*2d8fc973SKuninori Morimoto - reg 258*2d8fc973SKuninori Morimoto - reg-names 259*2d8fc973SKuninori Morimoto - clocks 260*2d8fc973SKuninori Morimoto - clock-names 261*2d8fc973SKuninori Morimoto - "#sound-dai-cells" 262*2d8fc973SKuninori Morimoto 263*2d8fc973SKuninori MorimotoallOf: 264*2d8fc973SKuninori Morimoto - if: 265*2d8fc973SKuninori Morimoto properties: 266*2d8fc973SKuninori Morimoto compatible: 267*2d8fc973SKuninori Morimoto contains: 268*2d8fc973SKuninori Morimoto const: renesas,rcar_sound-gen1 269*2d8fc973SKuninori Morimoto then: 270*2d8fc973SKuninori Morimoto properties: 271*2d8fc973SKuninori Morimoto reg: 272*2d8fc973SKuninori Morimoto maxItems: 3 273*2d8fc973SKuninori Morimoto reg-names: 274*2d8fc973SKuninori Morimoto maxItems: 3 275*2d8fc973SKuninori Morimoto items: 276*2d8fc973SKuninori Morimoto enum: 277*2d8fc973SKuninori Morimoto - scu 278*2d8fc973SKuninori Morimoto - ssi 279*2d8fc973SKuninori Morimoto - adg 280*2d8fc973SKuninori Morimoto else: 281*2d8fc973SKuninori Morimoto properties: 282*2d8fc973SKuninori Morimoto reg: 283*2d8fc973SKuninori Morimoto maxItems: 5 284*2d8fc973SKuninori Morimoto reg-names: 285*2d8fc973SKuninori Morimoto maxItems: 5 286*2d8fc973SKuninori Morimoto items: 287*2d8fc973SKuninori Morimoto enum: 288*2d8fc973SKuninori Morimoto - scu 289*2d8fc973SKuninori Morimoto - adg 290*2d8fc973SKuninori Morimoto - ssiu 291*2d8fc973SKuninori Morimoto - ssi 292*2d8fc973SKuninori Morimoto - audmapp 293*2d8fc973SKuninori Morimoto 294*2d8fc973SKuninori MorimotoadditionalProperties: false 295*2d8fc973SKuninori Morimoto 296*2d8fc973SKuninori Morimotoexamples: 297*2d8fc973SKuninori Morimoto - | 298*2d8fc973SKuninori Morimoto rcar_sound: sound@ec500000 { 299*2d8fc973SKuninori Morimoto #sound-dai-cells = <1>; 300*2d8fc973SKuninori Morimoto compatible = "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2"; 301*2d8fc973SKuninori Morimoto reg = <0xec500000 0x1000>, /* SCU */ 302*2d8fc973SKuninori Morimoto <0xec5a0000 0x100>, /* ADG */ 303*2d8fc973SKuninori Morimoto <0xec540000 0x1000>, /* SSIU */ 304*2d8fc973SKuninori Morimoto <0xec541000 0x1280>, /* SSI */ 305*2d8fc973SKuninori Morimoto <0xec740000 0x200>; /* Audio DMAC peri peri*/ 306*2d8fc973SKuninori Morimoto reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; 307*2d8fc973SKuninori Morimoto 308*2d8fc973SKuninori Morimoto clocks = <&mstp10_clks 1005>, /* SSI-ALL */ 309*2d8fc973SKuninori Morimoto <&mstp10_clks 1006>, <&mstp10_clks 1007>, /* SSI9, SSI8 */ 310*2d8fc973SKuninori Morimoto <&mstp10_clks 1008>, <&mstp10_clks 1009>, /* SSI7, SSI6 */ 311*2d8fc973SKuninori Morimoto <&mstp10_clks 1010>, <&mstp10_clks 1011>, /* SSI5, SSI4 */ 312*2d8fc973SKuninori Morimoto <&mstp10_clks 1012>, <&mstp10_clks 1013>, /* SSI3, SSI2 */ 313*2d8fc973SKuninori Morimoto <&mstp10_clks 1014>, <&mstp10_clks 1015>, /* SSI1, SSI0 */ 314*2d8fc973SKuninori Morimoto <&mstp10_clks 1022>, <&mstp10_clks 1023>, /* SRC9, SRC8 */ 315*2d8fc973SKuninori Morimoto <&mstp10_clks 1024>, <&mstp10_clks 1025>, /* SRC7, SRC6 */ 316*2d8fc973SKuninori Morimoto <&mstp10_clks 1026>, <&mstp10_clks 1027>, /* SRC5, SRC4 */ 317*2d8fc973SKuninori Morimoto <&mstp10_clks 1028>, <&mstp10_clks 1029>, /* SRC3, SRC2 */ 318*2d8fc973SKuninori Morimoto <&mstp10_clks 1030>, <&mstp10_clks 1031>, /* SRC1, SRC0 */ 319*2d8fc973SKuninori Morimoto <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* MIX1, MIX0 */ 320*2d8fc973SKuninori Morimoto <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* CTU1, CTU0 */ 321*2d8fc973SKuninori Morimoto <&mstp10_clks 1019>, <&mstp10_clks 1018>, /* DVC0, DVC1 */ 322*2d8fc973SKuninori Morimoto <&audio_clk_a>, <&audio_clk_b>, /* CLKA, CLKB */ 323*2d8fc973SKuninori Morimoto <&audio_clk_c>, <&audio_clk_i>; /* CLKC, CLKI */ 324*2d8fc973SKuninori Morimoto 325*2d8fc973SKuninori Morimoto clock-names = "ssi-all", 326*2d8fc973SKuninori Morimoto "ssi.9", "ssi.8", 327*2d8fc973SKuninori Morimoto "ssi.7", "ssi.6", 328*2d8fc973SKuninori Morimoto "ssi.5", "ssi.4", 329*2d8fc973SKuninori Morimoto "ssi.3", "ssi.2", 330*2d8fc973SKuninori Morimoto "ssi.1", "ssi.0", 331*2d8fc973SKuninori Morimoto "src.9", "src.8", 332*2d8fc973SKuninori Morimoto "src.7", "src.6", 333*2d8fc973SKuninori Morimoto "src.5", "src.4", 334*2d8fc973SKuninori Morimoto "src.3", "src.2", 335*2d8fc973SKuninori Morimoto "src.1", "src.0", 336*2d8fc973SKuninori Morimoto "mix.1", "mix.0", 337*2d8fc973SKuninori Morimoto "ctu.1", "ctu.0", 338*2d8fc973SKuninori Morimoto "dvc.0", "dvc.1", 339*2d8fc973SKuninori Morimoto "clk_a", "clk_b", 340*2d8fc973SKuninori Morimoto "clk_c", "clk_i"; 341*2d8fc973SKuninori Morimoto 342*2d8fc973SKuninori Morimoto rcar_sound,dvc { 343*2d8fc973SKuninori Morimoto dvc0: dvc-0 { 344*2d8fc973SKuninori Morimoto dmas = <&audma0 0xbc>; 345*2d8fc973SKuninori Morimoto dma-names = "tx"; 346*2d8fc973SKuninori Morimoto }; 347*2d8fc973SKuninori Morimoto dvc1: dvc-1 { 348*2d8fc973SKuninori Morimoto dmas = <&audma0 0xbe>; 349*2d8fc973SKuninori Morimoto dma-names = "tx"; 350*2d8fc973SKuninori Morimoto }; 351*2d8fc973SKuninori Morimoto }; 352*2d8fc973SKuninori Morimoto 353*2d8fc973SKuninori Morimoto rcar_sound,mix { 354*2d8fc973SKuninori Morimoto mix0: mix-0 { }; 355*2d8fc973SKuninori Morimoto mix1: mix-1 { }; 356*2d8fc973SKuninori Morimoto }; 357*2d8fc973SKuninori Morimoto 358*2d8fc973SKuninori Morimoto rcar_sound,ctu { 359*2d8fc973SKuninori Morimoto ctu00: ctu-0 { }; 360*2d8fc973SKuninori Morimoto ctu01: ctu-1 { }; 361*2d8fc973SKuninori Morimoto ctu02: ctu-2 { }; 362*2d8fc973SKuninori Morimoto ctu03: ctu-3 { }; 363*2d8fc973SKuninori Morimoto ctu10: ctu-4 { }; 364*2d8fc973SKuninori Morimoto ctu11: ctu-5 { }; 365*2d8fc973SKuninori Morimoto ctu12: ctu-6 { }; 366*2d8fc973SKuninori Morimoto ctu13: ctu-7 { }; 367*2d8fc973SKuninori Morimoto }; 368*2d8fc973SKuninori Morimoto 369*2d8fc973SKuninori Morimoto rcar_sound,src { 370*2d8fc973SKuninori Morimoto src0: src-0 { 371*2d8fc973SKuninori Morimoto status = "disabled"; 372*2d8fc973SKuninori Morimoto }; 373*2d8fc973SKuninori Morimoto src1: src-1 { 374*2d8fc973SKuninori Morimoto interrupts = <0 353 0>; 375*2d8fc973SKuninori Morimoto dmas = <&audma0 0x87>, <&audma1 0x9c>; 376*2d8fc973SKuninori Morimoto dma-names = "rx", "tx"; 377*2d8fc973SKuninori Morimoto }; 378*2d8fc973SKuninori Morimoto /* skip after src-2 */ 379*2d8fc973SKuninori Morimoto }; 380*2d8fc973SKuninori Morimoto 381*2d8fc973SKuninori Morimoto rcar_sound,ssiu { 382*2d8fc973SKuninori Morimoto ssiu00: ssiu-0 { 383*2d8fc973SKuninori Morimoto dmas = <&audma0 0x15>, <&audma1 0x16>; 384*2d8fc973SKuninori Morimoto dma-names = "rx", "tx"; 385*2d8fc973SKuninori Morimoto }; 386*2d8fc973SKuninori Morimoto ssiu01: ssiu-1 { 387*2d8fc973SKuninori Morimoto dmas = <&audma0 0x35>, <&audma1 0x36>; 388*2d8fc973SKuninori Morimoto dma-names = "rx", "tx"; 389*2d8fc973SKuninori Morimoto }; 390*2d8fc973SKuninori Morimoto /* skip after ssiu-2 */ 391*2d8fc973SKuninori Morimoto }; 392*2d8fc973SKuninori Morimoto 393*2d8fc973SKuninori Morimoto rcar_sound,ssi { 394*2d8fc973SKuninori Morimoto ssi0: ssi-0 { 395*2d8fc973SKuninori Morimoto interrupts = <0 370 1>; 396*2d8fc973SKuninori Morimoto dmas = <&audma0 0x01>, <&audma1 0x02>; 397*2d8fc973SKuninori Morimoto dma-names = "rx", "tx"; 398*2d8fc973SKuninori Morimoto }; 399*2d8fc973SKuninori Morimoto ssi1: ssi-1 { 400*2d8fc973SKuninori Morimoto interrupts = <0 371 1>; 401*2d8fc973SKuninori Morimoto dmas = <&audma0 0x03>, <&audma1 0x04>; 402*2d8fc973SKuninori Morimoto dma-names = "rx", "tx"; 403*2d8fc973SKuninori Morimoto }; 404*2d8fc973SKuninori Morimoto /* skip other ssi-2 */ 405*2d8fc973SKuninori Morimoto }; 406*2d8fc973SKuninori Morimoto 407*2d8fc973SKuninori Morimoto /* DAI base */ 408*2d8fc973SKuninori Morimoto rcar_sound,dai { 409*2d8fc973SKuninori Morimoto dai0 { 410*2d8fc973SKuninori Morimoto playback = <&ssi5 &src5>; 411*2d8fc973SKuninori Morimoto capture = <&ssi6>; 412*2d8fc973SKuninori Morimoto }; 413*2d8fc973SKuninori Morimoto dai1 { 414*2d8fc973SKuninori Morimoto playback = <&ssi3>; 415*2d8fc973SKuninori Morimoto }; 416*2d8fc973SKuninori Morimoto dai2 { 417*2d8fc973SKuninori Morimoto capture = <&ssi4>; 418*2d8fc973SKuninori Morimoto }; 419*2d8fc973SKuninori Morimoto dai3 { 420*2d8fc973SKuninori Morimoto playback = <&ssi7>; 421*2d8fc973SKuninori Morimoto }; 422*2d8fc973SKuninori Morimoto dai4 { 423*2d8fc973SKuninori Morimoto capture = <&ssi8>; 424*2d8fc973SKuninori Morimoto }; 425*2d8fc973SKuninori Morimoto }; 426*2d8fc973SKuninori Morimoto 427*2d8fc973SKuninori Morimoto /* assume audio-graph */ 428*2d8fc973SKuninori Morimoto port { 429*2d8fc973SKuninori Morimoto rsnd_endpoint: endpoint { 430*2d8fc973SKuninori Morimoto remote-endpoint = <&codec_endpoint>; 431*2d8fc973SKuninori Morimoto 432*2d8fc973SKuninori Morimoto dai-format = "left_j"; 433*2d8fc973SKuninori Morimoto bitclock-master = <&rsnd_endpoint0>; 434*2d8fc973SKuninori Morimoto frame-master = <&rsnd_endpoint0>; 435*2d8fc973SKuninori Morimoto 436*2d8fc973SKuninori Morimoto playback = <&ssi0 &src0 &dvc0>; 437*2d8fc973SKuninori Morimoto capture = <&ssi1 &src1 &dvc1>; 438*2d8fc973SKuninori Morimoto }; 439*2d8fc973SKuninori Morimoto }; 440*2d8fc973SKuninori Morimoto }; 441*2d8fc973SKuninori Morimoto 442*2d8fc973SKuninori Morimoto 443*2d8fc973SKuninori Morimoto /* assume audio-graph */ 444*2d8fc973SKuninori Morimoto codec { 445*2d8fc973SKuninori Morimoto port { 446*2d8fc973SKuninori Morimoto codec_endpoint: endpoint { 447*2d8fc973SKuninori Morimoto remote-endpoint = <&rsnd_endpoint>; 448*2d8fc973SKuninori Morimoto }; 449*2d8fc973SKuninori Morimoto }; 450*2d8fc973SKuninori Morimoto }; 451