xref: /openbmc/linux/Documentation/devicetree/bindings/sound/simple-card.yaml (revision 9e8593ec9ef74a4731ab1a07ba0838fc48c98466)
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 = <&amp>;
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