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