summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/arm/mediatek/mediatek,audsys.yaml
blob: 45d4a6620041b11cf6e943de49a42f3fcd91e1b9 (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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/mediatek/mediatek,audsys.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek AUDSYS controller

maintainers:
  - Eugen Hristev <eugen.hristev@collabora.com>

description:
  The MediaTek AUDSYS controller provides various clocks to the system.

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - mediatek,mt2701-audsys
              - mediatek,mt6765-audsys
              - mediatek,mt6779-audsys
              - mediatek,mt7622-audsys
              - mediatek,mt8167-audsys
              - mediatek,mt8173-audsys
              - mediatek,mt8183-audsys
              - mediatek,mt8186-audsys
              - mediatek,mt8192-audsys
              - mediatek,mt8516-audsys
          - const: syscon
      - items:
          # Special case for mt7623 for backward compatibility
          - const: mediatek,mt7623-audsys
          - const: mediatek,mt2701-audsys
          - const: syscon

  reg:
    maxItems: 1

  '#clock-cells':
    const: 1

  audio-controller:
    $ref: /schemas/sound/mediatek,mt2701-audio.yaml#
    type: object

required:
  - compatible
  - '#clock-cells'

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/power/mt2701-power.h>
    #include <dt-bindings/clock/mt2701-clk.h>
    soc {
        #address-cells = <2>;
        #size-cells = <2>;
        audsys: clock-controller@11220000 {
            compatible = "mediatek,mt7622-audsys", "syscon";
            reg = <0 0x11220000 0 0x2000>;
            #clock-cells = <1>;

            afe: audio-controller {
                compatible = "mediatek,mt2701-audio";
                interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>;
                interrupt-names = "afe", "asys";
                power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;

                clocks = <&infracfg CLK_INFRA_AUDIO>,
                         <&topckgen CLK_TOP_AUD_MUX1_SEL>,
                         <&topckgen CLK_TOP_AUD_MUX2_SEL>,
                         <&topckgen CLK_TOP_AUD_48K_TIMING>,
                         <&topckgen CLK_TOP_AUD_44K_TIMING>,
                         <&topckgen CLK_TOP_AUD_K1_SRC_SEL>,
                         <&topckgen CLK_TOP_AUD_K2_SRC_SEL>,
                         <&topckgen CLK_TOP_AUD_K3_SRC_SEL>,
                         <&topckgen CLK_TOP_AUD_K4_SRC_SEL>,
                         <&topckgen CLK_TOP_AUD_K1_SRC_DIV>,
                         <&topckgen CLK_TOP_AUD_K2_SRC_DIV>,
                         <&topckgen CLK_TOP_AUD_K3_SRC_DIV>,
                         <&topckgen CLK_TOP_AUD_K4_SRC_DIV>,
                         <&topckgen CLK_TOP_AUD_I2S1_MCLK>,
                         <&topckgen CLK_TOP_AUD_I2S2_MCLK>,
                         <&topckgen CLK_TOP_AUD_I2S3_MCLK>,
                         <&topckgen CLK_TOP_AUD_I2S4_MCLK>,
                         <&audsys CLK_AUD_I2SO1>,
                         <&audsys CLK_AUD_I2SO2>,
                         <&audsys CLK_AUD_I2SO3>,
                         <&audsys CLK_AUD_I2SO4>,
                         <&audsys CLK_AUD_I2SIN1>,
                         <&audsys CLK_AUD_I2SIN2>,
                         <&audsys CLK_AUD_I2SIN3>,
                         <&audsys CLK_AUD_I2SIN4>,
                         <&audsys CLK_AUD_ASRCO1>,
                         <&audsys CLK_AUD_ASRCO2>,
                         <&audsys CLK_AUD_ASRCO3>,
                         <&audsys CLK_AUD_ASRCO4>,
                         <&audsys CLK_AUD_AFE>,
                         <&audsys CLK_AUD_AFE_CONN>,
                         <&audsys CLK_AUD_A1SYS>,
                         <&audsys CLK_AUD_A2SYS>,
                         <&audsys CLK_AUD_AFE_MRGIF>;

                clock-names = "infra_sys_audio_clk",
                              "top_audio_mux1_sel",
                              "top_audio_mux2_sel",
                              "top_audio_a1sys_hp",
                              "top_audio_a2sys_hp",
                              "i2s0_src_sel",
                              "i2s1_src_sel",
                              "i2s2_src_sel",
                              "i2s3_src_sel",
                              "i2s0_src_div",
                              "i2s1_src_div",
                              "i2s2_src_div",
                              "i2s3_src_div",
                              "i2s0_mclk_en",
                              "i2s1_mclk_en",
                              "i2s2_mclk_en",
                              "i2s3_mclk_en",
                              "i2so0_hop_ck",
                              "i2so1_hop_ck",
                              "i2so2_hop_ck",
                              "i2so3_hop_ck",
                              "i2si0_hop_ck",
                              "i2si1_hop_ck",
                              "i2si2_hop_ck",
                              "i2si3_hop_ck",
                              "asrc0_out_ck",
                              "asrc1_out_ck",
                              "asrc2_out_ck",
                              "asrc3_out_ck",
                              "audio_afe_pd",
                              "audio_afe_conn_pd",
                              "audio_a1sys_pd",
                              "audio_a2sys_pd",
                              "audio_mrgif_pd";

                assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>,
                                  <&topckgen CLK_TOP_AUD_MUX2_SEL>,
                                  <&topckgen CLK_TOP_AUD_MUX1_DIV>,
                                  <&topckgen CLK_TOP_AUD_MUX2_DIV>;
                assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>,
                                         <&topckgen CLK_TOP_AUD2PLL_90M>;
                assigned-clock-rates = <0>, <0>, <49152000>, <45158400>;
            };
        };
    };