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 7dd3cb467SAndrew Lunntitle: Simple Audio Card Driver 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. 16251bf658SRob Herring $ref: /schemas/types.yaml#/definitions/phandle 1779149fb8SKuninori Morimoto 1879149fb8SKuninori Morimoto bitclock-master: 1979149fb8SKuninori Morimoto description: Indicates dai-link bit clock master 20251bf658SRob Herring $ref: /schemas/types.yaml#/definitions/phandle 2179149fb8SKuninori Morimoto 2279149fb8SKuninori Morimoto frame-inversion: 2379149fb8SKuninori Morimoto description: dai-link uses frame clock inversion 2479149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 2579149fb8SKuninori Morimoto 2679149fb8SKuninori Morimoto bitclock-inversion: 2779149fb8SKuninori Morimoto description: dai-link uses bit clock inversion 2879149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 2979149fb8SKuninori Morimoto 3079149fb8SKuninori Morimoto dai-tdm-slot-num: 3179149fb8SKuninori Morimoto description: see tdm-slot.txt. 3279149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 3379149fb8SKuninori Morimoto 3479149fb8SKuninori Morimoto dai-tdm-slot-width: 3579149fb8SKuninori Morimoto description: see tdm-slot.txt. 3679149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 3779149fb8SKuninori Morimoto 3879149fb8SKuninori Morimoto system-clock-frequency: 3979149fb8SKuninori Morimoto description: | 4079149fb8SKuninori Morimoto If a clock is specified and a multiplication factor is given with 4179149fb8SKuninori Morimoto mclk-fs, the clock will be set to the calculated mclk frequency 4279149fb8SKuninori Morimoto when the stream starts. 4379149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 4479149fb8SKuninori Morimoto 4579149fb8SKuninori Morimoto system-clock-direction-out: 4679149fb8SKuninori Morimoto description: | 4779149fb8SKuninori Morimoto specifies clock direction as 'out' on initialization. 4879149fb8SKuninori Morimoto It is useful for some aCPUs with fixed clocks. 4979149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 5079149fb8SKuninori Morimoto 51e9fed03aSRobert Hancock system-clock-fixed: 52e9fed03aSRobert Hancock description: | 53e9fed03aSRobert Hancock Specifies that the clock frequency should not be modified. 54e9fed03aSRobert Hancock Implied when system-clock-frequency is specified, but can be used when 55e9fed03aSRobert Hancock a clock is mapped to the device whose frequency cannot or should not be 56e9fed03aSRobert Hancock changed. When mclk-fs is also specified, this restricts the device to a 57e9fed03aSRobert Hancock single fixed sampling rate. 58e9fed03aSRobert Hancock $ref: /schemas/types.yaml#/definitions/flag 59e9fed03aSRobert Hancock 6079149fb8SKuninori Morimoto mclk-fs: 6179149fb8SKuninori Morimoto description: | 6279149fb8SKuninori Morimoto Multiplication factor between stream rate and codec mclk. 6379149fb8SKuninori Morimoto When defined, mclk-fs property defined in dai-link sub nodes are ignored. 6479149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 6579149fb8SKuninori Morimoto 6679149fb8SKuninori Morimoto aux-devs: 6779149fb8SKuninori Morimoto description: | 6879149fb8SKuninori Morimoto List of phandles pointing to auxiliary devices, such 6979149fb8SKuninori Morimoto as amplifiers, to be added to the sound card. 7079149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/phandle-array 7179149fb8SKuninori Morimoto 7279149fb8SKuninori Morimoto convert-rate: 7379149fb8SKuninori Morimoto description: CPU to Codec rate convert. 7479149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 7579149fb8SKuninori Morimoto 7679149fb8SKuninori Morimoto convert-channels: 7779149fb8SKuninori Morimoto description: CPU to Codec rate channels. 7879149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/uint32 7979149fb8SKuninori Morimoto 8079149fb8SKuninori Morimoto prefix: 8179149fb8SKuninori Morimoto description: "device name prefix" 8279149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/string 8379149fb8SKuninori Morimoto 8479149fb8SKuninori Morimoto label: 8579149fb8SKuninori Morimoto maxItems: 1 8679149fb8SKuninori Morimoto 8779149fb8SKuninori Morimoto routing: 8879149fb8SKuninori Morimoto description: | 8979149fb8SKuninori Morimoto A list of the connections between audio components. 9079149fb8SKuninori Morimoto Each entry is a pair of strings, the first being the 9179149fb8SKuninori Morimoto connection's sink, the second being the connection's source. 9279149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/non-unique-string-array 9379149fb8SKuninori Morimoto 9479149fb8SKuninori Morimoto widgets: 9579149fb8SKuninori Morimoto description: User specified audio sound widgets. 9679149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/non-unique-string-array 9779149fb8SKuninori Morimoto 9879149fb8SKuninori Morimoto pin-switches: 9979149fb8SKuninori Morimoto description: the widget names for which pin switches must be created. 10079149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/string-array 10179149fb8SKuninori Morimoto 10279149fb8SKuninori Morimoto format: 10379149fb8SKuninori Morimoto description: audio format. 10479149fb8SKuninori Morimoto items: 10579149fb8SKuninori Morimoto enum: 10679149fb8SKuninori Morimoto - i2s 10779149fb8SKuninori Morimoto - right_j 10879149fb8SKuninori Morimoto - left_j 10979149fb8SKuninori Morimoto - dsp_a 11079149fb8SKuninori Morimoto - dsp_b 11179149fb8SKuninori Morimoto - ac97 11279149fb8SKuninori Morimoto - pdm 11379149fb8SKuninori Morimoto - msb 11479149fb8SKuninori Morimoto - lsb 11579149fb8SKuninori Morimoto 11679149fb8SKuninori Morimoto dai: 11779149fb8SKuninori Morimoto type: object 11879149fb8SKuninori Morimoto properties: 11979149fb8SKuninori Morimoto sound-dai: 12079149fb8SKuninori Morimoto maxItems: 1 12179149fb8SKuninori Morimoto 12279149fb8SKuninori Morimoto # common properties 12379149fb8SKuninori Morimoto mclk-fs: 12479149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 12579149fb8SKuninori Morimoto prefix: 12679149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 12779149fb8SKuninori Morimoto frame-inversion: 12879149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 12979149fb8SKuninori Morimoto bitclock-inversion: 13079149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 13179149fb8SKuninori Morimoto frame-master: 13279149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 13379149fb8SKuninori Morimoto bitclock-master: 13479149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/flag 13579149fb8SKuninori Morimoto 13679149fb8SKuninori Morimoto dai-tdm-slot-num: 13779149fb8SKuninori Morimoto $ref: "#/definitions/dai-tdm-slot-num" 13879149fb8SKuninori Morimoto dai-tdm-slot-width: 13979149fb8SKuninori Morimoto $ref: "#/definitions/dai-tdm-slot-width" 14079149fb8SKuninori Morimoto clocks: 14179149fb8SKuninori Morimoto maxItems: 1 14279149fb8SKuninori Morimoto system-clock-frequency: 14379149fb8SKuninori Morimoto $ref: "#/definitions/system-clock-frequency" 14479149fb8SKuninori Morimoto system-clock-direction-out: 14579149fb8SKuninori Morimoto $ref: "#/definitions/system-clock-direction-out" 146e9fed03aSRobert Hancock system-clock-fixed: 147e9fed03aSRobert Hancock $ref: "#/definitions/system-clock-fixed" 14879149fb8SKuninori Morimoto required: 14979149fb8SKuninori Morimoto - sound-dai 15079149fb8SKuninori Morimoto 15179149fb8SKuninori Morimotoproperties: 15279149fb8SKuninori Morimoto compatible: 15379149fb8SKuninori Morimoto contains: 15479149fb8SKuninori Morimoto enum: 15579149fb8SKuninori Morimoto - simple-audio-card 15679149fb8SKuninori Morimoto - simple-scu-audio-card 15779149fb8SKuninori Morimoto 15879149fb8SKuninori Morimoto "#address-cells": 15979149fb8SKuninori Morimoto const: 1 16079149fb8SKuninori Morimoto "#size-cells": 16179149fb8SKuninori Morimoto const: 0 16279149fb8SKuninori Morimoto 16379149fb8SKuninori Morimoto label: 16479149fb8SKuninori Morimoto $ref: "#/definitions/label" 16579149fb8SKuninori Morimoto 16679149fb8SKuninori Morimoto simple-audio-card,name: 16779149fb8SKuninori Morimoto description: User specified audio sound card name. 16879149fb8SKuninori Morimoto $ref: /schemas/types.yaml#/definitions/string 16979149fb8SKuninori Morimoto 170910f42bfSRob Herring simple-audio-card,widgets: 17179149fb8SKuninori Morimoto $ref: "#/definitions/widgets" 172910f42bfSRob Herring simple-audio-card,routing: 17379149fb8SKuninori Morimoto $ref: "#/definitions/routing" 17479149fb8SKuninori Morimoto 17579149fb8SKuninori Morimoto # common properties 176910f42bfSRob Herring simple-audio-card,frame-master: 17779149fb8SKuninori Morimoto $ref: "#/definitions/frame-master" 178910f42bfSRob Herring simple-audio-card,bitclock-master: 17979149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-master" 180910f42bfSRob Herring simple-audio-card,frame-inversion: 18179149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 182910f42bfSRob Herring simple-audio-card,bitclock-inversion: 18379149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 184910f42bfSRob Herring simple-audio-card,format: 18579149fb8SKuninori Morimoto $ref: "#/definitions/format" 186910f42bfSRob Herring simple-audio-card,mclk-fs: 18779149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 188910f42bfSRob Herring simple-audio-card,aux-devs: 18979149fb8SKuninori Morimoto $ref: "#/definitions/aux-devs" 190910f42bfSRob Herring simple-audio-card,convert-rate: 19179149fb8SKuninori Morimoto $ref: "#/definitions/convert-rate" 192910f42bfSRob Herring simple-audio-card,convert-channels: 19379149fb8SKuninori Morimoto $ref: "#/definitions/convert-channels" 194910f42bfSRob Herring simple-audio-card,prefix: 19579149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 196910f42bfSRob Herring simple-audio-card,pin-switches: 19779149fb8SKuninori Morimoto $ref: "#/definitions/pin-switches" 198910f42bfSRob Herring simple-audio-card,hp-det-gpio: 19979149fb8SKuninori Morimoto maxItems: 1 200910f42bfSRob Herring simple-audio-card,mic-det-gpio: 20179149fb8SKuninori Morimoto maxItems: 1 20279149fb8SKuninori Morimoto 203910f42bfSRob HerringpatternProperties: 204910f42bfSRob Herring "^simple-audio-card,cpu(@[0-9a-f]+)?$": 205910f42bfSRob Herring $ref: "#/definitions/dai" 206910f42bfSRob Herring "^simple-audio-card,codec(@[0-9a-f]+)?$": 207910f42bfSRob Herring $ref: "#/definitions/dai" 208e7e2b92eSFaiz Abbas "^simple-audio-card,plat(@[0-9a-f]+)?$": 209e7e2b92eSFaiz Abbas $ref: "#/definitions/dai" 210910f42bfSRob Herring 21179149fb8SKuninori Morimoto "^simple-audio-card,dai-link(@[0-9a-f]+)?$": 21279149fb8SKuninori Morimoto description: | 21379149fb8SKuninori Morimoto Container for dai-link level properties and the CPU and CODEC sub-nodes. 21479149fb8SKuninori Morimoto This container may be omitted when the card has only one DAI link. 21579149fb8SKuninori Morimoto type: object 21679149fb8SKuninori Morimoto properties: 21779149fb8SKuninori Morimoto reg: 21879149fb8SKuninori Morimoto maxItems: 1 21979149fb8SKuninori Morimoto 220*9e8593ecSKuninori Morimoto "#address-cells": 221*9e8593ecSKuninori Morimoto const: 1 222*9e8593ecSKuninori Morimoto "#size-cells": 223*9e8593ecSKuninori Morimoto const: 0 22479149fb8SKuninori Morimoto # common properties 22579149fb8SKuninori Morimoto frame-master: 22679149fb8SKuninori Morimoto $ref: "#/definitions/frame-master" 22779149fb8SKuninori Morimoto bitclock-master: 22879149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-master" 22979149fb8SKuninori Morimoto frame-inversion: 23079149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 23179149fb8SKuninori Morimoto bitclock-inversion: 23279149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 23379149fb8SKuninori Morimoto format: 23479149fb8SKuninori Morimoto $ref: "#/definitions/format" 23579149fb8SKuninori Morimoto mclk-fs: 23679149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 23779149fb8SKuninori Morimoto aux-devs: 23879149fb8SKuninori Morimoto $ref: "#/definitions/aux-devs" 23979149fb8SKuninori Morimoto convert-rate: 24079149fb8SKuninori Morimoto $ref: "#/definitions/convert-rate" 24179149fb8SKuninori Morimoto convert-channels: 24279149fb8SKuninori Morimoto $ref: "#/definitions/convert-channels" 24379149fb8SKuninori Morimoto prefix: 24479149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 24579149fb8SKuninori Morimoto pin-switches: 24679149fb8SKuninori Morimoto $ref: "#/definitions/pin-switches" 24779149fb8SKuninori Morimoto hp-det-gpio: 24879149fb8SKuninori Morimoto maxItems: 1 24979149fb8SKuninori Morimoto mic-det-gpio: 25079149fb8SKuninori Morimoto maxItems: 1 25179149fb8SKuninori Morimoto 25279149fb8SKuninori Morimoto patternProperties: 253cbf74bafSKrzysztof Kozlowski "^cpu(-[0-9]+)?$": 25479149fb8SKuninori Morimoto $ref: "#/definitions/dai" 255cbf74bafSKrzysztof Kozlowski "^codec(-[0-9]+)?$": 25679149fb8SKuninori Morimoto $ref: "#/definitions/dai" 25779149fb8SKuninori Morimoto additionalProperties: false 25879149fb8SKuninori Morimoto 25979149fb8SKuninori Morimotorequired: 26079149fb8SKuninori Morimoto - compatible 26179149fb8SKuninori Morimoto 26279149fb8SKuninori MorimotoadditionalProperties: false 26379149fb8SKuninori Morimoto 26479149fb8SKuninori Morimotoexamples: 26579149fb8SKuninori Morimoto#-------------------- 26679149fb8SKuninori Morimoto# single DAI link 26779149fb8SKuninori Morimoto#-------------------- 26879149fb8SKuninori Morimoto - | 26979149fb8SKuninori Morimoto sound { 27079149fb8SKuninori Morimoto compatible = "simple-audio-card"; 27179149fb8SKuninori Morimoto simple-audio-card,name = "VF610-Tower-Sound-Card"; 27279149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 27379149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&dailink0_master>; 27479149fb8SKuninori Morimoto simple-audio-card,frame-master = <&dailink0_master>; 27579149fb8SKuninori Morimoto simple-audio-card,widgets = 27679149fb8SKuninori Morimoto "Microphone", "Microphone Jack", 27779149fb8SKuninori Morimoto "Headphone", "Headphone Jack", 27879149fb8SKuninori Morimoto "Speaker", "External Speaker"; 27979149fb8SKuninori Morimoto simple-audio-card,routing = 28079149fb8SKuninori Morimoto "MIC_IN", "Microphone Jack", 28179149fb8SKuninori Morimoto "Headphone Jack", "HP_OUT", 28279149fb8SKuninori Morimoto "External Speaker", "LINE_OUT"; 28379149fb8SKuninori Morimoto 28479149fb8SKuninori Morimoto simple-audio-card,cpu { 28579149fb8SKuninori Morimoto sound-dai = <&sh_fsi2 0>; 28679149fb8SKuninori Morimoto }; 28779149fb8SKuninori Morimoto 28879149fb8SKuninori Morimoto dailink0_master: simple-audio-card,codec { 28979149fb8SKuninori Morimoto sound-dai = <&ak4648>; 29079149fb8SKuninori Morimoto clocks = <&osc>; 29179149fb8SKuninori Morimoto }; 29279149fb8SKuninori Morimoto }; 29379149fb8SKuninori Morimoto 29479149fb8SKuninori Morimoto#-------------------- 29579149fb8SKuninori Morimoto# Multi DAI links 29679149fb8SKuninori Morimoto#-------------------- 29779149fb8SKuninori Morimoto - | 29879149fb8SKuninori Morimoto sound { 29979149fb8SKuninori Morimoto compatible = "simple-audio-card"; 30079149fb8SKuninori Morimoto simple-audio-card,name = "Cubox Audio"; 30179149fb8SKuninori Morimoto 30279149fb8SKuninori Morimoto #address-cells = <1>; 30379149fb8SKuninori Morimoto #size-cells = <0>; 30479149fb8SKuninori Morimoto 30579149fb8SKuninori Morimoto simple-audio-card,dai-link@0 { /* I2S - HDMI */ 30679149fb8SKuninori Morimoto reg = <0>; 30779149fb8SKuninori Morimoto format = "i2s"; 30879149fb8SKuninori Morimoto cpu { 30979149fb8SKuninori Morimoto sound-dai = <&audio0>; 31079149fb8SKuninori Morimoto }; 31179149fb8SKuninori Morimoto codec { 31279149fb8SKuninori Morimoto sound-dai = <&tda998x0>; 31379149fb8SKuninori Morimoto }; 31479149fb8SKuninori Morimoto }; 31579149fb8SKuninori Morimoto 31679149fb8SKuninori Morimoto simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */ 31779149fb8SKuninori Morimoto reg = <1>; 31879149fb8SKuninori Morimoto cpu { 31979149fb8SKuninori Morimoto sound-dai = <&audio1>; 32079149fb8SKuninori Morimoto }; 32179149fb8SKuninori Morimoto codec { 32279149fb8SKuninori Morimoto sound-dai = <&tda998x1>; 32379149fb8SKuninori Morimoto }; 32479149fb8SKuninori Morimoto }; 32579149fb8SKuninori Morimoto 32679149fb8SKuninori Morimoto simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */ 32779149fb8SKuninori Morimoto reg = <2>; 32879149fb8SKuninori Morimoto cpu { 32979149fb8SKuninori Morimoto sound-dai = <&audio2>; 33079149fb8SKuninori Morimoto }; 33179149fb8SKuninori Morimoto codec { 33279149fb8SKuninori Morimoto sound-dai = <&spdif_codec>; 33379149fb8SKuninori Morimoto }; 33479149fb8SKuninori Morimoto }; 33579149fb8SKuninori Morimoto }; 33679149fb8SKuninori Morimoto 33779149fb8SKuninori Morimoto#-------------------- 33879149fb8SKuninori Morimoto# route audio from IMX6 SSI2 through TLV320DAC3100 codec 33979149fb8SKuninori Morimoto# through TPA6130A2 amplifier to headphones: 34079149fb8SKuninori Morimoto#-------------------- 34179149fb8SKuninori Morimoto - | 34279149fb8SKuninori Morimoto sound { 34379149fb8SKuninori Morimoto compatible = "simple-audio-card"; 34479149fb8SKuninori Morimoto 34579149fb8SKuninori Morimoto simple-audio-card,widgets = 34679149fb8SKuninori Morimoto "Headphone", "Headphone Jack"; 34779149fb8SKuninori Morimoto simple-audio-card,routing = 34879149fb8SKuninori Morimoto "Headphone Jack", "HPLEFT", 34979149fb8SKuninori Morimoto "Headphone Jack", "HPRIGHT", 35079149fb8SKuninori Morimoto "LEFTIN", "HPL", 35179149fb8SKuninori Morimoto "RIGHTIN", "HPR"; 35279149fb8SKuninori Morimoto simple-audio-card,aux-devs = <&>; 35379149fb8SKuninori Morimoto simple-audio-card,cpu { 35479149fb8SKuninori Morimoto sound-dai = <&ssi2>; 35579149fb8SKuninori Morimoto }; 35679149fb8SKuninori Morimoto simple-audio-card,codec { 35779149fb8SKuninori Morimoto sound-dai = <&codec>; 35879149fb8SKuninori Morimoto clocks = <&clocks>; 35979149fb8SKuninori Morimoto }; 36079149fb8SKuninori Morimoto }; 36179149fb8SKuninori Morimoto 36279149fb8SKuninori Morimoto#-------------------- 36379149fb8SKuninori Morimoto# Sampling Rate Conversion 36479149fb8SKuninori Morimoto#-------------------- 36579149fb8SKuninori Morimoto - | 36679149fb8SKuninori Morimoto sound { 36779149fb8SKuninori Morimoto compatible = "simple-audio-card"; 36879149fb8SKuninori Morimoto 36979149fb8SKuninori Morimoto simple-audio-card,name = "rsnd-ak4643"; 37079149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 37179149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&sndcodec>; 37279149fb8SKuninori Morimoto simple-audio-card,frame-master = <&sndcodec>; 37379149fb8SKuninori Morimoto 37479149fb8SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 37579149fb8SKuninori Morimoto 37679149fb8SKuninori Morimoto simple-audio-card,prefix = "ak4642"; 37779149fb8SKuninori Morimoto simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 37879149fb8SKuninori Morimoto "DAI0 Capture", "ak4642 Capture"; 37979149fb8SKuninori Morimoto 38079149fb8SKuninori Morimoto sndcpu: simple-audio-card,cpu { 38179149fb8SKuninori Morimoto sound-dai = <&rcar_sound>; 38279149fb8SKuninori Morimoto }; 38379149fb8SKuninori Morimoto 38479149fb8SKuninori Morimoto sndcodec: simple-audio-card,codec { 38579149fb8SKuninori Morimoto sound-dai = <&ak4643>; 38679149fb8SKuninori Morimoto system-clock-frequency = <11289600>; 38779149fb8SKuninori Morimoto }; 38879149fb8SKuninori Morimoto }; 38979149fb8SKuninori Morimoto 39079149fb8SKuninori Morimoto#-------------------- 39179149fb8SKuninori Morimoto# 2 CPU 1 Codec (Mixing) 39279149fb8SKuninori Morimoto#-------------------- 39379149fb8SKuninori Morimoto - | 39479149fb8SKuninori Morimoto sound { 39579149fb8SKuninori Morimoto compatible = "simple-audio-card"; 3965aaec71dSFabio Estevam #address-cells = <1>; 3975aaec71dSFabio Estevam #size-cells = <0>; 39879149fb8SKuninori Morimoto 39979149fb8SKuninori Morimoto simple-audio-card,name = "rsnd-ak4643"; 40079149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 40179149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&dpcmcpu>; 40279149fb8SKuninori Morimoto simple-audio-card,frame-master = <&dpcmcpu>; 40379149fb8SKuninori Morimoto 40479149fb8SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 40579149fb8SKuninori Morimoto simple-audio-card,convert-channels = <2>; 40679149fb8SKuninori Morimoto 40779149fb8SKuninori Morimoto simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 40879149fb8SKuninori Morimoto "ak4642 Playback", "DAI1 Playback"; 40979149fb8SKuninori Morimoto 41079149fb8SKuninori Morimoto dpcmcpu: simple-audio-card,cpu@0 { 4115aaec71dSFabio Estevam reg = <0>; 41279149fb8SKuninori Morimoto sound-dai = <&rcar_sound 0>; 41379149fb8SKuninori Morimoto }; 41479149fb8SKuninori Morimoto 41579149fb8SKuninori Morimoto simple-audio-card,cpu@1 { 4165aaec71dSFabio Estevam reg = <1>; 41779149fb8SKuninori Morimoto sound-dai = <&rcar_sound 1>; 41879149fb8SKuninori Morimoto }; 41979149fb8SKuninori Morimoto 42079149fb8SKuninori Morimoto simple-audio-card,codec { 42179149fb8SKuninori Morimoto prefix = "ak4642"; 42279149fb8SKuninori Morimoto sound-dai = <&ak4643>; 42379149fb8SKuninori Morimoto clocks = <&audio_clock>; 42479149fb8SKuninori Morimoto }; 42579149fb8SKuninori Morimoto }; 42679149fb8SKuninori Morimoto 42779149fb8SKuninori Morimoto#-------------------- 42879149fb8SKuninori Morimoto# Multi DAI links with DPCM: 42979149fb8SKuninori Morimoto# 43079149fb8SKuninori Morimoto# CPU0 ------ ak4613 43179149fb8SKuninori Morimoto# CPU1 ------ PCM3168A-p /* DPCM 1ch/2ch */ 43279149fb8SKuninori Morimoto# CPU2 --/ /* DPCM 3ch/4ch */ 43379149fb8SKuninori Morimoto# CPU3 --/ /* DPCM 5ch/6ch */ 43479149fb8SKuninori Morimoto# CPU4 --/ /* DPCM 7ch/8ch */ 43579149fb8SKuninori Morimoto# CPU5 ------ PCM3168A-c 43679149fb8SKuninori Morimoto#-------------------- 43779149fb8SKuninori Morimoto - | 43879149fb8SKuninori Morimoto sound { 43979149fb8SKuninori Morimoto compatible = "simple-audio-card"; 4405aaec71dSFabio Estevam #address-cells = <1>; 4415aaec71dSFabio Estevam #size-cells = <0>; 44279149fb8SKuninori Morimoto 44379149fb8SKuninori Morimoto simple-audio-card,routing = 44479149fb8SKuninori Morimoto "pcm3168a Playback", "DAI1 Playback", 44579149fb8SKuninori Morimoto "pcm3168a Playback", "DAI2 Playback", 44679149fb8SKuninori Morimoto "pcm3168a Playback", "DAI3 Playback", 44779149fb8SKuninori Morimoto "pcm3168a Playback", "DAI4 Playback"; 44879149fb8SKuninori Morimoto 44979149fb8SKuninori Morimoto simple-audio-card,dai-link@0 { 4505aaec71dSFabio Estevam reg = <0>; 45179149fb8SKuninori Morimoto format = "left_j"; 45279149fb8SKuninori Morimoto bitclock-master = <&sndcpu0>; 45379149fb8SKuninori Morimoto frame-master = <&sndcpu0>; 45479149fb8SKuninori Morimoto 45579149fb8SKuninori Morimoto sndcpu0: cpu { 45679149fb8SKuninori Morimoto sound-dai = <&rcar_sound 0>; 45779149fb8SKuninori Morimoto }; 45879149fb8SKuninori Morimoto codec { 45979149fb8SKuninori Morimoto sound-dai = <&ak4613>; 46079149fb8SKuninori Morimoto }; 46179149fb8SKuninori Morimoto }; 46279149fb8SKuninori Morimoto 46379149fb8SKuninori Morimoto simple-audio-card,dai-link@1 { 4645aaec71dSFabio Estevam reg = <1>; 46579149fb8SKuninori Morimoto format = "i2s"; 46679149fb8SKuninori Morimoto bitclock-master = <&sndcpu1>; 46779149fb8SKuninori Morimoto frame-master = <&sndcpu1>; 46879149fb8SKuninori Morimoto 46979149fb8SKuninori Morimoto convert-channels = <8>; /* TDM Split */ 47079149fb8SKuninori Morimoto 471cbf74bafSKrzysztof Kozlowski sndcpu1: cpu-0 { 47279149fb8SKuninori Morimoto sound-dai = <&rcar_sound 1>; 47379149fb8SKuninori Morimoto }; 474cbf74bafSKrzysztof Kozlowski cpu-1 { 47579149fb8SKuninori Morimoto sound-dai = <&rcar_sound 2>; 47679149fb8SKuninori Morimoto }; 477cbf74bafSKrzysztof Kozlowski cpu-2 { 47879149fb8SKuninori Morimoto sound-dai = <&rcar_sound 3>; 47979149fb8SKuninori Morimoto }; 480cbf74bafSKrzysztof Kozlowski cpu-3 { 48179149fb8SKuninori Morimoto sound-dai = <&rcar_sound 4>; 48279149fb8SKuninori Morimoto }; 48379149fb8SKuninori Morimoto codec { 48479149fb8SKuninori Morimoto mclk-fs = <512>; 48579149fb8SKuninori Morimoto prefix = "pcm3168a"; 48679149fb8SKuninori Morimoto dai-tdm-slot-num = <8>; 48779149fb8SKuninori Morimoto sound-dai = <&pcm3168a 0>; 48879149fb8SKuninori Morimoto }; 48979149fb8SKuninori Morimoto }; 49079149fb8SKuninori Morimoto 49179149fb8SKuninori Morimoto simple-audio-card,dai-link@2 { 4925aaec71dSFabio Estevam reg = <2>; 49379149fb8SKuninori Morimoto format = "i2s"; 49479149fb8SKuninori Morimoto bitclock-master = <&sndcpu2>; 49579149fb8SKuninori Morimoto frame-master = <&sndcpu2>; 49679149fb8SKuninori Morimoto 49779149fb8SKuninori Morimoto sndcpu2: cpu { 49879149fb8SKuninori Morimoto sound-dai = <&rcar_sound 5>; 49979149fb8SKuninori Morimoto }; 50079149fb8SKuninori Morimoto codec { 50179149fb8SKuninori Morimoto mclk-fs = <512>; 50279149fb8SKuninori Morimoto prefix = "pcm3168a"; 50379149fb8SKuninori Morimoto sound-dai = <&pcm3168a 1>; 50479149fb8SKuninori Morimoto }; 50579149fb8SKuninori Morimoto }; 50679149fb8SKuninori Morimoto }; 507