Genio520 DMIC支援兩線模式配置

關鍵字 :聯發科GenioDMIC

MTK Genio520 DMIC預設使用的是One-wire,但在實際使用中經常會遇到客戶需要支援Two-wire模式。

什麼是One-wire和Two-wire?

One-wire 是指 L 和 R 兩個聲道共用一條數據線,透過時鐘的高低電平來控制傳輸 L 或 R 的數據;Two-wire 則是指 L 和 R 兩個聲道各自使用一條數據線,兩個聲道選擇同一個相位來抓取數據。硬體參考設計如下:

 

如何設定成雙模式呢?

1. 在 DTS 裡增加黃色部分,GPIO 具體請參考硬體設計:

dts中

aud_gpio_ap_dmic_on: aud-gpio-ap-dmic-on {

pins-cmd1-dat {

pinmux = <PINMUX_GPIO111__FUNC_DMIC0_CLK>;

輸入施密特啟用

偏差停用

        };

pins-cmd2-dat {

pinmux = <PINMUX_GPIO112__FUNC_DMIC0_DAT0>;

輸入施密特啟用

偏差停用

        };

pins-cmd3-dat {

pinmux = <PINMUX_GPIOxxx__FUNC_DMIC0_DAT1>;

輸入施密特啟用

偏差停用

        };

    };

 

2.kernel/kernel_device_modules-6.1/sound/soc/mediatek/mt8189/mt8189-dai-adda.c 增加黃色部分

選擇雙線模式

regmap_update_bits(afe->regmap, reg,

UL_DMIC_TWO_WIRE_CTL_MASK_SFT

0x1 << UL_DMIC_TWO_WIRE_CTL_SFT);


 

/* dmic 模式,3.25M */

句子:     /*

regmap_update_bits(afe->regmap, reg,

DIGMIC_3P25M_1P625M_SEL_CTL_MASK_SFT

     *         0x0);


如果是配置One-Wire,就是在上面的修改中把黃色部分去掉即可。

 

以上的實現僅適用於Gen2平台。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能

參考來源

: