1*8d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*8d13bc63SEmmanuel Vadot%YAML 1.2 3*8d13bc63SEmmanuel Vadot--- 4*8d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/arm/mediatek/mediatek,audsys.yaml# 5*8d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8d13bc63SEmmanuel Vadot 7*8d13bc63SEmmanuel Vadottitle: MediaTek AUDSYS controller 8*8d13bc63SEmmanuel Vadot 9*8d13bc63SEmmanuel Vadotmaintainers: 10*8d13bc63SEmmanuel Vadot - Eugen Hristev <eugen.hristev@collabora.com> 11*8d13bc63SEmmanuel Vadot 12*8d13bc63SEmmanuel Vadotdescription: 13*8d13bc63SEmmanuel Vadot The MediaTek AUDSYS controller provides various clocks to the system. 14*8d13bc63SEmmanuel Vadot 15*8d13bc63SEmmanuel Vadotproperties: 16*8d13bc63SEmmanuel Vadot compatible: 17*8d13bc63SEmmanuel Vadot oneOf: 18*8d13bc63SEmmanuel Vadot - items: 19*8d13bc63SEmmanuel Vadot - enum: 20*8d13bc63SEmmanuel Vadot - mediatek,mt2701-audsys 21*8d13bc63SEmmanuel Vadot - mediatek,mt6765-audsys 22*8d13bc63SEmmanuel Vadot - mediatek,mt6779-audsys 23*8d13bc63SEmmanuel Vadot - mediatek,mt7622-audsys 24*8d13bc63SEmmanuel Vadot - mediatek,mt8167-audsys 25*8d13bc63SEmmanuel Vadot - mediatek,mt8173-audsys 26*8d13bc63SEmmanuel Vadot - mediatek,mt8183-audsys 27*8d13bc63SEmmanuel Vadot - mediatek,mt8186-audsys 28*8d13bc63SEmmanuel Vadot - mediatek,mt8192-audsys 29*8d13bc63SEmmanuel Vadot - mediatek,mt8516-audsys 30*8d13bc63SEmmanuel Vadot - const: syscon 31*8d13bc63SEmmanuel Vadot - items: 32*8d13bc63SEmmanuel Vadot # Special case for mt7623 for backward compatibility 33*8d13bc63SEmmanuel Vadot - const: mediatek,mt7623-audsys 34*8d13bc63SEmmanuel Vadot - const: mediatek,mt2701-audsys 35*8d13bc63SEmmanuel Vadot - const: syscon 36*8d13bc63SEmmanuel Vadot 37*8d13bc63SEmmanuel Vadot reg: 38*8d13bc63SEmmanuel Vadot maxItems: 1 39*8d13bc63SEmmanuel Vadot 40*8d13bc63SEmmanuel Vadot '#clock-cells': 41*8d13bc63SEmmanuel Vadot const: 1 42*8d13bc63SEmmanuel Vadot 43*8d13bc63SEmmanuel Vadot audio-controller: 44*8d13bc63SEmmanuel Vadot $ref: /schemas/sound/mediatek,mt2701-audio.yaml# 45*8d13bc63SEmmanuel Vadot type: object 46*8d13bc63SEmmanuel Vadot 47*8d13bc63SEmmanuel Vadotrequired: 48*8d13bc63SEmmanuel Vadot - compatible 49*8d13bc63SEmmanuel Vadot - '#clock-cells' 50*8d13bc63SEmmanuel Vadot 51*8d13bc63SEmmanuel VadotadditionalProperties: false 52*8d13bc63SEmmanuel Vadot 53*8d13bc63SEmmanuel Vadotexamples: 54*8d13bc63SEmmanuel Vadot - | 55*8d13bc63SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 56*8d13bc63SEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 57*8d13bc63SEmmanuel Vadot #include <dt-bindings/power/mt2701-power.h> 58*8d13bc63SEmmanuel Vadot #include <dt-bindings/clock/mt2701-clk.h> 59*8d13bc63SEmmanuel Vadot soc { 60*8d13bc63SEmmanuel Vadot #address-cells = <2>; 61*8d13bc63SEmmanuel Vadot #size-cells = <2>; 62*8d13bc63SEmmanuel Vadot audsys: clock-controller@11220000 { 63*8d13bc63SEmmanuel Vadot compatible = "mediatek,mt7622-audsys", "syscon"; 64*8d13bc63SEmmanuel Vadot reg = <0 0x11220000 0 0x2000>; 65*8d13bc63SEmmanuel Vadot #clock-cells = <1>; 66*8d13bc63SEmmanuel Vadot 67*8d13bc63SEmmanuel Vadot afe: audio-controller { 68*8d13bc63SEmmanuel Vadot compatible = "mediatek,mt2701-audio"; 69*8d13bc63SEmmanuel Vadot interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_LOW>, 70*8d13bc63SEmmanuel Vadot <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>; 71*8d13bc63SEmmanuel Vadot interrupt-names = "afe", "asys"; 72*8d13bc63SEmmanuel Vadot power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>; 73*8d13bc63SEmmanuel Vadot 74*8d13bc63SEmmanuel Vadot clocks = <&infracfg CLK_INFRA_AUDIO>, 75*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_MUX1_SEL>, 76*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_MUX2_SEL>, 77*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_48K_TIMING>, 78*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_44K_TIMING>, 79*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_K1_SRC_SEL>, 80*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_K2_SRC_SEL>, 81*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_K3_SRC_SEL>, 82*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_K4_SRC_SEL>, 83*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_K1_SRC_DIV>, 84*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_K2_SRC_DIV>, 85*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_K3_SRC_DIV>, 86*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_K4_SRC_DIV>, 87*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_I2S1_MCLK>, 88*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_I2S2_MCLK>, 89*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_I2S3_MCLK>, 90*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_I2S4_MCLK>, 91*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_I2SO1>, 92*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_I2SO2>, 93*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_I2SO3>, 94*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_I2SO4>, 95*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_I2SIN1>, 96*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_I2SIN2>, 97*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_I2SIN3>, 98*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_I2SIN4>, 99*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_ASRCO1>, 100*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_ASRCO2>, 101*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_ASRCO3>, 102*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_ASRCO4>, 103*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_AFE>, 104*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_AFE_CONN>, 105*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_A1SYS>, 106*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_A2SYS>, 107*8d13bc63SEmmanuel Vadot <&audsys CLK_AUD_AFE_MRGIF>; 108*8d13bc63SEmmanuel Vadot 109*8d13bc63SEmmanuel Vadot clock-names = "infra_sys_audio_clk", 110*8d13bc63SEmmanuel Vadot "top_audio_mux1_sel", 111*8d13bc63SEmmanuel Vadot "top_audio_mux2_sel", 112*8d13bc63SEmmanuel Vadot "top_audio_a1sys_hp", 113*8d13bc63SEmmanuel Vadot "top_audio_a2sys_hp", 114*8d13bc63SEmmanuel Vadot "i2s0_src_sel", 115*8d13bc63SEmmanuel Vadot "i2s1_src_sel", 116*8d13bc63SEmmanuel Vadot "i2s2_src_sel", 117*8d13bc63SEmmanuel Vadot "i2s3_src_sel", 118*8d13bc63SEmmanuel Vadot "i2s0_src_div", 119*8d13bc63SEmmanuel Vadot "i2s1_src_div", 120*8d13bc63SEmmanuel Vadot "i2s2_src_div", 121*8d13bc63SEmmanuel Vadot "i2s3_src_div", 122*8d13bc63SEmmanuel Vadot "i2s0_mclk_en", 123*8d13bc63SEmmanuel Vadot "i2s1_mclk_en", 124*8d13bc63SEmmanuel Vadot "i2s2_mclk_en", 125*8d13bc63SEmmanuel Vadot "i2s3_mclk_en", 126*8d13bc63SEmmanuel Vadot "i2so0_hop_ck", 127*8d13bc63SEmmanuel Vadot "i2so1_hop_ck", 128*8d13bc63SEmmanuel Vadot "i2so2_hop_ck", 129*8d13bc63SEmmanuel Vadot "i2so3_hop_ck", 130*8d13bc63SEmmanuel Vadot "i2si0_hop_ck", 131*8d13bc63SEmmanuel Vadot "i2si1_hop_ck", 132*8d13bc63SEmmanuel Vadot "i2si2_hop_ck", 133*8d13bc63SEmmanuel Vadot "i2si3_hop_ck", 134*8d13bc63SEmmanuel Vadot "asrc0_out_ck", 135*8d13bc63SEmmanuel Vadot "asrc1_out_ck", 136*8d13bc63SEmmanuel Vadot "asrc2_out_ck", 137*8d13bc63SEmmanuel Vadot "asrc3_out_ck", 138*8d13bc63SEmmanuel Vadot "audio_afe_pd", 139*8d13bc63SEmmanuel Vadot "audio_afe_conn_pd", 140*8d13bc63SEmmanuel Vadot "audio_a1sys_pd", 141*8d13bc63SEmmanuel Vadot "audio_a2sys_pd", 142*8d13bc63SEmmanuel Vadot "audio_mrgif_pd"; 143*8d13bc63SEmmanuel Vadot 144*8d13bc63SEmmanuel Vadot assigned-clocks = <&topckgen CLK_TOP_AUD_MUX1_SEL>, 145*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_MUX2_SEL>, 146*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_MUX1_DIV>, 147*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD_MUX2_DIV>; 148*8d13bc63SEmmanuel Vadot assigned-clock-parents = <&topckgen CLK_TOP_AUD1PLL_98M>, 149*8d13bc63SEmmanuel Vadot <&topckgen CLK_TOP_AUD2PLL_90M>; 150*8d13bc63SEmmanuel Vadot assigned-clock-rates = <0>, <0>, <49152000>, <45158400>; 151*8d13bc63SEmmanuel Vadot }; 152*8d13bc63SEmmanuel Vadot }; 153*8d13bc63SEmmanuel Vadot }; 154