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