179149fb8SKuninori Morimoto# SPDX-License-Identifier: GPL-2.0 279149fb8SKuninori Morimoto%YAML 1.2 379149fb8SKuninori Morimoto--- 479149fb8SKuninori Morimoto$id: http://devicetree.org/schemas/sound/simple-card.yaml# 579149fb8SKuninori Morimoto$schema: http://devicetree.org/meta-schemas/core.yaml# 679149fb8SKuninori Morimoto 779149fb8SKuninori Morimototitle: Simple Audio Card Driver Device Tree Bindings 879149fb8SKuninori Morimoto 979149fb8SKuninori Morimotomaintainers: 1079149fb8SKuninori Morimoto - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 1179149fb8SKuninori Morimoto 1279149fb8SKuninori Morimotodefinitions: 1379149fb8SKuninori Morimoto 1479149fb8SKuninori Morimoto frame-master: 1579149fb8SKuninori Morimoto description: Indicates dai-link frame master. 1679149fb8SKuninori Morimoto allOf: 1779149fb8SKuninori Morimoto - $ref: /schemas/types.yaml#/definitions/phandle-array 1879149fb8SKuninori Morimoto - maxItems: 1 1979149fb8SKuninori Morimoto 2079149fb8SKuninori Morimoto bitclock-master: 2179149fb8SKuninori Morimoto description: Indicates dai-link bit clock master 2279149fb8SKuninori Morimoto allOf: 2379149fb8SKuninori Morimoto - $ref: /schemas/types.yaml#/definitions/phandle-array 2479149fb8SKuninori Morimoto - maxItems: 1 2579149fb8SKuninori Morimoto 2679149fb8SKuninori Morimoto frame-inversion: 2779149fb8SKuninori Morimoto description: dai-link uses frame clock inversion 2879149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 2979149fb8SKuninori Morimoto 3079149fb8SKuninori Morimoto bitclock-inversion: 3179149fb8SKuninori Morimoto description: dai-link uses bit clock inversion 3279149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 3379149fb8SKuninori Morimoto 3479149fb8SKuninori Morimoto dai-tdm-slot-num: 3579149fb8SKuninori Morimoto description: see tdm-slot.txt. 3679149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 3779149fb8SKuninori Morimoto 3879149fb8SKuninori Morimoto dai-tdm-slot-width: 3979149fb8SKuninori Morimoto description: see tdm-slot.txt. 4079149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 4179149fb8SKuninori Morimoto 4279149fb8SKuninori Morimoto system-clock-frequency: 4379149fb8SKuninori Morimoto description: | 4479149fb8SKuninori Morimoto If a clock is specified and a multiplication factor is given with 4579149fb8SKuninori Morimoto mclk-fs, the clock will be set to the calculated mclk frequency 4679149fb8SKuninori Morimoto when the stream starts. 4779149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 4879149fb8SKuninori Morimoto 4979149fb8SKuninori Morimoto system-clock-direction-out: 5079149fb8SKuninori Morimoto description: | 5179149fb8SKuninori Morimoto specifies clock direction as 'out' on initialization. 5279149fb8SKuninori Morimoto It is useful for some aCPUs with fixed clocks. 5379149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 5479149fb8SKuninori Morimoto 5579149fb8SKuninori Morimoto mclk-fs: 5679149fb8SKuninori Morimoto description: | 5779149fb8SKuninori Morimoto Multiplication factor between stream rate and codec mclk. 5879149fb8SKuninori Morimoto When defined, mclk-fs property defined in dai-link sub nodes are ignored. 5979149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 6079149fb8SKuninori Morimoto 6179149fb8SKuninori Morimoto aux-devs: 6279149fb8SKuninori Morimoto description: | 6379149fb8SKuninori Morimoto List of phandles pointing to auxiliary devices, such 6479149fb8SKuninori Morimoto as amplifiers, to be added to the sound card. 6579149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/phandle-array 6679149fb8SKuninori Morimoto 6779149fb8SKuninori Morimoto convert-rate: 6879149fb8SKuninori Morimoto description: CPU to Codec rate convert. 6979149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 7079149fb8SKuninori Morimoto 7179149fb8SKuninori Morimoto convert-channels: 7279149fb8SKuninori Morimoto description: CPU to Codec rate channels. 7379149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 7479149fb8SKuninori Morimoto 7579149fb8SKuninori Morimoto prefix: 7679149fb8SKuninori Morimoto description: "device name prefix" 7779149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/string 7879149fb8SKuninori Morimoto 7979149fb8SKuninori Morimoto label: 8079149fb8SKuninori Morimoto maxItems: 1 8179149fb8SKuninori Morimoto 8279149fb8SKuninori Morimoto routing: 8379149fb8SKuninori Morimoto description: | 8479149fb8SKuninori Morimoto A list of the connections between audio components. 8579149fb8SKuninori Morimoto Each entry is a pair of strings, the first being the 8679149fb8SKuninori Morimoto connection's sink, the second being the connection's source. 8779149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/non-unique-string-array 8879149fb8SKuninori Morimoto 8979149fb8SKuninori Morimoto widgets: 9079149fb8SKuninori Morimoto description: User specified audio sound widgets. 9179149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/non-unique-string-array 9279149fb8SKuninori Morimoto 9379149fb8SKuninori Morimoto pin-switches: 9479149fb8SKuninori Morimoto description: the widget names for which pin switches must be created. 9579149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/string-array 9679149fb8SKuninori Morimoto 9779149fb8SKuninori Morimoto format: 9879149fb8SKuninori Morimoto description: audio format. 9979149fb8SKuninori Morimoto items: 10079149fb8SKuninori Morimoto enum: 10179149fb8SKuninori Morimoto - i2s 10279149fb8SKuninori Morimoto - right_j 10379149fb8SKuninori Morimoto - left_j 10479149fb8SKuninori Morimoto - dsp_a 10579149fb8SKuninori Morimoto - dsp_b 10679149fb8SKuninori Morimoto - ac97 10779149fb8SKuninori Morimoto - pdm 10879149fb8SKuninori Morimoto - msb 10979149fb8SKuninori Morimoto - lsb 11079149fb8SKuninori Morimoto 11179149fb8SKuninori Morimoto dai: 11279149fb8SKuninori Morimoto type: object 11379149fb8SKuninori Morimoto properties: 11479149fb8SKuninori Morimoto sound-dai: 11579149fb8SKuninori Morimoto maxItems: 1 11679149fb8SKuninori Morimoto 11779149fb8SKuninori Morimoto # common properties 11879149fb8SKuninori Morimoto mclk-fs: 11979149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 12079149fb8SKuninori Morimoto prefix: 12179149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 12279149fb8SKuninori Morimoto frame-inversion: 12379149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 12479149fb8SKuninori Morimoto bitclock-inversion: 12579149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 12679149fb8SKuninori Morimoto frame-master: 12779149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 12879149fb8SKuninori Morimoto bitclock-master: 12979149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 13079149fb8SKuninori Morimoto 13179149fb8SKuninori Morimoto dai-tdm-slot-num: 13279149fb8SKuninori Morimoto $ref: "#/definitions/dai-tdm-slot-num" 13379149fb8SKuninori Morimoto dai-tdm-slot-width: 13479149fb8SKuninori Morimoto $ref: "#/definitions/dai-tdm-slot-width" 13579149fb8SKuninori Morimoto clocks: 13679149fb8SKuninori Morimoto maxItems: 1 13779149fb8SKuninori Morimoto system-clock-frequency: 13879149fb8SKuninori Morimoto $ref: "#/definitions/system-clock-frequency" 13979149fb8SKuninori Morimoto system-clock-direction-out: 14079149fb8SKuninori Morimoto $ref: "#/definitions/system-clock-direction-out" 14179149fb8SKuninori Morimoto required: 14279149fb8SKuninori Morimoto - sound-dai 14379149fb8SKuninori Morimoto 14479149fb8SKuninori Morimotoproperties: 14579149fb8SKuninori Morimoto compatible: 14679149fb8SKuninori Morimoto contains: 14779149fb8SKuninori Morimoto enum: 14879149fb8SKuninori Morimoto - simple-audio-card 14979149fb8SKuninori Morimoto - simple-scu-audio-card 15079149fb8SKuninori Morimoto 15179149fb8SKuninori Morimoto "#address-cells": 15279149fb8SKuninori Morimoto const: 1 15379149fb8SKuninori Morimoto "#size-cells": 15479149fb8SKuninori Morimoto const: 0 15579149fb8SKuninori Morimoto 15679149fb8SKuninori Morimoto label: 15779149fb8SKuninori Morimoto $ref: "#/definitions/label" 15879149fb8SKuninori Morimoto 15979149fb8SKuninori Morimoto simple-audio-card,name: 16079149fb8SKuninori Morimoto description: User specified audio sound card name. 16179149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/string 16279149fb8SKuninori Morimoto 16379149fb8SKuninori Morimoto# use patternProperties to avoid naming "xxx,yyy" issue 16479149fb8SKuninori MorimotopatternProperties: 16579149fb8SKuninori Morimoto "^simple-audio-card,widgets$": 16679149fb8SKuninori Morimoto $ref: "#/definitions/widgets" 16779149fb8SKuninori Morimoto "^simple-audio-card,routing$": 16879149fb8SKuninori Morimoto $ref: "#/definitions/routing" 16979149fb8SKuninori Morimoto "^simple-audio-card,cpu(@[0-9a-f]+)?": 17079149fb8SKuninori Morimoto $ref: "#/definitions/dai" 17179149fb8SKuninori Morimoto "^simple-audio-card,codec(@[0-9a-f]+)?": 17279149fb8SKuninori Morimoto $ref: "#/definitions/dai" 17379149fb8SKuninori Morimoto 17479149fb8SKuninori Morimoto # common properties 17579149fb8SKuninori Morimoto "^simple-audio-card,frame-master$": 17679149fb8SKuninori Morimoto $ref: "#/definitions/frame-master" 17779149fb8SKuninori Morimoto "^simple-audio-card,bitclock-master$": 17879149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-master" 17979149fb8SKuninori Morimoto "^simple-audio-card,frame-inversion$": 18079149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 18179149fb8SKuninori Morimoto "^simple-audio-card,bitclock-inversion$": 18279149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 18379149fb8SKuninori Morimoto "^simple-audio-card,format$": 18479149fb8SKuninori Morimoto $ref: "#/definitions/format" 18579149fb8SKuninori Morimoto "^simple-audio-card,mclk-fs$": 18679149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 18779149fb8SKuninori Morimoto "^simple-audio-card,aux-devs$": 18879149fb8SKuninori Morimoto $ref: "#/definitions/aux-devs" 18979149fb8SKuninori Morimoto "^simple-audio-card,convert-rate$": 19079149fb8SKuninori Morimoto $ref: "#/definitions/convert-rate" 19179149fb8SKuninori Morimoto "^simple-audio-card,convert-channels$": 19279149fb8SKuninori Morimoto $ref: "#/definitions/convert-channels" 19379149fb8SKuninori Morimoto "^simple-audio-card,prefix$": 19479149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 19579149fb8SKuninori Morimoto "^simple-audio-card,pin-switches$": 19679149fb8SKuninori Morimoto $ref: "#/definitions/pin-switches" 19779149fb8SKuninori Morimoto "^simple-audio-card,hp-det-gpio$": 19879149fb8SKuninori Morimoto maxItems: 1 19979149fb8SKuninori Morimoto "^simple-audio-card,mic-det-gpio$": 20079149fb8SKuninori Morimoto maxItems: 1 20179149fb8SKuninori Morimoto 20279149fb8SKuninori Morimoto "^simple-audio-card,dai-link(@[0-9a-f]+)?$": 20379149fb8SKuninori Morimoto description: | 20479149fb8SKuninori Morimoto Container for dai-link level properties and the CPU and CODEC sub-nodes. 20579149fb8SKuninori Morimoto This container may be omitted when the card has only one DAI link. 20679149fb8SKuninori Morimoto type: object 20779149fb8SKuninori Morimoto properties: 20879149fb8SKuninori Morimoto reg: 20979149fb8SKuninori Morimoto maxItems: 1 21079149fb8SKuninori Morimoto 21179149fb8SKuninori Morimoto # common properties 21279149fb8SKuninori Morimoto frame-master: 21379149fb8SKuninori Morimoto $ref: "#/definitions/frame-master" 21479149fb8SKuninori Morimoto bitclock-master: 21579149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-master" 21679149fb8SKuninori Morimoto frame-inversion: 21779149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 21879149fb8SKuninori Morimoto bitclock-inversion: 21979149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 22079149fb8SKuninori Morimoto format: 22179149fb8SKuninori Morimoto $ref: "#/definitions/format" 22279149fb8SKuninori Morimoto mclk-fs: 22379149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 22479149fb8SKuninori Morimoto aux-devs: 22579149fb8SKuninori Morimoto $ref: "#/definitions/aux-devs" 22679149fb8SKuninori Morimoto convert-rate: 22779149fb8SKuninori Morimoto $ref: "#/definitions/convert-rate" 22879149fb8SKuninori Morimoto convert-channels: 22979149fb8SKuninori Morimoto $ref: "#/definitions/convert-channels" 23079149fb8SKuninori Morimoto prefix: 23179149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 23279149fb8SKuninori Morimoto pin-switches: 23379149fb8SKuninori Morimoto $ref: "#/definitions/pin-switches" 23479149fb8SKuninori Morimoto hp-det-gpio: 23579149fb8SKuninori Morimoto maxItems: 1 23679149fb8SKuninori Morimoto mic-det-gpio: 23779149fb8SKuninori Morimoto maxItems: 1 23879149fb8SKuninori Morimoto 23979149fb8SKuninori Morimoto patternProperties: 24079149fb8SKuninori Morimoto "^cpu(@[0-9a-f]+)?": 24179149fb8SKuninori Morimoto $ref: "#/definitions/dai" 24279149fb8SKuninori Morimoto "^codec(@[0-9a-f]+)?": 24379149fb8SKuninori Morimoto $ref: "#/definitions/dai" 24479149fb8SKuninori Morimoto additionalProperties: false 24579149fb8SKuninori Morimoto 24679149fb8SKuninori Morimotorequired: 24779149fb8SKuninori Morimoto - compatible 24879149fb8SKuninori Morimoto 24979149fb8SKuninori MorimotoadditionalProperties: false 25079149fb8SKuninori Morimoto 25179149fb8SKuninori Morimotoexamples: 25279149fb8SKuninori Morimoto#-------------------- 25379149fb8SKuninori Morimoto# single DAI link 25479149fb8SKuninori Morimoto#-------------------- 25579149fb8SKuninori Morimoto - | 25679149fb8SKuninori Morimoto sound { 25779149fb8SKuninori Morimoto compatible = "simple-audio-card"; 25879149fb8SKuninori Morimoto simple-audio-card,name = "VF610-Tower-Sound-Card"; 25979149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 26079149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&dailink0_master>; 26179149fb8SKuninori Morimoto simple-audio-card,frame-master = <&dailink0_master>; 26279149fb8SKuninori Morimoto simple-audio-card,widgets = 26379149fb8SKuninori Morimoto "Microphone", "Microphone Jack", 26479149fb8SKuninori Morimoto "Headphone", "Headphone Jack", 26579149fb8SKuninori Morimoto "Speaker", "External Speaker"; 26679149fb8SKuninori Morimoto simple-audio-card,routing = 26779149fb8SKuninori Morimoto "MIC_IN", "Microphone Jack", 26879149fb8SKuninori Morimoto "Headphone Jack", "HP_OUT", 26979149fb8SKuninori Morimoto "External Speaker", "LINE_OUT"; 27079149fb8SKuninori Morimoto 27179149fb8SKuninori Morimoto simple-audio-card,cpu { 27279149fb8SKuninori Morimoto sound-dai = <&sh_fsi2 0>; 27379149fb8SKuninori Morimoto }; 27479149fb8SKuninori Morimoto 27579149fb8SKuninori Morimoto dailink0_master: simple-audio-card,codec { 27679149fb8SKuninori Morimoto sound-dai = <&ak4648>; 27779149fb8SKuninori Morimoto clocks = <&osc>; 27879149fb8SKuninori Morimoto }; 27979149fb8SKuninori Morimoto }; 28079149fb8SKuninori Morimoto 28179149fb8SKuninori Morimoto#-------------------- 28279149fb8SKuninori Morimoto# Multi DAI links 28379149fb8SKuninori Morimoto#-------------------- 28479149fb8SKuninori Morimoto - | 28579149fb8SKuninori Morimoto sound { 28679149fb8SKuninori Morimoto compatible = "simple-audio-card"; 28779149fb8SKuninori Morimoto simple-audio-card,name = "Cubox Audio"; 28879149fb8SKuninori Morimoto 28979149fb8SKuninori Morimoto #address-cells = <1>; 29079149fb8SKuninori Morimoto #size-cells = <0>; 29179149fb8SKuninori Morimoto 29279149fb8SKuninori Morimoto simple-audio-card,dai-link@0 { /* I2S - HDMI */ 29379149fb8SKuninori Morimoto reg = <0>; 29479149fb8SKuninori Morimoto format = "i2s"; 29579149fb8SKuninori Morimoto cpu { 29679149fb8SKuninori Morimoto sound-dai = <&audio0>; 29779149fb8SKuninori Morimoto }; 29879149fb8SKuninori Morimoto codec { 29979149fb8SKuninori Morimoto sound-dai = <&tda998x0>; 30079149fb8SKuninori Morimoto }; 30179149fb8SKuninori Morimoto }; 30279149fb8SKuninori Morimoto 30379149fb8SKuninori Morimoto simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */ 30479149fb8SKuninori Morimoto reg = <1>; 30579149fb8SKuninori Morimoto cpu { 30679149fb8SKuninori Morimoto sound-dai = <&audio1>; 30779149fb8SKuninori Morimoto }; 30879149fb8SKuninori Morimoto codec { 30979149fb8SKuninori Morimoto sound-dai = <&tda998x1>; 31079149fb8SKuninori Morimoto }; 31179149fb8SKuninori Morimoto }; 31279149fb8SKuninori Morimoto 31379149fb8SKuninori Morimoto simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */ 31479149fb8SKuninori Morimoto reg = <2>; 31579149fb8SKuninori Morimoto cpu { 31679149fb8SKuninori Morimoto sound-dai = <&audio2>; 31779149fb8SKuninori Morimoto }; 31879149fb8SKuninori Morimoto codec { 31979149fb8SKuninori Morimoto sound-dai = <&spdif_codec>; 32079149fb8SKuninori Morimoto }; 32179149fb8SKuninori Morimoto }; 32279149fb8SKuninori Morimoto }; 32379149fb8SKuninori Morimoto 32479149fb8SKuninori Morimoto#-------------------- 32579149fb8SKuninori Morimoto# route audio from IMX6 SSI2 through TLV320DAC3100 codec 32679149fb8SKuninori Morimoto# through TPA6130A2 amplifier to headphones: 32779149fb8SKuninori Morimoto#-------------------- 32879149fb8SKuninori Morimoto - | 32979149fb8SKuninori Morimoto sound { 33079149fb8SKuninori Morimoto compatible = "simple-audio-card"; 33179149fb8SKuninori Morimoto 33279149fb8SKuninori Morimoto simple-audio-card,widgets = 33379149fb8SKuninori Morimoto "Headphone", "Headphone Jack"; 33479149fb8SKuninori Morimoto simple-audio-card,routing = 33579149fb8SKuninori Morimoto "Headphone Jack", "HPLEFT", 33679149fb8SKuninori Morimoto "Headphone Jack", "HPRIGHT", 33779149fb8SKuninori Morimoto "LEFTIN", "HPL", 33879149fb8SKuninori Morimoto "RIGHTIN", "HPR"; 33979149fb8SKuninori Morimoto simple-audio-card,aux-devs = <&>; 34079149fb8SKuninori Morimoto simple-audio-card,cpu { 34179149fb8SKuninori Morimoto sound-dai = <&ssi2>; 34279149fb8SKuninori Morimoto }; 34379149fb8SKuninori Morimoto simple-audio-card,codec { 34479149fb8SKuninori Morimoto sound-dai = <&codec>; 34579149fb8SKuninori Morimoto clocks = <&clocks>; 34679149fb8SKuninori Morimoto }; 34779149fb8SKuninori Morimoto }; 34879149fb8SKuninori Morimoto 34979149fb8SKuninori Morimoto#-------------------- 35079149fb8SKuninori Morimoto# Sampling Rate Conversion 35179149fb8SKuninori Morimoto#-------------------- 35279149fb8SKuninori Morimoto - | 35379149fb8SKuninori Morimoto sound { 35479149fb8SKuninori Morimoto compatible = "simple-audio-card"; 35579149fb8SKuninori Morimoto 35679149fb8SKuninori Morimoto simple-audio-card,name = "rsnd-ak4643"; 35779149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 35879149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&sndcodec>; 35979149fb8SKuninori Morimoto simple-audio-card,frame-master = <&sndcodec>; 36079149fb8SKuninori Morimoto 36179149fb8SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 36279149fb8SKuninori Morimoto 36379149fb8SKuninori Morimoto simple-audio-card,prefix = "ak4642"; 36479149fb8SKuninori Morimoto simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 36579149fb8SKuninori Morimoto "DAI0 Capture", "ak4642 Capture"; 36679149fb8SKuninori Morimoto 36779149fb8SKuninori Morimoto sndcpu: simple-audio-card,cpu { 36879149fb8SKuninori Morimoto sound-dai = <&rcar_sound>; 36979149fb8SKuninori Morimoto }; 37079149fb8SKuninori Morimoto 37179149fb8SKuninori Morimoto sndcodec: simple-audio-card,codec { 37279149fb8SKuninori Morimoto sound-dai = <&ak4643>; 37379149fb8SKuninori Morimoto system-clock-frequency = <11289600>; 37479149fb8SKuninori Morimoto }; 37579149fb8SKuninori Morimoto }; 37679149fb8SKuninori Morimoto 37779149fb8SKuninori Morimoto#-------------------- 37879149fb8SKuninori Morimoto# 2 CPU 1 Codec (Mixing) 37979149fb8SKuninori Morimoto#-------------------- 38079149fb8SKuninori Morimoto - | 38179149fb8SKuninori Morimoto sound { 38279149fb8SKuninori Morimoto compatible = "simple-audio-card"; 383*5aaec71dSFabio Estevam #address-cells = <1>; 384*5aaec71dSFabio Estevam #size-cells = <0>; 38579149fb8SKuninori Morimoto 38679149fb8SKuninori Morimoto simple-audio-card,name = "rsnd-ak4643"; 38779149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 38879149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&dpcmcpu>; 38979149fb8SKuninori Morimoto simple-audio-card,frame-master = <&dpcmcpu>; 39079149fb8SKuninori Morimoto 39179149fb8SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 39279149fb8SKuninori Morimoto simple-audio-card,convert-channels = <2>; 39379149fb8SKuninori Morimoto 39479149fb8SKuninori Morimoto simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 39579149fb8SKuninori Morimoto "ak4642 Playback", "DAI1 Playback"; 39679149fb8SKuninori Morimoto 39779149fb8SKuninori Morimoto dpcmcpu: simple-audio-card,cpu@0 { 398*5aaec71dSFabio Estevam reg = <0>; 39979149fb8SKuninori Morimoto sound-dai = <&rcar_sound 0>; 40079149fb8SKuninori Morimoto }; 40179149fb8SKuninori Morimoto 40279149fb8SKuninori Morimoto simple-audio-card,cpu@1 { 403*5aaec71dSFabio Estevam reg = <1>; 40479149fb8SKuninori Morimoto sound-dai = <&rcar_sound 1>; 40579149fb8SKuninori Morimoto }; 40679149fb8SKuninori Morimoto 40779149fb8SKuninori Morimoto simple-audio-card,codec { 40879149fb8SKuninori Morimoto prefix = "ak4642"; 40979149fb8SKuninori Morimoto sound-dai = <&ak4643>; 41079149fb8SKuninori Morimoto clocks = <&audio_clock>; 41179149fb8SKuninori Morimoto }; 41279149fb8SKuninori Morimoto }; 41379149fb8SKuninori Morimoto 41479149fb8SKuninori Morimoto#-------------------- 41579149fb8SKuninori Morimoto# Multi DAI links with DPCM: 41679149fb8SKuninori Morimoto# 41779149fb8SKuninori Morimoto# CPU0 ------ ak4613 41879149fb8SKuninori Morimoto# CPU1 ------ PCM3168A-p /* DPCM 1ch/2ch */ 41979149fb8SKuninori Morimoto# CPU2 --/ /* DPCM 3ch/4ch */ 42079149fb8SKuninori Morimoto# CPU3 --/ /* DPCM 5ch/6ch */ 42179149fb8SKuninori Morimoto# CPU4 --/ /* DPCM 7ch/8ch */ 42279149fb8SKuninori Morimoto# CPU5 ------ PCM3168A-c 42379149fb8SKuninori Morimoto#-------------------- 42479149fb8SKuninori Morimoto - | 42579149fb8SKuninori Morimoto sound { 42679149fb8SKuninori Morimoto compatible = "simple-audio-card"; 427*5aaec71dSFabio Estevam #address-cells = <1>; 428*5aaec71dSFabio Estevam #size-cells = <0>; 42979149fb8SKuninori Morimoto 43079149fb8SKuninori Morimoto simple-audio-card,routing = 43179149fb8SKuninori Morimoto "pcm3168a Playback", "DAI1 Playback", 43279149fb8SKuninori Morimoto "pcm3168a Playback", "DAI2 Playback", 43379149fb8SKuninori Morimoto "pcm3168a Playback", "DAI3 Playback", 43479149fb8SKuninori Morimoto "pcm3168a Playback", "DAI4 Playback"; 43579149fb8SKuninori Morimoto 43679149fb8SKuninori Morimoto simple-audio-card,dai-link@0 { 437*5aaec71dSFabio Estevam reg = <0>; 43879149fb8SKuninori Morimoto format = "left_j"; 43979149fb8SKuninori Morimoto bitclock-master = <&sndcpu0>; 44079149fb8SKuninori Morimoto frame-master = <&sndcpu0>; 44179149fb8SKuninori Morimoto 44279149fb8SKuninori Morimoto sndcpu0: cpu { 44379149fb8SKuninori Morimoto sound-dai = <&rcar_sound 0>; 44479149fb8SKuninori Morimoto }; 44579149fb8SKuninori Morimoto codec { 44679149fb8SKuninori Morimoto sound-dai = <&ak4613>; 44779149fb8SKuninori Morimoto }; 44879149fb8SKuninori Morimoto }; 44979149fb8SKuninori Morimoto 45079149fb8SKuninori Morimoto simple-audio-card,dai-link@1 { 451*5aaec71dSFabio Estevam reg = <1>; 45279149fb8SKuninori Morimoto format = "i2s"; 45379149fb8SKuninori Morimoto bitclock-master = <&sndcpu1>; 45479149fb8SKuninori Morimoto frame-master = <&sndcpu1>; 45579149fb8SKuninori Morimoto 45679149fb8SKuninori Morimoto convert-channels = <8>; /* TDM Split */ 45779149fb8SKuninori Morimoto 458*5aaec71dSFabio Estevam sndcpu1: cpu0 { 45979149fb8SKuninori Morimoto sound-dai = <&rcar_sound 1>; 46079149fb8SKuninori Morimoto }; 461*5aaec71dSFabio Estevam cpu1 { 46279149fb8SKuninori Morimoto sound-dai = <&rcar_sound 2>; 46379149fb8SKuninori Morimoto }; 464*5aaec71dSFabio Estevam cpu2 { 46579149fb8SKuninori Morimoto sound-dai = <&rcar_sound 3>; 46679149fb8SKuninori Morimoto }; 467*5aaec71dSFabio Estevam cpu3 { 46879149fb8SKuninori Morimoto sound-dai = <&rcar_sound 4>; 46979149fb8SKuninori Morimoto }; 47079149fb8SKuninori Morimoto codec { 47179149fb8SKuninori Morimoto mclk-fs = <512>; 47279149fb8SKuninori Morimoto prefix = "pcm3168a"; 47379149fb8SKuninori Morimoto dai-tdm-slot-num = <8>; 47479149fb8SKuninori Morimoto sound-dai = <&pcm3168a 0>; 47579149fb8SKuninori Morimoto }; 47679149fb8SKuninori Morimoto }; 47779149fb8SKuninori Morimoto 47879149fb8SKuninori Morimoto simple-audio-card,dai-link@2 { 479*5aaec71dSFabio Estevam reg = <2>; 48079149fb8SKuninori Morimoto format = "i2s"; 48179149fb8SKuninori Morimoto bitclock-master = <&sndcpu2>; 48279149fb8SKuninori Morimoto frame-master = <&sndcpu2>; 48379149fb8SKuninori Morimoto 48479149fb8SKuninori Morimoto sndcpu2: cpu { 48579149fb8SKuninori Morimoto sound-dai = <&rcar_sound 5>; 48679149fb8SKuninori Morimoto }; 48779149fb8SKuninori Morimoto codec { 48879149fb8SKuninori Morimoto mclk-fs = <512>; 48979149fb8SKuninori Morimoto prefix = "pcm3168a"; 49079149fb8SKuninori Morimoto sound-dai = <&pcm3168a 1>; 49179149fb8SKuninori Morimoto }; 49279149fb8SKuninori Morimoto }; 49379149fb8SKuninori Morimoto }; 494