Documentation / devicetree / bindings / arm / mediatek / mediatek,audsys.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

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>;
            };
        };
    };