xref: /linux/Documentation/devicetree/bindings/sound/mediatek,mt8196-afe.yaml (revision 9611c0ce215a66770ccbe5c126bf57ba8c31bcad)
1*5cd03440SDarren Ye# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*5cd03440SDarren Ye%YAML 1.2
3*5cd03440SDarren Ye---
4*5cd03440SDarren Ye$id: http://devicetree.org/schemas/sound/mediatek,mt8196-afe.yaml#
5*5cd03440SDarren Ye$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5cd03440SDarren Ye
7*5cd03440SDarren Yetitle: MediaTek Audio Front End PCM controller for MT8196
8*5cd03440SDarren Ye
9*5cd03440SDarren Yemaintainers:
10*5cd03440SDarren Ye  - Darren Ye <darren.ye@mediatek.com>
11*5cd03440SDarren Ye
12*5cd03440SDarren Yeproperties:
13*5cd03440SDarren Ye  compatible:
14*5cd03440SDarren Ye    const: mediatek,mt8196-afe
15*5cd03440SDarren Ye
16*5cd03440SDarren Ye  reg:
17*5cd03440SDarren Ye    maxItems: 1
18*5cd03440SDarren Ye
19*5cd03440SDarren Ye  interrupts:
20*5cd03440SDarren Ye    maxItems: 1
21*5cd03440SDarren Ye
22*5cd03440SDarren Ye  memory-region:
23*5cd03440SDarren Ye    maxItems: 1
24*5cd03440SDarren Ye
25*5cd03440SDarren Ye  power-domains:
26*5cd03440SDarren Ye    maxItems: 1
27*5cd03440SDarren Ye
28*5cd03440SDarren Ye  clocks:
29*5cd03440SDarren Ye    items:
30*5cd03440SDarren Ye      - description: mux for audio intbus
31*5cd03440SDarren Ye      - description: mux for audio engen1
32*5cd03440SDarren Ye      - description: mux for audio engen2
33*5cd03440SDarren Ye      - description: mux for audio h
34*5cd03440SDarren Ye      - description: audio apll1 clock
35*5cd03440SDarren Ye      - description: audio apll2 clock
36*5cd03440SDarren Ye      - description: audio apll12 divide for i2sin0
37*5cd03440SDarren Ye      - description: audio apll12 divide for i2sin1
38*5cd03440SDarren Ye      - description: audio apll12 divide for fmi2s
39*5cd03440SDarren Ye      - description: audio apll12 divide for tdmout mck
40*5cd03440SDarren Ye      - description: audio apll12 divide for tdmout bck
41*5cd03440SDarren Ye      - description: mux for adsp clock
42*5cd03440SDarren Ye
43*5cd03440SDarren Ye  clock-names:
44*5cd03440SDarren Ye    items:
45*5cd03440SDarren Ye      - const: top_aud_intbus
46*5cd03440SDarren Ye      - const: top_aud_eng1
47*5cd03440SDarren Ye      - const: top_aud_eng2
48*5cd03440SDarren Ye      - const: top_aud_h
49*5cd03440SDarren Ye      - const: apll1
50*5cd03440SDarren Ye      - const: apll2
51*5cd03440SDarren Ye      - const: apll12_div_i2sin0
52*5cd03440SDarren Ye      - const: apll12_div_i2sin1
53*5cd03440SDarren Ye      - const: apll12_div_fmi2s
54*5cd03440SDarren Ye      - const: apll12_div_tdmout_m
55*5cd03440SDarren Ye      - const: apll12_div_tdmout_b
56*5cd03440SDarren Ye      - const: top_adsp
57*5cd03440SDarren Ye
58*5cd03440SDarren Yerequired:
59*5cd03440SDarren Ye  - compatible
60*5cd03440SDarren Ye  - reg
61*5cd03440SDarren Ye  - interrupts
62*5cd03440SDarren Ye  - memory-region
63*5cd03440SDarren Ye  - power-domains
64*5cd03440SDarren Ye  - clocks
65*5cd03440SDarren Ye  - clock-names
66*5cd03440SDarren Ye
67*5cd03440SDarren YeadditionalProperties: false
68*5cd03440SDarren Ye
69*5cd03440SDarren Yeexamples:
70*5cd03440SDarren Ye  - |
71*5cd03440SDarren Ye    #include <dt-bindings/interrupt-controller/arm-gic.h>
72*5cd03440SDarren Ye    #include <dt-bindings/interrupt-controller/irq.h>
73*5cd03440SDarren Ye
74*5cd03440SDarren Ye    soc {
75*5cd03440SDarren Ye        #address-cells = <2>;
76*5cd03440SDarren Ye        #size-cells = <2>;
77*5cd03440SDarren Ye
78*5cd03440SDarren Ye        afe@1a110000 {
79*5cd03440SDarren Ye            compatible = "mediatek,mt8196-afe";
80*5cd03440SDarren Ye            reg = <0 0x1a110000 0 0x9000>;
81*5cd03440SDarren Ye            interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH 0>;
82*5cd03440SDarren Ye            memory-region = <&afe_dma_mem_reserved>;
83*5cd03440SDarren Ye            power-domains = <&scpsys 14>; //MT8196_POWER_DOMAIN_AUDIO
84*5cd03440SDarren Ye            pinctrl-names = "default";
85*5cd03440SDarren Ye            pinctrl-0 = <&aud_pins_default>;
86*5cd03440SDarren Ye            clocks = <&vlp_cksys_clk 40>, //CLK_VLP_CK_AUD_INTBUS_SEL
87*5cd03440SDarren Ye                     <&vlp_cksys_clk 38>, //CLK_VLP_CK_AUD_ENGEN1_SEL
88*5cd03440SDarren Ye                     <&vlp_cksys_clk 39>, //CLK_VLP_CK_AUD_ENGEN2_SEL
89*5cd03440SDarren Ye                     <&vlp_cksys_clk 37>, //CLK_VLP_CK_AUDIO_H_SEL
90*5cd03440SDarren Ye                     <&vlp_cksys_clk 0>, //CLK_VLP_CK_VLP_APLL1
91*5cd03440SDarren Ye                     <&vlp_cksys_clk 1>, //CLK_VLP_CK_VLP_APLL2
92*5cd03440SDarren Ye                     <&cksys_clk 80>, //CLK_CK_APLL12_CK_DIV_I2SIN0
93*5cd03440SDarren Ye                     <&cksys_clk 81>, //CLK_CK_APLL12_CK_DIV_I2SIN1
94*5cd03440SDarren Ye                     <&cksys_clk 92>, //CLK_CK_APLL12_CK_DIV_FMI2S
95*5cd03440SDarren Ye                     <&cksys_clk 93>, //CLK_CK_APLL12_CK_DIV_TDMOUT_M
96*5cd03440SDarren Ye                     <&cksys_clk 94>, //CLK_CK_APLL12_CK_DIV_TDMOUT_B
97*5cd03440SDarren Ye                     <&cksys_clk 45>; //CLK_CK_ADSP_SEL
98*5cd03440SDarren Ye            clock-names = "top_aud_intbus",
99*5cd03440SDarren Ye                          "top_aud_eng1",
100*5cd03440SDarren Ye                          "top_aud_eng2",
101*5cd03440SDarren Ye                          "top_aud_h",
102*5cd03440SDarren Ye                          "apll1",
103*5cd03440SDarren Ye                          "apll2",
104*5cd03440SDarren Ye                          "apll12_div_i2sin0",
105*5cd03440SDarren Ye                          "apll12_div_i2sin1",
106*5cd03440SDarren Ye                          "apll12_div_fmi2s",
107*5cd03440SDarren Ye                          "apll12_div_tdmout_m",
108*5cd03440SDarren Ye                          "apll12_div_tdmout_b",
109*5cd03440SDarren Ye                          "top_adsp";
110*5cd03440SDarren Ye        };
111*5cd03440SDarren Ye    };
112*5cd03440SDarren Ye
113*5cd03440SDarren Ye...
114