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: 81fac71e4eSEmmanuel 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 151*aa1a8ff2SEmmanuel Vadot additional-devs: 152*aa1a8ff2SEmmanuel Vadot type: object 153*aa1a8ff2SEmmanuel Vadot description: 154*aa1a8ff2SEmmanuel Vadot Additional devices used by the simple audio card. 155*aa1a8ff2SEmmanuel Vadot patternProperties: 156*aa1a8ff2SEmmanuel Vadot '^iio-aux(-.+)?$': 157*aa1a8ff2SEmmanuel Vadot type: object 158*aa1a8ff2SEmmanuel Vadot $ref: audio-iio-aux.yaml# 159*aa1a8ff2SEmmanuel Vadot 160c66ec88fSEmmanuel Vadotproperties: 161c66ec88fSEmmanuel Vadot compatible: 162c66ec88fSEmmanuel Vadot contains: 163c66ec88fSEmmanuel Vadot enum: 164c66ec88fSEmmanuel Vadot - simple-audio-card 165c66ec88fSEmmanuel Vadot - simple-scu-audio-card 166c66ec88fSEmmanuel Vadot 167c66ec88fSEmmanuel Vadot "#address-cells": 168c66ec88fSEmmanuel Vadot const: 1 169c66ec88fSEmmanuel Vadot "#size-cells": 170c66ec88fSEmmanuel Vadot const: 0 171c66ec88fSEmmanuel Vadot 172c66ec88fSEmmanuel Vadot label: 173c66ec88fSEmmanuel Vadot $ref: "#/definitions/label" 174c66ec88fSEmmanuel Vadot 175c66ec88fSEmmanuel Vadot simple-audio-card,name: 176c66ec88fSEmmanuel Vadot description: User specified audio sound card name. 177c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string 178c66ec88fSEmmanuel Vadot 179c9ccf3a3SEmmanuel Vadot simple-audio-card,widgets: 180c66ec88fSEmmanuel Vadot $ref: "#/definitions/widgets" 181c9ccf3a3SEmmanuel Vadot simple-audio-card,routing: 182c66ec88fSEmmanuel Vadot $ref: "#/definitions/routing" 183c66ec88fSEmmanuel Vadot 184c66ec88fSEmmanuel Vadot # common properties 185c9ccf3a3SEmmanuel Vadot simple-audio-card,frame-master: 186c66ec88fSEmmanuel Vadot $ref: "#/definitions/frame-master" 187c9ccf3a3SEmmanuel Vadot simple-audio-card,bitclock-master: 188c66ec88fSEmmanuel Vadot $ref: "#/definitions/bitclock-master" 189c9ccf3a3SEmmanuel Vadot simple-audio-card,frame-inversion: 190c66ec88fSEmmanuel Vadot $ref: "#/definitions/frame-inversion" 191c9ccf3a3SEmmanuel Vadot simple-audio-card,bitclock-inversion: 192c66ec88fSEmmanuel Vadot $ref: "#/definitions/bitclock-inversion" 193c9ccf3a3SEmmanuel Vadot simple-audio-card,format: 194c66ec88fSEmmanuel Vadot $ref: "#/definitions/format" 195c9ccf3a3SEmmanuel Vadot simple-audio-card,mclk-fs: 196c66ec88fSEmmanuel Vadot $ref: "#/definitions/mclk-fs" 197c9ccf3a3SEmmanuel Vadot simple-audio-card,aux-devs: 198c66ec88fSEmmanuel Vadot $ref: "#/definitions/aux-devs" 199*aa1a8ff2SEmmanuel Vadot simple-audio-card,additional-devs: 200*aa1a8ff2SEmmanuel Vadot $ref: "#/definitions/additional-devs" 201c9ccf3a3SEmmanuel Vadot simple-audio-card,convert-rate: 202c66ec88fSEmmanuel Vadot $ref: "#/definitions/convert-rate" 203c9ccf3a3SEmmanuel Vadot simple-audio-card,convert-channels: 204c66ec88fSEmmanuel Vadot $ref: "#/definitions/convert-channels" 205c9ccf3a3SEmmanuel Vadot simple-audio-card,prefix: 206c66ec88fSEmmanuel Vadot $ref: "#/definitions/prefix" 207c9ccf3a3SEmmanuel Vadot simple-audio-card,pin-switches: 208c66ec88fSEmmanuel Vadot $ref: "#/definitions/pin-switches" 209c9ccf3a3SEmmanuel Vadot simple-audio-card,hp-det-gpio: 210c66ec88fSEmmanuel Vadot maxItems: 1 211c9ccf3a3SEmmanuel Vadot simple-audio-card,mic-det-gpio: 212c66ec88fSEmmanuel Vadot maxItems: 1 213c66ec88fSEmmanuel Vadot 214c9ccf3a3SEmmanuel VadotpatternProperties: 215c9ccf3a3SEmmanuel Vadot "^simple-audio-card,cpu(@[0-9a-f]+)?$": 216c9ccf3a3SEmmanuel Vadot $ref: "#/definitions/dai" 217c9ccf3a3SEmmanuel Vadot "^simple-audio-card,codec(@[0-9a-f]+)?$": 218c9ccf3a3SEmmanuel Vadot $ref: "#/definitions/dai" 219cb7aa33aSEmmanuel Vadot "^simple-audio-card,plat(@[0-9a-f]+)?$": 220cb7aa33aSEmmanuel Vadot $ref: "#/definitions/dai" 221c9ccf3a3SEmmanuel Vadot 222c66ec88fSEmmanuel Vadot "^simple-audio-card,dai-link(@[0-9a-f]+)?$": 223c66ec88fSEmmanuel Vadot description: | 224c66ec88fSEmmanuel Vadot Container for dai-link level properties and the CPU and CODEC sub-nodes. 225c66ec88fSEmmanuel Vadot This container may be omitted when the card has only one DAI link. 226c66ec88fSEmmanuel Vadot type: object 227c66ec88fSEmmanuel Vadot properties: 228c66ec88fSEmmanuel Vadot reg: 229c66ec88fSEmmanuel Vadot maxItems: 1 230c66ec88fSEmmanuel Vadot 231cb7aa33aSEmmanuel Vadot "#address-cells": 232cb7aa33aSEmmanuel Vadot const: 1 233cb7aa33aSEmmanuel Vadot "#size-cells": 234cb7aa33aSEmmanuel Vadot const: 0 235c66ec88fSEmmanuel Vadot # common properties 236c66ec88fSEmmanuel Vadot frame-master: 237c66ec88fSEmmanuel Vadot $ref: "#/definitions/frame-master" 238c66ec88fSEmmanuel Vadot bitclock-master: 239c66ec88fSEmmanuel Vadot $ref: "#/definitions/bitclock-master" 240c66ec88fSEmmanuel Vadot frame-inversion: 241c66ec88fSEmmanuel Vadot $ref: "#/definitions/frame-inversion" 242c66ec88fSEmmanuel Vadot bitclock-inversion: 243c66ec88fSEmmanuel Vadot $ref: "#/definitions/bitclock-inversion" 244c66ec88fSEmmanuel Vadot format: 245c66ec88fSEmmanuel Vadot $ref: "#/definitions/format" 246c66ec88fSEmmanuel Vadot mclk-fs: 247c66ec88fSEmmanuel Vadot $ref: "#/definitions/mclk-fs" 248c66ec88fSEmmanuel Vadot aux-devs: 249c66ec88fSEmmanuel Vadot $ref: "#/definitions/aux-devs" 250c66ec88fSEmmanuel Vadot convert-rate: 251c66ec88fSEmmanuel Vadot $ref: "#/definitions/convert-rate" 252c66ec88fSEmmanuel Vadot convert-channels: 253c66ec88fSEmmanuel Vadot $ref: "#/definitions/convert-channels" 254c66ec88fSEmmanuel Vadot prefix: 255c66ec88fSEmmanuel Vadot $ref: "#/definitions/prefix" 256c66ec88fSEmmanuel Vadot pin-switches: 257c66ec88fSEmmanuel Vadot $ref: "#/definitions/pin-switches" 258c66ec88fSEmmanuel Vadot hp-det-gpio: 259c66ec88fSEmmanuel Vadot maxItems: 1 260c66ec88fSEmmanuel Vadot mic-det-gpio: 261c66ec88fSEmmanuel Vadot maxItems: 1 262c66ec88fSEmmanuel Vadot 263c66ec88fSEmmanuel Vadot patternProperties: 264cb7aa33aSEmmanuel Vadot "^cpu(-[0-9]+)?$": 265c66ec88fSEmmanuel Vadot $ref: "#/definitions/dai" 266cb7aa33aSEmmanuel Vadot "^codec(-[0-9]+)?$": 267c66ec88fSEmmanuel Vadot $ref: "#/definitions/dai" 268c66ec88fSEmmanuel Vadot additionalProperties: false 269c66ec88fSEmmanuel Vadot 270c66ec88fSEmmanuel Vadotrequired: 271c66ec88fSEmmanuel Vadot - compatible 272c66ec88fSEmmanuel Vadot 273c66ec88fSEmmanuel VadotadditionalProperties: false 274c66ec88fSEmmanuel Vadot 275c66ec88fSEmmanuel Vadotexamples: 276c66ec88fSEmmanuel Vadot# -------------------- 277c66ec88fSEmmanuel Vadot# single DAI link 278c66ec88fSEmmanuel Vadot# -------------------- 279c66ec88fSEmmanuel Vadot - | 280c66ec88fSEmmanuel Vadot sound { 281c66ec88fSEmmanuel Vadot compatible = "simple-audio-card"; 282c66ec88fSEmmanuel Vadot simple-audio-card,name = "VF610-Tower-Sound-Card"; 283c66ec88fSEmmanuel Vadot simple-audio-card,format = "left_j"; 284c66ec88fSEmmanuel Vadot simple-audio-card,bitclock-master = <&dailink0_master>; 285c66ec88fSEmmanuel Vadot simple-audio-card,frame-master = <&dailink0_master>; 286c66ec88fSEmmanuel Vadot simple-audio-card,widgets = 287c66ec88fSEmmanuel Vadot "Microphone", "Microphone Jack", 288c66ec88fSEmmanuel Vadot "Headphone", "Headphone Jack", 289c66ec88fSEmmanuel Vadot "Speaker", "External Speaker"; 290c66ec88fSEmmanuel Vadot simple-audio-card,routing = 291c66ec88fSEmmanuel Vadot "MIC_IN", "Microphone Jack", 292c66ec88fSEmmanuel Vadot "Headphone Jack", "HP_OUT", 293c66ec88fSEmmanuel Vadot "External Speaker", "LINE_OUT"; 294c66ec88fSEmmanuel Vadot 295c66ec88fSEmmanuel Vadot simple-audio-card,cpu { 296c66ec88fSEmmanuel Vadot sound-dai = <&sh_fsi2 0>; 297c66ec88fSEmmanuel Vadot }; 298c66ec88fSEmmanuel Vadot 299c66ec88fSEmmanuel Vadot dailink0_master: simple-audio-card,codec { 300c66ec88fSEmmanuel Vadot sound-dai = <&ak4648>; 301c66ec88fSEmmanuel Vadot clocks = <&osc>; 302c66ec88fSEmmanuel Vadot }; 303c66ec88fSEmmanuel Vadot }; 304c66ec88fSEmmanuel Vadot 305c66ec88fSEmmanuel Vadot# -------------------- 306c66ec88fSEmmanuel Vadot# Multi DAI links 307c66ec88fSEmmanuel Vadot# -------------------- 308c66ec88fSEmmanuel Vadot - | 309c66ec88fSEmmanuel Vadot sound { 310c66ec88fSEmmanuel Vadot compatible = "simple-audio-card"; 311c66ec88fSEmmanuel Vadot simple-audio-card,name = "Cubox Audio"; 312c66ec88fSEmmanuel Vadot 313c66ec88fSEmmanuel Vadot #address-cells = <1>; 314c66ec88fSEmmanuel Vadot #size-cells = <0>; 315c66ec88fSEmmanuel Vadot 316c66ec88fSEmmanuel Vadot simple-audio-card,dai-link@0 { /* I2S - HDMI */ 317c66ec88fSEmmanuel Vadot reg = <0>; 318c66ec88fSEmmanuel Vadot format = "i2s"; 319c66ec88fSEmmanuel Vadot cpu { 320c66ec88fSEmmanuel Vadot sound-dai = <&audio0>; 321c66ec88fSEmmanuel Vadot }; 322c66ec88fSEmmanuel Vadot codec { 323c66ec88fSEmmanuel Vadot sound-dai = <&tda998x0>; 324c66ec88fSEmmanuel Vadot }; 325c66ec88fSEmmanuel Vadot }; 326c66ec88fSEmmanuel Vadot 327c66ec88fSEmmanuel Vadot simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */ 328c66ec88fSEmmanuel Vadot reg = <1>; 329c66ec88fSEmmanuel Vadot cpu { 330c66ec88fSEmmanuel Vadot sound-dai = <&audio1>; 331c66ec88fSEmmanuel Vadot }; 332c66ec88fSEmmanuel Vadot codec { 333c66ec88fSEmmanuel Vadot sound-dai = <&tda998x1>; 334c66ec88fSEmmanuel Vadot }; 335c66ec88fSEmmanuel Vadot }; 336c66ec88fSEmmanuel Vadot 337c66ec88fSEmmanuel Vadot simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */ 338c66ec88fSEmmanuel Vadot reg = <2>; 339c66ec88fSEmmanuel Vadot cpu { 340c66ec88fSEmmanuel Vadot sound-dai = <&audio2>; 341c66ec88fSEmmanuel Vadot }; 342c66ec88fSEmmanuel Vadot codec { 343c66ec88fSEmmanuel Vadot sound-dai = <&spdif_codec>; 344c66ec88fSEmmanuel Vadot }; 345c66ec88fSEmmanuel Vadot }; 346c66ec88fSEmmanuel Vadot }; 347c66ec88fSEmmanuel Vadot 348c66ec88fSEmmanuel Vadot# -------------------- 349c66ec88fSEmmanuel Vadot# route audio from IMX6 SSI2 through TLV320DAC3100 codec 350c66ec88fSEmmanuel Vadot# through TPA6130A2 amplifier to headphones: 351c66ec88fSEmmanuel Vadot# -------------------- 352c66ec88fSEmmanuel Vadot - | 353c66ec88fSEmmanuel Vadot sound { 354c66ec88fSEmmanuel Vadot compatible = "simple-audio-card"; 355c66ec88fSEmmanuel Vadot 356c66ec88fSEmmanuel Vadot simple-audio-card,widgets = 357c66ec88fSEmmanuel Vadot "Headphone", "Headphone Jack"; 358c66ec88fSEmmanuel Vadot simple-audio-card,routing = 359c66ec88fSEmmanuel Vadot "Headphone Jack", "HPLEFT", 360c66ec88fSEmmanuel Vadot "Headphone Jack", "HPRIGHT", 361c66ec88fSEmmanuel Vadot "LEFTIN", "HPL", 362c66ec88fSEmmanuel Vadot "RIGHTIN", "HPR"; 363c66ec88fSEmmanuel Vadot simple-audio-card,aux-devs = <&>; 364c66ec88fSEmmanuel Vadot simple-audio-card,cpu { 365c66ec88fSEmmanuel Vadot sound-dai = <&ssi2>; 366c66ec88fSEmmanuel Vadot }; 367c66ec88fSEmmanuel Vadot simple-audio-card,codec { 368c66ec88fSEmmanuel Vadot sound-dai = <&codec>; 369c66ec88fSEmmanuel Vadot clocks = <&clocks>; 370c66ec88fSEmmanuel Vadot }; 371c66ec88fSEmmanuel Vadot }; 372c66ec88fSEmmanuel Vadot 373c66ec88fSEmmanuel Vadot# -------------------- 374*aa1a8ff2SEmmanuel Vadot# route audio to/from a codec through an amplifier 375*aa1a8ff2SEmmanuel Vadot# designed with a potentiometer driven by IIO: 376*aa1a8ff2SEmmanuel Vadot# -------------------- 377*aa1a8ff2SEmmanuel Vadot - | 378*aa1a8ff2SEmmanuel Vadot sound { 379*aa1a8ff2SEmmanuel Vadot compatible = "simple-audio-card"; 380*aa1a8ff2SEmmanuel Vadot 381*aa1a8ff2SEmmanuel Vadot simple-audio-card,aux-devs = <&_in>, <&_out>; 382*aa1a8ff2SEmmanuel Vadot simple-audio-card,routing = 383*aa1a8ff2SEmmanuel Vadot "CODEC LEFTIN", "AMP_IN LEFT OUT", 384*aa1a8ff2SEmmanuel Vadot "CODEC RIGHTIN", "AMP_IN RIGHT OUT", 385*aa1a8ff2SEmmanuel Vadot "AMP_OUT LEFT IN", "CODEC LEFTOUT", 386*aa1a8ff2SEmmanuel Vadot "AMP_OUT RIGHT IN", "CODEC RIGHTOUT"; 387*aa1a8ff2SEmmanuel Vadot 388*aa1a8ff2SEmmanuel Vadot simple-audio-card,additional-devs { 389*aa1a8ff2SEmmanuel Vadot amp_out: iio-aux-out { 390*aa1a8ff2SEmmanuel Vadot compatible = "audio-iio-aux"; 391*aa1a8ff2SEmmanuel Vadot io-channels = <&pot_out 0>, <&pot_out 1>; 392*aa1a8ff2SEmmanuel Vadot io-channel-names = "LEFT", "RIGHT"; 393*aa1a8ff2SEmmanuel Vadot snd-control-invert-range = <1 1>; 394*aa1a8ff2SEmmanuel Vadot sound-name-prefix = "AMP_OUT"; 395*aa1a8ff2SEmmanuel Vadot }; 396*aa1a8ff2SEmmanuel Vadot 397*aa1a8ff2SEmmanuel Vadot amp_in: iio_aux-in { 398*aa1a8ff2SEmmanuel Vadot compatible = "audio-iio-aux"; 399*aa1a8ff2SEmmanuel Vadot io-channels = <&pot_in 0>, <&pot_in 1>; 400*aa1a8ff2SEmmanuel Vadot io-channel-names = "LEFT", "RIGHT"; 401*aa1a8ff2SEmmanuel Vadot sound-name-prefix = "AMP_IN"; 402*aa1a8ff2SEmmanuel Vadot }; 403*aa1a8ff2SEmmanuel Vadot }; 404*aa1a8ff2SEmmanuel Vadot 405*aa1a8ff2SEmmanuel Vadot simple-audio-card,cpu { 406*aa1a8ff2SEmmanuel Vadot sound-dai = <&cpu>; 407*aa1a8ff2SEmmanuel Vadot }; 408*aa1a8ff2SEmmanuel Vadot 409*aa1a8ff2SEmmanuel Vadot simple-audio-card,codec { 410*aa1a8ff2SEmmanuel Vadot sound-dai = <&codec>; 411*aa1a8ff2SEmmanuel Vadot clocks = <&clocks>; 412*aa1a8ff2SEmmanuel Vadot }; 413*aa1a8ff2SEmmanuel Vadot }; 414*aa1a8ff2SEmmanuel Vadot 415*aa1a8ff2SEmmanuel Vadot# -------------------- 416c66ec88fSEmmanuel Vadot# Sampling Rate Conversion 417c66ec88fSEmmanuel Vadot# -------------------- 418c66ec88fSEmmanuel Vadot - | 419c66ec88fSEmmanuel Vadot sound { 420c66ec88fSEmmanuel Vadot compatible = "simple-audio-card"; 421c66ec88fSEmmanuel Vadot 422c66ec88fSEmmanuel Vadot simple-audio-card,name = "rsnd-ak4643"; 423c66ec88fSEmmanuel Vadot simple-audio-card,format = "left_j"; 424c66ec88fSEmmanuel Vadot simple-audio-card,bitclock-master = <&sndcodec>; 425c66ec88fSEmmanuel Vadot simple-audio-card,frame-master = <&sndcodec>; 426c66ec88fSEmmanuel Vadot 427c66ec88fSEmmanuel Vadot simple-audio-card,convert-rate = <48000>; 428c66ec88fSEmmanuel Vadot 429c66ec88fSEmmanuel Vadot simple-audio-card,prefix = "ak4642"; 430c66ec88fSEmmanuel Vadot simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 431c66ec88fSEmmanuel Vadot "DAI0 Capture", "ak4642 Capture"; 432c66ec88fSEmmanuel Vadot 433c66ec88fSEmmanuel Vadot sndcpu: simple-audio-card,cpu { 434c66ec88fSEmmanuel Vadot sound-dai = <&rcar_sound>; 435c66ec88fSEmmanuel Vadot }; 436c66ec88fSEmmanuel Vadot 437c66ec88fSEmmanuel Vadot sndcodec: simple-audio-card,codec { 438c66ec88fSEmmanuel Vadot sound-dai = <&ak4643>; 439c66ec88fSEmmanuel Vadot system-clock-frequency = <11289600>; 440c66ec88fSEmmanuel Vadot }; 441c66ec88fSEmmanuel Vadot }; 442c66ec88fSEmmanuel Vadot 443c66ec88fSEmmanuel Vadot# -------------------- 444c66ec88fSEmmanuel Vadot# 2 CPU 1 Codec (Mixing) 445c66ec88fSEmmanuel Vadot# -------------------- 446c66ec88fSEmmanuel Vadot - | 447c66ec88fSEmmanuel Vadot sound { 448c66ec88fSEmmanuel Vadot compatible = "simple-audio-card"; 449c66ec88fSEmmanuel Vadot #address-cells = <1>; 450c66ec88fSEmmanuel Vadot #size-cells = <0>; 451c66ec88fSEmmanuel Vadot 452c66ec88fSEmmanuel Vadot simple-audio-card,name = "rsnd-ak4643"; 453c66ec88fSEmmanuel Vadot simple-audio-card,format = "left_j"; 454c66ec88fSEmmanuel Vadot simple-audio-card,bitclock-master = <&dpcmcpu>; 455c66ec88fSEmmanuel Vadot simple-audio-card,frame-master = <&dpcmcpu>; 456c66ec88fSEmmanuel Vadot 457c66ec88fSEmmanuel Vadot simple-audio-card,convert-rate = <48000>; 458c66ec88fSEmmanuel Vadot simple-audio-card,convert-channels = <2>; 459c66ec88fSEmmanuel Vadot 460c66ec88fSEmmanuel Vadot simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 461c66ec88fSEmmanuel Vadot "ak4642 Playback", "DAI1 Playback"; 462c66ec88fSEmmanuel Vadot 463c66ec88fSEmmanuel Vadot dpcmcpu: simple-audio-card,cpu@0 { 464c66ec88fSEmmanuel Vadot reg = <0>; 465c66ec88fSEmmanuel Vadot sound-dai = <&rcar_sound 0>; 466c66ec88fSEmmanuel Vadot }; 467c66ec88fSEmmanuel Vadot 468c66ec88fSEmmanuel Vadot simple-audio-card,cpu@1 { 469c66ec88fSEmmanuel Vadot reg = <1>; 470c66ec88fSEmmanuel Vadot sound-dai = <&rcar_sound 1>; 471c66ec88fSEmmanuel Vadot }; 472c66ec88fSEmmanuel Vadot 473c66ec88fSEmmanuel Vadot simple-audio-card,codec { 474c66ec88fSEmmanuel Vadot prefix = "ak4642"; 475c66ec88fSEmmanuel Vadot sound-dai = <&ak4643>; 476c66ec88fSEmmanuel Vadot clocks = <&audio_clock>; 477c66ec88fSEmmanuel Vadot }; 478c66ec88fSEmmanuel Vadot }; 479c66ec88fSEmmanuel Vadot 480c66ec88fSEmmanuel Vadot# -------------------- 481c66ec88fSEmmanuel Vadot# Multi DAI links with DPCM: 482c66ec88fSEmmanuel Vadot# 483c66ec88fSEmmanuel Vadot# CPU0 ------ ak4613 484c66ec88fSEmmanuel Vadot# CPU1 ------ PCM3168A-p /* DPCM 1ch/2ch */ 485c66ec88fSEmmanuel Vadot# CPU2 --/ /* DPCM 3ch/4ch */ 486c66ec88fSEmmanuel Vadot# CPU3 --/ /* DPCM 5ch/6ch */ 487c66ec88fSEmmanuel Vadot# CPU4 --/ /* DPCM 7ch/8ch */ 488c66ec88fSEmmanuel Vadot# CPU5 ------ PCM3168A-c 489c66ec88fSEmmanuel Vadot# -------------------- 490c66ec88fSEmmanuel Vadot - | 491c66ec88fSEmmanuel Vadot sound { 492c66ec88fSEmmanuel Vadot compatible = "simple-audio-card"; 493c66ec88fSEmmanuel Vadot #address-cells = <1>; 494c66ec88fSEmmanuel Vadot #size-cells = <0>; 495c66ec88fSEmmanuel Vadot 496c66ec88fSEmmanuel Vadot simple-audio-card,routing = 497c66ec88fSEmmanuel Vadot "pcm3168a Playback", "DAI1 Playback", 498c66ec88fSEmmanuel Vadot "pcm3168a Playback", "DAI2 Playback", 499c66ec88fSEmmanuel Vadot "pcm3168a Playback", "DAI3 Playback", 500c66ec88fSEmmanuel Vadot "pcm3168a Playback", "DAI4 Playback"; 501c66ec88fSEmmanuel Vadot 502c66ec88fSEmmanuel Vadot simple-audio-card,dai-link@0 { 503c66ec88fSEmmanuel Vadot reg = <0>; 504c66ec88fSEmmanuel Vadot format = "left_j"; 505c66ec88fSEmmanuel Vadot bitclock-master = <&sndcpu0>; 506c66ec88fSEmmanuel Vadot frame-master = <&sndcpu0>; 507c66ec88fSEmmanuel Vadot 508c66ec88fSEmmanuel Vadot sndcpu0: cpu { 509c66ec88fSEmmanuel Vadot sound-dai = <&rcar_sound 0>; 510c66ec88fSEmmanuel Vadot }; 511c66ec88fSEmmanuel Vadot codec { 512c66ec88fSEmmanuel Vadot sound-dai = <&ak4613>; 513c66ec88fSEmmanuel Vadot }; 514c66ec88fSEmmanuel Vadot }; 515c66ec88fSEmmanuel Vadot 516c66ec88fSEmmanuel Vadot simple-audio-card,dai-link@1 { 517c66ec88fSEmmanuel Vadot reg = <1>; 518c66ec88fSEmmanuel Vadot format = "i2s"; 519c66ec88fSEmmanuel Vadot bitclock-master = <&sndcpu1>; 520c66ec88fSEmmanuel Vadot frame-master = <&sndcpu1>; 521c66ec88fSEmmanuel Vadot 522c66ec88fSEmmanuel Vadot convert-channels = <8>; /* TDM Split */ 523c66ec88fSEmmanuel Vadot 524cb7aa33aSEmmanuel Vadot sndcpu1: cpu-0 { 525c66ec88fSEmmanuel Vadot sound-dai = <&rcar_sound 1>; 526c66ec88fSEmmanuel Vadot }; 527cb7aa33aSEmmanuel Vadot cpu-1 { 528c66ec88fSEmmanuel Vadot sound-dai = <&rcar_sound 2>; 529c66ec88fSEmmanuel Vadot }; 530cb7aa33aSEmmanuel Vadot cpu-2 { 531c66ec88fSEmmanuel Vadot sound-dai = <&rcar_sound 3>; 532c66ec88fSEmmanuel Vadot }; 533cb7aa33aSEmmanuel Vadot cpu-3 { 534c66ec88fSEmmanuel Vadot sound-dai = <&rcar_sound 4>; 535c66ec88fSEmmanuel Vadot }; 536c66ec88fSEmmanuel Vadot codec { 537c66ec88fSEmmanuel Vadot mclk-fs = <512>; 538c66ec88fSEmmanuel Vadot prefix = "pcm3168a"; 539c66ec88fSEmmanuel Vadot dai-tdm-slot-num = <8>; 540c66ec88fSEmmanuel Vadot sound-dai = <&pcm3168a 0>; 541c66ec88fSEmmanuel Vadot }; 542c66ec88fSEmmanuel Vadot }; 543c66ec88fSEmmanuel Vadot 544c66ec88fSEmmanuel Vadot simple-audio-card,dai-link@2 { 545c66ec88fSEmmanuel Vadot reg = <2>; 546c66ec88fSEmmanuel Vadot format = "i2s"; 547c66ec88fSEmmanuel Vadot bitclock-master = <&sndcpu2>; 548c66ec88fSEmmanuel Vadot frame-master = <&sndcpu2>; 549c66ec88fSEmmanuel Vadot 550c66ec88fSEmmanuel Vadot sndcpu2: cpu { 551c66ec88fSEmmanuel Vadot sound-dai = <&rcar_sound 5>; 552c66ec88fSEmmanuel Vadot }; 553c66ec88fSEmmanuel Vadot codec { 554c66ec88fSEmmanuel Vadot mclk-fs = <512>; 555c66ec88fSEmmanuel Vadot prefix = "pcm3168a"; 556c66ec88fSEmmanuel Vadot sound-dai = <&pcm3168a 1>; 557c66ec88fSEmmanuel Vadot }; 558c66ec88fSEmmanuel Vadot }; 559c66ec88fSEmmanuel Vadot }; 560