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. 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 170*910f42bfSRob Herring simple-audio-card,widgets: 17179149fb8SKuninori Morimoto $ref: "#/definitions/widgets" 172*910f42bfSRob Herring simple-audio-card,routing: 17379149fb8SKuninori Morimoto $ref: "#/definitions/routing" 17479149fb8SKuninori Morimoto 17579149fb8SKuninori Morimoto # common properties 176*910f42bfSRob Herring simple-audio-card,frame-master: 17779149fb8SKuninori Morimoto $ref: "#/definitions/frame-master" 178*910f42bfSRob Herring simple-audio-card,bitclock-master: 17979149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-master" 180*910f42bfSRob Herring simple-audio-card,frame-inversion: 18179149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 182*910f42bfSRob Herring simple-audio-card,bitclock-inversion: 18379149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 184*910f42bfSRob Herring simple-audio-card,format: 18579149fb8SKuninori Morimoto $ref: "#/definitions/format" 186*910f42bfSRob Herring simple-audio-card,mclk-fs: 18779149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 188*910f42bfSRob Herring simple-audio-card,aux-devs: 18979149fb8SKuninori Morimoto $ref: "#/definitions/aux-devs" 190*910f42bfSRob Herring simple-audio-card,convert-rate: 19179149fb8SKuninori Morimoto $ref: "#/definitions/convert-rate" 192*910f42bfSRob Herring simple-audio-card,convert-channels: 19379149fb8SKuninori Morimoto $ref: "#/definitions/convert-channels" 194*910f42bfSRob Herring simple-audio-card,prefix: 19579149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 196*910f42bfSRob Herring simple-audio-card,pin-switches: 19779149fb8SKuninori Morimoto $ref: "#/definitions/pin-switches" 198*910f42bfSRob Herring simple-audio-card,hp-det-gpio: 19979149fb8SKuninori Morimoto maxItems: 1 200*910f42bfSRob Herring simple-audio-card,mic-det-gpio: 20179149fb8SKuninori Morimoto maxItems: 1 20279149fb8SKuninori Morimoto 203*910f42bfSRob HerringpatternProperties: 204*910f42bfSRob Herring "^simple-audio-card,cpu(@[0-9a-f]+)?$": 205*910f42bfSRob Herring $ref: "#/definitions/dai" 206*910f42bfSRob Herring "^simple-audio-card,codec(@[0-9a-f]+)?$": 207*910f42bfSRob Herring $ref: "#/definitions/dai" 208*910f42bfSRob Herring 20979149fb8SKuninori Morimoto "^simple-audio-card,dai-link(@[0-9a-f]+)?$": 21079149fb8SKuninori Morimoto description: | 21179149fb8SKuninori Morimoto Container for dai-link level properties and the CPU and CODEC sub-nodes. 21279149fb8SKuninori Morimoto This container may be omitted when the card has only one DAI link. 21379149fb8SKuninori Morimoto type: object 21479149fb8SKuninori Morimoto properties: 21579149fb8SKuninori Morimoto reg: 21679149fb8SKuninori Morimoto maxItems: 1 21779149fb8SKuninori Morimoto 21879149fb8SKuninori Morimoto # common properties 21979149fb8SKuninori Morimoto frame-master: 22079149fb8SKuninori Morimoto $ref: "#/definitions/frame-master" 22179149fb8SKuninori Morimoto bitclock-master: 22279149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-master" 22379149fb8SKuninori Morimoto frame-inversion: 22479149fb8SKuninori Morimoto $ref: "#/definitions/frame-inversion" 22579149fb8SKuninori Morimoto bitclock-inversion: 22679149fb8SKuninori Morimoto $ref: "#/definitions/bitclock-inversion" 22779149fb8SKuninori Morimoto format: 22879149fb8SKuninori Morimoto $ref: "#/definitions/format" 22979149fb8SKuninori Morimoto mclk-fs: 23079149fb8SKuninori Morimoto $ref: "#/definitions/mclk-fs" 23179149fb8SKuninori Morimoto aux-devs: 23279149fb8SKuninori Morimoto $ref: "#/definitions/aux-devs" 23379149fb8SKuninori Morimoto convert-rate: 23479149fb8SKuninori Morimoto $ref: "#/definitions/convert-rate" 23579149fb8SKuninori Morimoto convert-channels: 23679149fb8SKuninori Morimoto $ref: "#/definitions/convert-channels" 23779149fb8SKuninori Morimoto prefix: 23879149fb8SKuninori Morimoto $ref: "#/definitions/prefix" 23979149fb8SKuninori Morimoto pin-switches: 24079149fb8SKuninori Morimoto $ref: "#/definitions/pin-switches" 24179149fb8SKuninori Morimoto hp-det-gpio: 24279149fb8SKuninori Morimoto maxItems: 1 24379149fb8SKuninori Morimoto mic-det-gpio: 24479149fb8SKuninori Morimoto maxItems: 1 24579149fb8SKuninori Morimoto 24679149fb8SKuninori Morimoto patternProperties: 24779149fb8SKuninori Morimoto "^cpu(@[0-9a-f]+)?": 24879149fb8SKuninori Morimoto $ref: "#/definitions/dai" 24979149fb8SKuninori Morimoto "^codec(@[0-9a-f]+)?": 25079149fb8SKuninori Morimoto $ref: "#/definitions/dai" 25179149fb8SKuninori Morimoto additionalProperties: false 25279149fb8SKuninori Morimoto 25379149fb8SKuninori Morimotorequired: 25479149fb8SKuninori Morimoto - compatible 25579149fb8SKuninori Morimoto 25679149fb8SKuninori MorimotoadditionalProperties: false 25779149fb8SKuninori Morimoto 25879149fb8SKuninori Morimotoexamples: 25979149fb8SKuninori Morimoto#-------------------- 26079149fb8SKuninori Morimoto# single DAI link 26179149fb8SKuninori Morimoto#-------------------- 26279149fb8SKuninori Morimoto - | 26379149fb8SKuninori Morimoto sound { 26479149fb8SKuninori Morimoto compatible = "simple-audio-card"; 26579149fb8SKuninori Morimoto simple-audio-card,name = "VF610-Tower-Sound-Card"; 26679149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 26779149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&dailink0_master>; 26879149fb8SKuninori Morimoto simple-audio-card,frame-master = <&dailink0_master>; 26979149fb8SKuninori Morimoto simple-audio-card,widgets = 27079149fb8SKuninori Morimoto "Microphone", "Microphone Jack", 27179149fb8SKuninori Morimoto "Headphone", "Headphone Jack", 27279149fb8SKuninori Morimoto "Speaker", "External Speaker"; 27379149fb8SKuninori Morimoto simple-audio-card,routing = 27479149fb8SKuninori Morimoto "MIC_IN", "Microphone Jack", 27579149fb8SKuninori Morimoto "Headphone Jack", "HP_OUT", 27679149fb8SKuninori Morimoto "External Speaker", "LINE_OUT"; 27779149fb8SKuninori Morimoto 27879149fb8SKuninori Morimoto simple-audio-card,cpu { 27979149fb8SKuninori Morimoto sound-dai = <&sh_fsi2 0>; 28079149fb8SKuninori Morimoto }; 28179149fb8SKuninori Morimoto 28279149fb8SKuninori Morimoto dailink0_master: simple-audio-card,codec { 28379149fb8SKuninori Morimoto sound-dai = <&ak4648>; 28479149fb8SKuninori Morimoto clocks = <&osc>; 28579149fb8SKuninori Morimoto }; 28679149fb8SKuninori Morimoto }; 28779149fb8SKuninori Morimoto 28879149fb8SKuninori Morimoto#-------------------- 28979149fb8SKuninori Morimoto# Multi DAI links 29079149fb8SKuninori Morimoto#-------------------- 29179149fb8SKuninori Morimoto - | 29279149fb8SKuninori Morimoto sound { 29379149fb8SKuninori Morimoto compatible = "simple-audio-card"; 29479149fb8SKuninori Morimoto simple-audio-card,name = "Cubox Audio"; 29579149fb8SKuninori Morimoto 29679149fb8SKuninori Morimoto #address-cells = <1>; 29779149fb8SKuninori Morimoto #size-cells = <0>; 29879149fb8SKuninori Morimoto 29979149fb8SKuninori Morimoto simple-audio-card,dai-link@0 { /* I2S - HDMI */ 30079149fb8SKuninori Morimoto reg = <0>; 30179149fb8SKuninori Morimoto format = "i2s"; 30279149fb8SKuninori Morimoto cpu { 30379149fb8SKuninori Morimoto sound-dai = <&audio0>; 30479149fb8SKuninori Morimoto }; 30579149fb8SKuninori Morimoto codec { 30679149fb8SKuninori Morimoto sound-dai = <&tda998x0>; 30779149fb8SKuninori Morimoto }; 30879149fb8SKuninori Morimoto }; 30979149fb8SKuninori Morimoto 31079149fb8SKuninori Morimoto simple-audio-card,dai-link@1 { /* S/PDIF - HDMI */ 31179149fb8SKuninori Morimoto reg = <1>; 31279149fb8SKuninori Morimoto cpu { 31379149fb8SKuninori Morimoto sound-dai = <&audio1>; 31479149fb8SKuninori Morimoto }; 31579149fb8SKuninori Morimoto codec { 31679149fb8SKuninori Morimoto sound-dai = <&tda998x1>; 31779149fb8SKuninori Morimoto }; 31879149fb8SKuninori Morimoto }; 31979149fb8SKuninori Morimoto 32079149fb8SKuninori Morimoto simple-audio-card,dai-link@2 { /* S/PDIF - S/PDIF */ 32179149fb8SKuninori Morimoto reg = <2>; 32279149fb8SKuninori Morimoto cpu { 32379149fb8SKuninori Morimoto sound-dai = <&audio2>; 32479149fb8SKuninori Morimoto }; 32579149fb8SKuninori Morimoto codec { 32679149fb8SKuninori Morimoto sound-dai = <&spdif_codec>; 32779149fb8SKuninori Morimoto }; 32879149fb8SKuninori Morimoto }; 32979149fb8SKuninori Morimoto }; 33079149fb8SKuninori Morimoto 33179149fb8SKuninori Morimoto#-------------------- 33279149fb8SKuninori Morimoto# route audio from IMX6 SSI2 through TLV320DAC3100 codec 33379149fb8SKuninori Morimoto# through TPA6130A2 amplifier to headphones: 33479149fb8SKuninori Morimoto#-------------------- 33579149fb8SKuninori Morimoto - | 33679149fb8SKuninori Morimoto sound { 33779149fb8SKuninori Morimoto compatible = "simple-audio-card"; 33879149fb8SKuninori Morimoto 33979149fb8SKuninori Morimoto simple-audio-card,widgets = 34079149fb8SKuninori Morimoto "Headphone", "Headphone Jack"; 34179149fb8SKuninori Morimoto simple-audio-card,routing = 34279149fb8SKuninori Morimoto "Headphone Jack", "HPLEFT", 34379149fb8SKuninori Morimoto "Headphone Jack", "HPRIGHT", 34479149fb8SKuninori Morimoto "LEFTIN", "HPL", 34579149fb8SKuninori Morimoto "RIGHTIN", "HPR"; 34679149fb8SKuninori Morimoto simple-audio-card,aux-devs = <&>; 34779149fb8SKuninori Morimoto simple-audio-card,cpu { 34879149fb8SKuninori Morimoto sound-dai = <&ssi2>; 34979149fb8SKuninori Morimoto }; 35079149fb8SKuninori Morimoto simple-audio-card,codec { 35179149fb8SKuninori Morimoto sound-dai = <&codec>; 35279149fb8SKuninori Morimoto clocks = <&clocks>; 35379149fb8SKuninori Morimoto }; 35479149fb8SKuninori Morimoto }; 35579149fb8SKuninori Morimoto 35679149fb8SKuninori Morimoto#-------------------- 35779149fb8SKuninori Morimoto# Sampling Rate Conversion 35879149fb8SKuninori Morimoto#-------------------- 35979149fb8SKuninori Morimoto - | 36079149fb8SKuninori Morimoto sound { 36179149fb8SKuninori Morimoto compatible = "simple-audio-card"; 36279149fb8SKuninori Morimoto 36379149fb8SKuninori Morimoto simple-audio-card,name = "rsnd-ak4643"; 36479149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 36579149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&sndcodec>; 36679149fb8SKuninori Morimoto simple-audio-card,frame-master = <&sndcodec>; 36779149fb8SKuninori Morimoto 36879149fb8SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 36979149fb8SKuninori Morimoto 37079149fb8SKuninori Morimoto simple-audio-card,prefix = "ak4642"; 37179149fb8SKuninori Morimoto simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 37279149fb8SKuninori Morimoto "DAI0 Capture", "ak4642 Capture"; 37379149fb8SKuninori Morimoto 37479149fb8SKuninori Morimoto sndcpu: simple-audio-card,cpu { 37579149fb8SKuninori Morimoto sound-dai = <&rcar_sound>; 37679149fb8SKuninori Morimoto }; 37779149fb8SKuninori Morimoto 37879149fb8SKuninori Morimoto sndcodec: simple-audio-card,codec { 37979149fb8SKuninori Morimoto sound-dai = <&ak4643>; 38079149fb8SKuninori Morimoto system-clock-frequency = <11289600>; 38179149fb8SKuninori Morimoto }; 38279149fb8SKuninori Morimoto }; 38379149fb8SKuninori Morimoto 38479149fb8SKuninori Morimoto#-------------------- 38579149fb8SKuninori Morimoto# 2 CPU 1 Codec (Mixing) 38679149fb8SKuninori Morimoto#-------------------- 38779149fb8SKuninori Morimoto - | 38879149fb8SKuninori Morimoto sound { 38979149fb8SKuninori Morimoto compatible = "simple-audio-card"; 3905aaec71dSFabio Estevam #address-cells = <1>; 3915aaec71dSFabio Estevam #size-cells = <0>; 39279149fb8SKuninori Morimoto 39379149fb8SKuninori Morimoto simple-audio-card,name = "rsnd-ak4643"; 39479149fb8SKuninori Morimoto simple-audio-card,format = "left_j"; 39579149fb8SKuninori Morimoto simple-audio-card,bitclock-master = <&dpcmcpu>; 39679149fb8SKuninori Morimoto simple-audio-card,frame-master = <&dpcmcpu>; 39779149fb8SKuninori Morimoto 39879149fb8SKuninori Morimoto simple-audio-card,convert-rate = <48000>; 39979149fb8SKuninori Morimoto simple-audio-card,convert-channels = <2>; 40079149fb8SKuninori Morimoto 40179149fb8SKuninori Morimoto simple-audio-card,routing = "ak4642 Playback", "DAI0 Playback", 40279149fb8SKuninori Morimoto "ak4642 Playback", "DAI1 Playback"; 40379149fb8SKuninori Morimoto 40479149fb8SKuninori Morimoto dpcmcpu: simple-audio-card,cpu@0 { 4055aaec71dSFabio Estevam reg = <0>; 40679149fb8SKuninori Morimoto sound-dai = <&rcar_sound 0>; 40779149fb8SKuninori Morimoto }; 40879149fb8SKuninori Morimoto 40979149fb8SKuninori Morimoto simple-audio-card,cpu@1 { 4105aaec71dSFabio Estevam reg = <1>; 41179149fb8SKuninori Morimoto sound-dai = <&rcar_sound 1>; 41279149fb8SKuninori Morimoto }; 41379149fb8SKuninori Morimoto 41479149fb8SKuninori Morimoto simple-audio-card,codec { 41579149fb8SKuninori Morimoto prefix = "ak4642"; 41679149fb8SKuninori Morimoto sound-dai = <&ak4643>; 41779149fb8SKuninori Morimoto clocks = <&audio_clock>; 41879149fb8SKuninori Morimoto }; 41979149fb8SKuninori Morimoto }; 42079149fb8SKuninori Morimoto 42179149fb8SKuninori Morimoto#-------------------- 42279149fb8SKuninori Morimoto# Multi DAI links with DPCM: 42379149fb8SKuninori Morimoto# 42479149fb8SKuninori Morimoto# CPU0 ------ ak4613 42579149fb8SKuninori Morimoto# CPU1 ------ PCM3168A-p /* DPCM 1ch/2ch */ 42679149fb8SKuninori Morimoto# CPU2 --/ /* DPCM 3ch/4ch */ 42779149fb8SKuninori Morimoto# CPU3 --/ /* DPCM 5ch/6ch */ 42879149fb8SKuninori Morimoto# CPU4 --/ /* DPCM 7ch/8ch */ 42979149fb8SKuninori Morimoto# CPU5 ------ PCM3168A-c 43079149fb8SKuninori Morimoto#-------------------- 43179149fb8SKuninori Morimoto - | 43279149fb8SKuninori Morimoto sound { 43379149fb8SKuninori Morimoto compatible = "simple-audio-card"; 4345aaec71dSFabio Estevam #address-cells = <1>; 4355aaec71dSFabio Estevam #size-cells = <0>; 43679149fb8SKuninori Morimoto 43779149fb8SKuninori Morimoto simple-audio-card,routing = 43879149fb8SKuninori Morimoto "pcm3168a Playback", "DAI1 Playback", 43979149fb8SKuninori Morimoto "pcm3168a Playback", "DAI2 Playback", 44079149fb8SKuninori Morimoto "pcm3168a Playback", "DAI3 Playback", 44179149fb8SKuninori Morimoto "pcm3168a Playback", "DAI4 Playback"; 44279149fb8SKuninori Morimoto 44379149fb8SKuninori Morimoto simple-audio-card,dai-link@0 { 4445aaec71dSFabio Estevam reg = <0>; 44579149fb8SKuninori Morimoto format = "left_j"; 44679149fb8SKuninori Morimoto bitclock-master = <&sndcpu0>; 44779149fb8SKuninori Morimoto frame-master = <&sndcpu0>; 44879149fb8SKuninori Morimoto 44979149fb8SKuninori Morimoto sndcpu0: cpu { 45079149fb8SKuninori Morimoto sound-dai = <&rcar_sound 0>; 45179149fb8SKuninori Morimoto }; 45279149fb8SKuninori Morimoto codec { 45379149fb8SKuninori Morimoto sound-dai = <&ak4613>; 45479149fb8SKuninori Morimoto }; 45579149fb8SKuninori Morimoto }; 45679149fb8SKuninori Morimoto 45779149fb8SKuninori Morimoto simple-audio-card,dai-link@1 { 4585aaec71dSFabio Estevam reg = <1>; 45979149fb8SKuninori Morimoto format = "i2s"; 46079149fb8SKuninori Morimoto bitclock-master = <&sndcpu1>; 46179149fb8SKuninori Morimoto frame-master = <&sndcpu1>; 46279149fb8SKuninori Morimoto 46379149fb8SKuninori Morimoto convert-channels = <8>; /* TDM Split */ 46479149fb8SKuninori Morimoto 4655aaec71dSFabio Estevam sndcpu1: cpu0 { 46679149fb8SKuninori Morimoto sound-dai = <&rcar_sound 1>; 46779149fb8SKuninori Morimoto }; 4685aaec71dSFabio Estevam cpu1 { 46979149fb8SKuninori Morimoto sound-dai = <&rcar_sound 2>; 47079149fb8SKuninori Morimoto }; 4715aaec71dSFabio Estevam cpu2 { 47279149fb8SKuninori Morimoto sound-dai = <&rcar_sound 3>; 47379149fb8SKuninori Morimoto }; 4745aaec71dSFabio Estevam cpu3 { 47579149fb8SKuninori Morimoto sound-dai = <&rcar_sound 4>; 47679149fb8SKuninori Morimoto }; 47779149fb8SKuninori Morimoto codec { 47879149fb8SKuninori Morimoto mclk-fs = <512>; 47979149fb8SKuninori Morimoto prefix = "pcm3168a"; 48079149fb8SKuninori Morimoto dai-tdm-slot-num = <8>; 48179149fb8SKuninori Morimoto sound-dai = <&pcm3168a 0>; 48279149fb8SKuninori Morimoto }; 48379149fb8SKuninori Morimoto }; 48479149fb8SKuninori Morimoto 48579149fb8SKuninori Morimoto simple-audio-card,dai-link@2 { 4865aaec71dSFabio Estevam reg = <2>; 48779149fb8SKuninori Morimoto format = "i2s"; 48879149fb8SKuninori Morimoto bitclock-master = <&sndcpu2>; 48979149fb8SKuninori Morimoto frame-master = <&sndcpu2>; 49079149fb8SKuninori Morimoto 49179149fb8SKuninori Morimoto sndcpu2: cpu { 49279149fb8SKuninori Morimoto sound-dai = <&rcar_sound 5>; 49379149fb8SKuninori Morimoto }; 49479149fb8SKuninori Morimoto codec { 49579149fb8SKuninori Morimoto mclk-fs = <512>; 49679149fb8SKuninori Morimoto prefix = "pcm3168a"; 49779149fb8SKuninori Morimoto sound-dai = <&pcm3168a 1>; 49879149fb8SKuninori Morimoto }; 49979149fb8SKuninori Morimoto }; 50079149fb8SKuninori Morimoto }; 501