summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/sound/mediatek,mt8365-afe.yaml
blob: 45ad56d372343522a1bb7365bbb14c8d1e2a87d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/mediatek,mt8365-afe.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek Audio Front End PCM controller for MT8365

maintainers:
  - Alexandre Mergnat <amergnat@baylibre.com>

properties:
  compatible:
    const: mediatek,mt8365-afe-pcm

  reg:
    maxItems: 1

  "#sound-dai-cells":
    const: 0

  clocks:
    items:
      - description: 26M clock
      - description: mux for audio clock
      - description: audio i2s0 mck
      - description: audio i2s1 mck
      - description: audio i2s2 mck
      - description: audio i2s3 mck
      - description: engen 1 clock
      - description: engen 2 clock
      - description: audio 1 clock
      - description: audio 2 clock
      - description: mux for i2s0
      - description: mux for i2s1
      - description: mux for i2s2
      - description: mux for i2s3

  clock-names:
    items:
      - const: top_clk26m_clk
      - const: top_audio_sel
      - const: audio_i2s0_m
      - const: audio_i2s1_m
      - const: audio_i2s2_m
      - const: audio_i2s3_m
      - const: engen1
      - const: engen2
      - const: aud1
      - const: aud2
      - const: i2s0_m_sel
      - const: i2s1_m_sel
      - const: i2s2_m_sel
      - const: i2s3_m_sel

  interrupts:
    maxItems: 1

  power-domains:
    maxItems: 1

  mediatek,dmic-mode:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Indicates how many data pins are used to transmit two channels of PDM
      signal. 1 means two wires, 0 means one wire. Default value is 0.
    enum:
      - 0 # one wire
      - 1 # two wires

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts
  - power-domains

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/mediatek,mt8365-clk.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/power/mediatek,mt8365-power.h>

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        audio-controller@11220000 {
            compatible = "mediatek,mt8365-afe-pcm";
            reg = <0 0x11220000 0 0x1000>;
            #sound-dai-cells = <0>;
            clocks = <&clk26m>,
                     <&topckgen CLK_TOP_AUDIO_SEL>,
                     <&topckgen CLK_TOP_AUD_I2S0_M>,
                     <&topckgen CLK_TOP_AUD_I2S1_M>,
                     <&topckgen CLK_TOP_AUD_I2S2_M>,
                     <&topckgen CLK_TOP_AUD_I2S3_M>,
                     <&topckgen CLK_TOP_AUD_ENGEN1_SEL>,
                     <&topckgen CLK_TOP_AUD_ENGEN2_SEL>,
                     <&topckgen CLK_TOP_AUD_1_SEL>,
                     <&topckgen CLK_TOP_AUD_2_SEL>,
                     <&topckgen CLK_TOP_APLL_I2S0_SEL>,
                     <&topckgen CLK_TOP_APLL_I2S1_SEL>,
                     <&topckgen CLK_TOP_APLL_I2S2_SEL>,
                     <&topckgen CLK_TOP_APLL_I2S3_SEL>;
            clock-names = "top_clk26m_clk",
                          "top_audio_sel",
                          "audio_i2s0_m",
                          "audio_i2s1_m",
                          "audio_i2s2_m",
                          "audio_i2s3_m",
                          "engen1",
                          "engen2",
                          "aud1",
                          "aud2",
                          "i2s0_m_sel",
                          "i2s1_m_sel",
                          "i2s2_m_sel",
                          "i2s3_m_sel";
            interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
            power-domains = <&spm MT8365_POWER_DOMAIN_AUDIO>;
            mediatek,dmic-mode = <1>;
        };
    };

...