1*ceb3ca28SAlexandre Mergnat# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*ceb3ca28SAlexandre Mergnat%YAML 1.2 3*ceb3ca28SAlexandre Mergnat--- 4*ceb3ca28SAlexandre Mergnat$id: http://devicetree.org/schemas/sound/mediatek,mt8365-afe.yaml# 5*ceb3ca28SAlexandre Mergnat$schema: http://devicetree.org/meta-schemas/core.yaml# 6*ceb3ca28SAlexandre Mergnat 7*ceb3ca28SAlexandre Mergnattitle: MediaTek Audio Front End PCM controller for MT8365 8*ceb3ca28SAlexandre Mergnat 9*ceb3ca28SAlexandre Mergnatmaintainers: 10*ceb3ca28SAlexandre Mergnat - Alexandre Mergnat <amergnat@baylibre.com> 11*ceb3ca28SAlexandre Mergnat 12*ceb3ca28SAlexandre Mergnatproperties: 13*ceb3ca28SAlexandre Mergnat compatible: 14*ceb3ca28SAlexandre Mergnat const: mediatek,mt8365-afe-pcm 15*ceb3ca28SAlexandre Mergnat 16*ceb3ca28SAlexandre Mergnat reg: 17*ceb3ca28SAlexandre Mergnat maxItems: 1 18*ceb3ca28SAlexandre Mergnat 19*ceb3ca28SAlexandre Mergnat "#sound-dai-cells": 20*ceb3ca28SAlexandre Mergnat const: 0 21*ceb3ca28SAlexandre Mergnat 22*ceb3ca28SAlexandre Mergnat clocks: 23*ceb3ca28SAlexandre Mergnat items: 24*ceb3ca28SAlexandre Mergnat - description: 26M clock 25*ceb3ca28SAlexandre Mergnat - description: mux for audio clock 26*ceb3ca28SAlexandre Mergnat - description: audio i2s0 mck 27*ceb3ca28SAlexandre Mergnat - description: audio i2s1 mck 28*ceb3ca28SAlexandre Mergnat - description: audio i2s2 mck 29*ceb3ca28SAlexandre Mergnat - description: audio i2s3 mck 30*ceb3ca28SAlexandre Mergnat - description: engen 1 clock 31*ceb3ca28SAlexandre Mergnat - description: engen 2 clock 32*ceb3ca28SAlexandre Mergnat - description: audio 1 clock 33*ceb3ca28SAlexandre Mergnat - description: audio 2 clock 34*ceb3ca28SAlexandre Mergnat - description: mux for i2s0 35*ceb3ca28SAlexandre Mergnat - description: mux for i2s1 36*ceb3ca28SAlexandre Mergnat - description: mux for i2s2 37*ceb3ca28SAlexandre Mergnat - description: mux for i2s3 38*ceb3ca28SAlexandre Mergnat 39*ceb3ca28SAlexandre Mergnat clock-names: 40*ceb3ca28SAlexandre Mergnat items: 41*ceb3ca28SAlexandre Mergnat - const: top_clk26m_clk 42*ceb3ca28SAlexandre Mergnat - const: top_audio_sel 43*ceb3ca28SAlexandre Mergnat - const: audio_i2s0_m 44*ceb3ca28SAlexandre Mergnat - const: audio_i2s1_m 45*ceb3ca28SAlexandre Mergnat - const: audio_i2s2_m 46*ceb3ca28SAlexandre Mergnat - const: audio_i2s3_m 47*ceb3ca28SAlexandre Mergnat - const: engen1 48*ceb3ca28SAlexandre Mergnat - const: engen2 49*ceb3ca28SAlexandre Mergnat - const: aud1 50*ceb3ca28SAlexandre Mergnat - const: aud2 51*ceb3ca28SAlexandre Mergnat - const: i2s0_m_sel 52*ceb3ca28SAlexandre Mergnat - const: i2s1_m_sel 53*ceb3ca28SAlexandre Mergnat - const: i2s2_m_sel 54*ceb3ca28SAlexandre Mergnat - const: i2s3_m_sel 55*ceb3ca28SAlexandre Mergnat 56*ceb3ca28SAlexandre Mergnat interrupts: 57*ceb3ca28SAlexandre Mergnat maxItems: 1 58*ceb3ca28SAlexandre Mergnat 59*ceb3ca28SAlexandre Mergnat power-domains: 60*ceb3ca28SAlexandre Mergnat maxItems: 1 61*ceb3ca28SAlexandre Mergnat 62*ceb3ca28SAlexandre Mergnat mediatek,dmic-mode: 63*ceb3ca28SAlexandre Mergnat $ref: /schemas/types.yaml#/definitions/uint32 64*ceb3ca28SAlexandre Mergnat description: 65*ceb3ca28SAlexandre Mergnat Indicates how many data pins are used to transmit two channels of PDM 66*ceb3ca28SAlexandre Mergnat signal. 1 means two wires, 0 means one wire. Default value is 0. 67*ceb3ca28SAlexandre Mergnat enum: 68*ceb3ca28SAlexandre Mergnat - 0 # one wire 69*ceb3ca28SAlexandre Mergnat - 1 # two wires 70*ceb3ca28SAlexandre Mergnat 71*ceb3ca28SAlexandre Mergnatrequired: 72*ceb3ca28SAlexandre Mergnat - compatible 73*ceb3ca28SAlexandre Mergnat - reg 74*ceb3ca28SAlexandre Mergnat - clocks 75*ceb3ca28SAlexandre Mergnat - clock-names 76*ceb3ca28SAlexandre Mergnat - interrupts 77*ceb3ca28SAlexandre Mergnat - power-domains 78*ceb3ca28SAlexandre Mergnat 79*ceb3ca28SAlexandre MergnatadditionalProperties: false 80*ceb3ca28SAlexandre Mergnat 81*ceb3ca28SAlexandre Mergnatexamples: 82*ceb3ca28SAlexandre Mergnat - | 83*ceb3ca28SAlexandre Mergnat #include <dt-bindings/clock/mediatek,mt8365-clk.h> 84*ceb3ca28SAlexandre Mergnat #include <dt-bindings/interrupt-controller/arm-gic.h> 85*ceb3ca28SAlexandre Mergnat #include <dt-bindings/interrupt-controller/irq.h> 86*ceb3ca28SAlexandre Mergnat #include <dt-bindings/power/mediatek,mt8365-power.h> 87*ceb3ca28SAlexandre Mergnat 88*ceb3ca28SAlexandre Mergnat soc { 89*ceb3ca28SAlexandre Mergnat #address-cells = <2>; 90*ceb3ca28SAlexandre Mergnat #size-cells = <2>; 91*ceb3ca28SAlexandre Mergnat 92*ceb3ca28SAlexandre Mergnat audio-controller@11220000 { 93*ceb3ca28SAlexandre Mergnat compatible = "mediatek,mt8365-afe-pcm"; 94*ceb3ca28SAlexandre Mergnat reg = <0 0x11220000 0 0x1000>; 95*ceb3ca28SAlexandre Mergnat #sound-dai-cells = <0>; 96*ceb3ca28SAlexandre Mergnat clocks = <&clk26m>, 97*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_AUDIO_SEL>, 98*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_AUD_I2S0_M>, 99*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_AUD_I2S1_M>, 100*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_AUD_I2S2_M>, 101*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_AUD_I2S3_M>, 102*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_AUD_ENGEN1_SEL>, 103*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_AUD_ENGEN2_SEL>, 104*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_AUD_1_SEL>, 105*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_AUD_2_SEL>, 106*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_APLL_I2S0_SEL>, 107*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_APLL_I2S1_SEL>, 108*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_APLL_I2S2_SEL>, 109*ceb3ca28SAlexandre Mergnat <&topckgen CLK_TOP_APLL_I2S3_SEL>; 110*ceb3ca28SAlexandre Mergnat clock-names = "top_clk26m_clk", 111*ceb3ca28SAlexandre Mergnat "top_audio_sel", 112*ceb3ca28SAlexandre Mergnat "audio_i2s0_m", 113*ceb3ca28SAlexandre Mergnat "audio_i2s1_m", 114*ceb3ca28SAlexandre Mergnat "audio_i2s2_m", 115*ceb3ca28SAlexandre Mergnat "audio_i2s3_m", 116*ceb3ca28SAlexandre Mergnat "engen1", 117*ceb3ca28SAlexandre Mergnat "engen2", 118*ceb3ca28SAlexandre Mergnat "aud1", 119*ceb3ca28SAlexandre Mergnat "aud2", 120*ceb3ca28SAlexandre Mergnat "i2s0_m_sel", 121*ceb3ca28SAlexandre Mergnat "i2s1_m_sel", 122*ceb3ca28SAlexandre Mergnat "i2s2_m_sel", 123*ceb3ca28SAlexandre Mergnat "i2s3_m_sel"; 124*ceb3ca28SAlexandre Mergnat interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_LOW>; 125*ceb3ca28SAlexandre Mergnat power-domains = <&spm MT8365_POWER_DOMAIN_AUDIO>; 126*ceb3ca28SAlexandre Mergnat mediatek,dmic-mode = <1>; 127*ceb3ca28SAlexandre Mergnat }; 128*ceb3ca28SAlexandre Mergnat }; 129*ceb3ca28SAlexandre Mergnat 130*ceb3ca28SAlexandre Mergnat... 131