xref: /linux/Documentation/devicetree/bindings/sound/mediatek,mt8365-afe.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1*ceb3ca28SAlexandre Mergnat# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ceb3ca28SAlexandre Mergnat%YAML 1.2
3*ceb3ca28SAlexandre Mergnat---
4*ceb3ca28SAlexandre Mergnat$id: http://devicetree.org/schemas/sound/mediatek,mt8365-afe.yaml#
5*ceb3ca28SAlexandre Mergnat$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ceb3ca28SAlexandre Mergnat
7*ceb3ca28SAlexandre Mergnattitle: MediaTek Audio Front End PCM controller for MT8365
8*ceb3ca28SAlexandre Mergnat
9*ceb3ca28SAlexandre Mergnatmaintainers:
10*ceb3ca28SAlexandre Mergnat  - Alexandre Mergnat <amergnat@baylibre.com>
11*ceb3ca28SAlexandre Mergnat
12*ceb3ca28SAlexandre Mergnatproperties:
13*ceb3ca28SAlexandre Mergnat  compatible:
14*ceb3ca28SAlexandre Mergnat    const: mediatek,mt8365-afe-pcm
15*ceb3ca28SAlexandre Mergnat
16*ceb3ca28SAlexandre Mergnat  reg:
17*ceb3ca28SAlexandre Mergnat    maxItems: 1
18*ceb3ca28SAlexandre Mergnat
19*ceb3ca28SAlexandre Mergnat  "#sound-dai-cells":
20*ceb3ca28SAlexandre Mergnat    const: 0
21*ceb3ca28SAlexandre Mergnat
22*ceb3ca28SAlexandre Mergnat  clocks:
23*ceb3ca28SAlexandre Mergnat    items:
24*ceb3ca28SAlexandre Mergnat      - description: 26M clock
25*ceb3ca28SAlexandre Mergnat      - description: mux for audio clock
26*ceb3ca28SAlexandre Mergnat      - description: audio i2s0 mck
27*ceb3ca28SAlexandre Mergnat      - description: audio i2s1 mck
28*ceb3ca28SAlexandre Mergnat      - description: audio i2s2 mck
29*ceb3ca28SAlexandre Mergnat      - description: audio i2s3 mck
30*ceb3ca28SAlexandre Mergnat      - description: engen 1 clock
31*ceb3ca28SAlexandre Mergnat      - description: engen 2 clock
32*ceb3ca28SAlexandre Mergnat      - description: audio 1 clock
33*ceb3ca28SAlexandre Mergnat      - description: audio 2 clock
34*ceb3ca28SAlexandre Mergnat      - description: mux for i2s0
35*ceb3ca28SAlexandre Mergnat      - description: mux for i2s1
36*ceb3ca28SAlexandre Mergnat      - description: mux for i2s2
37*ceb3ca28SAlexandre Mergnat      - description: mux for i2s3
38*ceb3ca28SAlexandre Mergnat
39*ceb3ca28SAlexandre Mergnat  clock-names:
40*ceb3ca28SAlexandre Mergnat    items:
41*ceb3ca28SAlexandre Mergnat      - const: top_clk26m_clk
42*ceb3ca28SAlexandre Mergnat      - const: top_audio_sel
43*ceb3ca28SAlexandre Mergnat      - const: audio_i2s0_m
44*ceb3ca28SAlexandre Mergnat      - const: audio_i2s1_m
45*ceb3ca28SAlexandre Mergnat      - const: audio_i2s2_m
46*ceb3ca28SAlexandre Mergnat      - const: audio_i2s3_m
47*ceb3ca28SAlexandre Mergnat      - const: engen1
48*ceb3ca28SAlexandre Mergnat      - const: engen2
49*ceb3ca28SAlexandre Mergnat      - const: aud1
50*ceb3ca28SAlexandre Mergnat      - const: aud2
51*ceb3ca28SAlexandre Mergnat      - const: i2s0_m_sel
52*ceb3ca28SAlexandre Mergnat      - const: i2s1_m_sel
53*ceb3ca28SAlexandre Mergnat      - const: i2s2_m_sel
54*ceb3ca28SAlexandre Mergnat      - const: i2s3_m_sel
55*ceb3ca28SAlexandre Mergnat
56*ceb3ca28SAlexandre Mergnat  interrupts:
57*ceb3ca28SAlexandre Mergnat    maxItems: 1
58*ceb3ca28SAlexandre Mergnat
59*ceb3ca28SAlexandre Mergnat  power-domains:
60*ceb3ca28SAlexandre Mergnat    maxItems: 1
61*ceb3ca28SAlexandre Mergnat
62*ceb3ca28SAlexandre Mergnat  mediatek,dmic-mode:
63*ceb3ca28SAlexandre Mergnat    $ref: /schemas/types.yaml#/definitions/uint32
64*ceb3ca28SAlexandre Mergnat    description:
65*ceb3ca28SAlexandre Mergnat      Indicates how many data pins are used to transmit two channels of PDM
66*ceb3ca28SAlexandre Mergnat      signal. 1 means two wires, 0 means one wire. Default value is 0.
67*ceb3ca28SAlexandre Mergnat    enum:
68*ceb3ca28SAlexandre Mergnat      - 0 # one wire
69*ceb3ca28SAlexandre Mergnat      - 1 # two wires
70*ceb3ca28SAlexandre Mergnat
71*ceb3ca28SAlexandre Mergnatrequired:
72*ceb3ca28SAlexandre Mergnat  - compatible
73*ceb3ca28SAlexandre Mergnat  - reg
74*ceb3ca28SAlexandre Mergnat  - clocks
75*ceb3ca28SAlexandre Mergnat  - clock-names
76*ceb3ca28SAlexandre Mergnat  - interrupts
77*ceb3ca28SAlexandre Mergnat  - power-domains
78*ceb3ca28SAlexandre Mergnat
79*ceb3ca28SAlexandre MergnatadditionalProperties: false
80*ceb3ca28SAlexandre Mergnat
81*ceb3ca28SAlexandre Mergnatexamples:
82*ceb3ca28SAlexandre Mergnat  - |
83*ceb3ca28SAlexandre Mergnat    #include <dt-bindings/clock/mediatek,mt8365-clk.h>
84*ceb3ca28SAlexandre Mergnat    #include <dt-bindings/interrupt-controller/arm-gic.h>
85*ceb3ca28SAlexandre Mergnat    #include <dt-bindings/interrupt-controller/irq.h>
86*ceb3ca28SAlexandre Mergnat    #include <dt-bindings/power/mediatek,mt8365-power.h>
87*ceb3ca28SAlexandre Mergnat
88*ceb3ca28SAlexandre Mergnat    soc {
89*ceb3ca28SAlexandre Mergnat        #address-cells = <2>;
90*ceb3ca28SAlexandre Mergnat        #size-cells = <2>;
91*ceb3ca28SAlexandre Mergnat
92*ceb3ca28SAlexandre Mergnat        audio-controller@11220000 {
93*ceb3ca28SAlexandre Mergnat            compatible = "mediatek,mt8365-afe-pcm";
94*ceb3ca28SAlexandre Mergnat            reg = <0 0x11220000 0 0x1000>;
95*ceb3ca28SAlexandre Mergnat            #sound-dai-cells = <0>;
96*ceb3ca28SAlexandre Mergnat            clocks = <&clk26m>,
97*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_AUDIO_SEL>,
98*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_AUD_I2S0_M>,
99*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_AUD_I2S1_M>,
100*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_AUD_I2S2_M>,
101*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_AUD_I2S3_M>,
102*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_AUD_ENGEN1_SEL>,
103*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_AUD_ENGEN2_SEL>,
104*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_AUD_1_SEL>,
105*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_AUD_2_SEL>,
106*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_APLL_I2S0_SEL>,
107*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_APLL_I2S1_SEL>,
108*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_APLL_I2S2_SEL>,
109*ceb3ca28SAlexandre Mergnat                     <&topckgen CLK_TOP_APLL_I2S3_SEL>;
110*ceb3ca28SAlexandre Mergnat            clock-names = "top_clk26m_clk",
111*ceb3ca28SAlexandre Mergnat                          "top_audio_sel",
112*ceb3ca28SAlexandre Mergnat                          "audio_i2s0_m",
113*ceb3ca28SAlexandre Mergnat                          "audio_i2s1_m",
114*ceb3ca28SAlexandre Mergnat                          "audio_i2s2_m",
115*ceb3ca28SAlexandre Mergnat                          "audio_i2s3_m",
116*ceb3ca28SAlexandre Mergnat                          "engen1",
117*ceb3ca28SAlexandre Mergnat                          "engen2",
118*ceb3ca28SAlexandre Mergnat                          "aud1",
119*ceb3ca28SAlexandre Mergnat                          "aud2",
120*ceb3ca28SAlexandre Mergnat                          "i2s0_m_sel",
121*ceb3ca28SAlexandre Mergnat                          "i2s1_m_sel",
122*ceb3ca28SAlexandre Mergnat                          "i2s2_m_sel",
123*ceb3ca28SAlexandre Mergnat                          "i2s3_m_sel";
124*ceb3ca28SAlexandre Mergnat            interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>;
125*ceb3ca28SAlexandre Mergnat            power-domains = <&spm MT8365_POWER_DOMAIN_AUDIO>;
126*ceb3ca28SAlexandre Mergnat            mediatek,dmic-mode = <1>;
127*ceb3ca28SAlexandre Mergnat        };
128*ceb3ca28SAlexandre Mergnat    };
129*ceb3ca28SAlexandre Mergnat
130*ceb3ca28SAlexandre Mergnat...
131