# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/sound/mt8195-afe-pcm.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Mediatek AFE PCM controller for mt8195 maintainers: - Trevor Wu <trevor.wu@mediatek.com> properties: compatible: const: mediatek,mt8195-audio reg: maxItems: 1 interrupts: maxItems: 1 resets: maxItems: 1 reset-names: const: audiosys memory-region: maxItems: 1 description: | Shared memory region for AFE memif. A "shared-dma-pool". See ../reserved-memory/reserved-memory.txt for details. mediatek,topckgen: $ref: /schemas/types.yaml#/definitions/phandle description: The phandle of the mediatek topckgen controller power-domains: maxItems: 1 clocks: items: - description: 26M clock - description: audio pll1 clock - description: audio pll2 clock - description: clock divider for i2si1_mck - description: clock divider for i2si2_mck - description: clock divider for i2so1_mck - description: clock divider for i2so2_mck - description: clock divider for dptx_mck - description: a1sys hoping clock - description: audio intbus clock - description: audio hires clock - description: audio local bus clock - description: mux for dptx_mck - description: mux for i2so1_mck - description: mux for i2so2_mck - description: mux for i2si1_mck - description: mux for i2si2_mck - description: audio infra 26M clock - description: infra bus clock clock-names: items: - const: clk26m - const: apll1_ck - const: apll2_ck - const: apll12_div0 - const: apll12_div1 - const: apll12_div2 - const: apll12_div3 - const: apll12_div9 - const: a1sys_hp_sel - const: aud_intbus_sel - const: audio_h_sel - const: audio_local_bus_sel - const: dptx_m_sel - const: i2so1_m_sel - const: i2so2_m_sel - const: i2si1_m_sel - const: i2si2_m_sel - const: infra_ao_audio_26m_b - const: scp_adsp_audiodsp mediatek,etdm-in1-chn-disabled: $ref: /schemas/types.yaml#/definitions/uint8-array maxItems: 24 description: Specify which input channel should be disabled. mediatek,etdm-in2-chn-disabled: $ref: /schemas/types.yaml#/definitions/uint8-array maxItems: 16 description: Specify which input channel should be disabled. patternProperties: "^mediatek,etdm-in[1-2]-mclk-always-on-rate-hz$": description: Specify etdm in mclk output rate for always on case. "^mediatek,etdm-out[1-3]-mclk-always-on-rate-hz$": description: Specify etdm out mclk output rate for always on case. "^mediatek,etdm-in[1-2]-multi-pin-mode$": type: boolean description: if present, the etdm data mode is I2S. "^mediatek,etdm-out[1-3]-multi-pin-mode$": type: boolean description: if present, the etdm data mode is I2S. "^mediatek,etdm-in[1-2]-cowork-source$": $ref: /schemas/types.yaml#/definitions/uint32 description: | etdm modules can share the same external clock pin. Specify which etdm clock source is required by this etdm in module. enum: - 0 # etdm1_in - 1 # etdm2_in - 2 # etdm1_out - 3 # etdm2_out "^mediatek,etdm-out[1-2]-cowork-source$": $ref: /schemas/types.yaml#/definitions/uint32 description: | etdm modules can share the same external clock pin. Specify which etdm clock source is required by this etdm out module. enum: - 0 # etdm1_in - 1 # etdm2_in - 2 # etdm1_out - 3 # etdm2_out required: - compatible - reg - interrupts - resets - reset-names - mediatek,topckgen - power-domains - clocks - clock-names - memory-region additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/irq.h> afe: mt8195-afe-pcm@10890000 { compatible = "mediatek,mt8195-audio"; reg = <0x10890000 0x10000>; interrupts = <GIC_SPI 822 IRQ_TYPE_LEVEL_HIGH 0>; resets = <&watchdog 14>; reset-names = "audiosys"; mediatek,topckgen = <&topckgen>; power-domains = <&spm 7>; //MT8195_POWER_DOMAIN_AUDIO memory-region = <&snd_dma_mem_reserved>; clocks = <&clk26m>, <&topckgen 163>, //CLK_TOP_APLL1 <&topckgen 166>, //CLK_TOP_APLL2 <&topckgen 233>, //CLK_TOP_APLL12_DIV0 <&topckgen 234>, //CLK_TOP_APLL12_DIV1 <&topckgen 235>, //CLK_TOP_APLL12_DIV2 <&topckgen 236>, //CLK_TOP_APLL12_DIV3 <&topckgen 238>, //CLK_TOP_APLL12_DIV9 <&topckgen 100>, //CLK_TOP_A1SYS_HP_SEL <&topckgen 33>, //CLK_TOP_AUD_INTBUS_SEL <&topckgen 34>, //CLK_TOP_AUDIO_H_SEL <&topckgen 107>, //CLK_TOP_AUDIO_LOCAL_BUS_SEL <&topckgen 98>, //CLK_TOP_DPTX_M_SEL <&topckgen 94>, //CLK_TOP_I2SO1_M_SEL <&topckgen 95>, //CLK_TOP_I2SO2_M_SEL <&topckgen 96>, //CLK_TOP_I2SI1_M_SEL <&topckgen 97>, //CLK_TOP_I2SI2_M_SEL <&infracfg_ao 50>, //CLK_INFRA_AO_AUDIO_26M_B <&scp_adsp 0>; //CLK_SCP_ADSP_AUDIODSP clock-names = "clk26m", "apll1_ck", "apll2_ck", "apll12_div0", "apll12_div1", "apll12_div2", "apll12_div3", "apll12_div9", "a1sys_hp_sel", "aud_intbus_sel", "audio_h_sel", "audio_local_bus_sel", "dptx_m_sel", "i2so1_m_sel", "i2so2_m_sel", "i2si1_m_sel", "i2si2_m_sel", "infra_ao_audio_26m_b", "scp_adsp_audiodsp"; }; ...