| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/sound/mediatek,mt8188-afe.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: MediaTek AFE PCM controller for mt8188 |
| |
| maintainers: |
| - Trevor Wu <trevor.wu@mediatek.com> |
| |
| properties: |
| compatible: |
| const: mediatek,mt8188-afe |
| |
| reg: |
| maxItems: 1 |
| |
| interrupts: |
| maxItems: 1 |
| |
| resets: |
| maxItems: 1 |
| |
| reset-names: |
| const: audiosys |
| |
| 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 26m clock |
| |
| clock-names: |
| items: |
| - const: clk26m |
| - const: apll1 |
| - const: apll2 |
| - 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: adsp_audio_26m |
| |
| mediatek,etdm-in1-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: |
| - 1 # etdm2_in |
| - 2 # etdm1_out |
| - 3 # etdm2_out |
| |
| mediatek,etdm-in2-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 |
| - 2 # etdm1_out |
| - 3 # etdm2_out |
| |
| mediatek,etdm-out1-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 |
| - 3 # etdm2_out |
| |
| mediatek,etdm-out2-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 |
| |
| patternProperties: |
| "^mediatek,etdm-in[1-2]-chn-disabled$": |
| $ref: /schemas/types.yaml#/definitions/uint8-array |
| minItems: 1 |
| maxItems: 16 |
| description: |
| This is a list of channel IDs which should be disabled. |
| By default, all data received from ETDM pins will be outputed to |
| memory. etdm in supports disable_out in direct mode(w/o interconn), |
| so user can disable the specified channels by the property. |
| uniqueItems: true |
| items: |
| minimum: 0 |
| maximum: 15 |
| |
| "^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. |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| - resets |
| - reset-names |
| - mediatek,topckgen |
| - power-domains |
| - clocks |
| - clock-names |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| |
| afe@10b10000 { |
| compatible = "mediatek,mt8188-afe"; |
| reg = <0x10b10000 0x10000>; |
| interrupts = <GIC_SPI 822 IRQ_TYPE_LEVEL_HIGH 0>; |
| resets = <&watchdog 14>; |
| reset-names = "audiosys"; |
| mediatek,topckgen = <&topckgen>; |
| power-domains = <&spm 13>; //MT8188_POWER_DOMAIN_AUDIO |
| mediatek,etdm-in2-cowork-source = <2>; |
| mediatek,etdm-out2-cowork-source = <0>; |
| mediatek,etdm-in1-multi-pin-mode; |
| mediatek,etdm-in1-chn-disabled = /bits/ 8 <0x0 0x2>; |
| clocks = <&clk26m>, |
| <&apmixedsys 9>, //CLK_APMIXED_APLL1 |
| <&apmixedsys 10>, //CLK_APMIXED_APLL2 |
| <&topckgen 186>, //CLK_TOP_APLL12_CK_DIV0 |
| <&topckgen 187>, //CLK_TOP_APLL12_CK_DIV1 |
| <&topckgen 188>, //CLK_TOP_APLL12_CK_DIV2 |
| <&topckgen 189>, //CLK_TOP_APLL12_CK_DIV3 |
| <&topckgen 191>, //CLK_TOP_APLL12_CK_DIV9 |
| <&topckgen 83>, //CLK_TOP_A1SYS_HP |
| <&topckgen 31>, //CLK_TOP_AUD_INTBUS |
| <&topckgen 32>, //CLK_TOP_AUDIO_H |
| <&topckgen 69>, //CLK_TOP_AUDIO_LOCAL_BUS |
| <&topckgen 81>, //CLK_TOP_DPTX |
| <&topckgen 77>, //CLK_TOP_I2SO1 |
| <&topckgen 78>, //CLK_TOP_I2SO2 |
| <&topckgen 79>, //CLK_TOP_I2SI1 |
| <&topckgen 80>, //CLK_TOP_I2SI2 |
| <&adsp_audio26m 0>; //CLK_AUDIODSP_AUDIO26M |
| clock-names = "clk26m", |
| "apll1", |
| "apll2", |
| "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", |
| "adsp_audio_26m"; |
| }; |
| |
| ... |