| # 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-audiosys | |
| - 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: | |
| type: object | |
| required: | |
| - compatible | |
| - '#clock-cells' | |
| allOf: | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - mediatek,mt2701-audsys | |
| - mediatek,mt7622-audsys | |
| then: | |
| properties: | |
| audio-controller: | |
| $ref: /schemas/sound/mediatek,mt2701-audio.yaml# | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| const: mediatek,mt8183-audiosys | |
| then: | |
| properties: | |
| audio-controller: | |
| $ref: /schemas/sound/mediatek,mt8183-audio.yaml# | |
| - if: | |
| properties: | |
| compatible: | |
| contains: | |
| const: mediatek,mt8192-audsys | |
| then: | |
| properties: | |
| audio-controller: | |
| $ref: /schemas/sound/mt8192-afe-pcm.yaml# | |
| 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>; | |
| }; | |
| }; | |
| }; |