xref: /openbmc/linux/Documentation/devicetree/bindings/sound/simple-card.yaml (revision cbf74baf02219978bfa9c2959eac6bf1d98c32cd)
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"
208910f42bfSRob 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:
247*cbf74bafSKrzysztof Kozlowski      "^cpu(-[0-9]+)?$":
24879149fb8SKuninori Morimoto        $ref: "#/definitions/dai"
249*cbf74bafSKrzysztof Kozlowski      "^codec(-[0-9]+)?$":
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 = <&amp>;
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
465*cbf74bafSKrzysztof Kozlowski            sndcpu1: cpu-0 {
46679149fb8SKuninori Morimoto                sound-dai = <&rcar_sound 1>;
46779149fb8SKuninori Morimoto            };
468*cbf74bafSKrzysztof Kozlowski            cpu-1 {
46979149fb8SKuninori Morimoto                sound-dai = <&rcar_sound 2>;
47079149fb8SKuninori Morimoto            };
471*cbf74bafSKrzysztof Kozlowski            cpu-2 {
47279149fb8SKuninori Morimoto                sound-dai = <&rcar_sound 3>;
47379149fb8SKuninori Morimoto            };
474*cbf74bafSKrzysztof Kozlowski            cpu-3 {
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