MTK配置Audio与Mic

比较简单,没有新增设备驱动,所以两个一起合了

1.主make打开Mic相关的宏

device/mediateksample/$(yourprojectname)/ProjectConfig.mk

MTK_AUDIO_NUMBER_OF_MIC = 1        //mic数量

MTK_DUAL_MIC_SUPPORT = no              //如果是双mic就设为yes

 MTK_AUDIO_SPEAKER_PATH =int_lo_buf           //看你具体是配置驱动还是通过gpio外挂
#smartpa_richtek_rt5509                          //我的项目外挂,所以在对应dts里面会去掉驱动部分

2.配置dst里面节点以及对应的外挂引脚

$(LINUX_KERNEL_VERSION)/arch/arm/boot/dts/$(yourprojectname).dts

mic部分:

&accdet {
    accdet-mic-vol = <6>;
    headset-mode-setting = <0x500 0x500 1 0x1f0 0x800 0x800 0x20 0x44>;
    accdet-plugout-debounce = <1>;
    accdet-mic-mode = <1>;
    headset-eint-level-pol = <8>;
    headset-three-key-threshold = <0 80 220 400>;
    headset-three-key-threshold-CDD = <0 121 192 600>;
    headset-four-key-threshold = <0 58 121 192 400>;
 /*红色为删减部分

-    pinctrl-names = "default", "state_eint_as_int";
-    pinctrl-0 = <&accdet_pins_default>;
-    pinctrl-1 = <&accdet_pins_eint_as_int>;
-    status = "okay";

*/
};
/*
-&pio {
-   accdet_pins_default: accdetdefault {
-    };
-    accdet_pins_eint_as_int: accdeteint@0 {
-        pins_cmd_dat {
-            pinmux = <PINMUX_GPIO160__FUNC_GPIO160>;
-           slew-rate = <0>;
-            bias-disable;
-        };
-    };
-};

*/

audio部分:

/* AUDIO GPIO standardization */   //绿色为新增部分
&audgpio {
    pinctrl-names = "aud_clk_mosi_off",
            "aud_clk_mosi_on",
            "aud_clk_miso_off",
            "aud_clk_miso_on",
            "aud_dat_mosi_off",
            "aud_dat_mosi_on",
            "aud_dat_miso_off",
            "aud_dat_miso_on",
            "aud_smartpa_off",
            "aud_smartpa_on",                    //注意标点,增加了引脚定义,这里原本分号结尾改逗号
            "extamp-pullhigh",
            "extamp-pulllow";

    pinctrl-0 = <&aud_clk_mosi_off>;
    pinctrl-1 = <&aud_clk_mosi_on>;
    pinctrl-2 = <&aud_clk_miso_off>;
    pinctrl-3 = <&aud_clk_miso_on>;
    pinctrl-4 = <&aud_dat_mosi_off>;
    pinctrl-5 = <&aud_dat_mosi_on>;
    pinctrl-6 = <&aud_dat_miso_off>;
    pinctrl-7 = <&aud_dat_miso_on>;
    pinctrl-8 = <&aud_pins_smartpa_off>;
    pinctrl-9 = <&aud_pins_smartpa_on>;
    pinctrl-10 = <&aud_pins_extamp_high>;
    pinctrl-11 = <&aud_pins_extamp_low>;

    status = "okay";
};

&pio {
    aud_clk_mosi_off: aud_clk_mosi_off {
        pins_cmd0_dat {
            pinmux = <PINMUX_GPIO136__FUNC_GPIO136>;
        };
    };

    aud_clk_mosi_on: aud_clk_mosi_on {
        pins_cmd0_dat {
            pinmux = <PINMUX_GPIO136__FUNC_AUD_CLK_MOSI>;
        };
    };

    aud_clk_miso_off: aud_clk_miso_off {
        pins_cmd0_dat {
            pinmux = <PINMUX_GPIO140__FUNC_GPIO140>;
        };
    };

    aud_clk_miso_on: aud_clk_miso_on {
        pins_cmd0_dat {
            pinmux = <PINMUX_GPIO140__FUNC_AUD_CLK_MISO>;
        };
    };

    aud_dat_mosi_off: aud_dat_mosi_off {
        pins_cmd1_dat {
            pinmux = <PINMUX_GPIO138__FUNC_GPIO138>;
            input-enable;
            slew-rate = <0>;
            bias-disable;
        };
        pins_cmd2_dat {
            pinmux = <PINMUX_GPIO139__FUNC_GPIO139>;
            input-enable;
            slew-rate = <0>;
            bias-disable;
        };
    };

    aud_dat_mosi_on: aud_dat_mosi_on {
        pins_cmd1_dat {
            pinmux = <PINMUX_GPIO138__FUNC_AUD_DAT_MOSI0>;
        };
        pins_cmd2_dat {
            pinmux = <PINMUX_GPIO139__FUNC_AUD_DAT_MOSI1>;
        };
    };

    aud_dat_miso_off: aud_dat_miso_off {
        pins_cmd1_dat {
            pinmux = <PINMUX_GPIO142__FUNC_GPIO142>;
            input-enable;
            slew-rate = <0>;
            bias-disable;
        };
        pins_cmd2_dat {
            pinmux = <PINMUX_GPIO143__FUNC_GPIO143>;
            input-enable;
            slew-rate = <0>;
            bias-disable;
        };
    };

    aud_dat_miso_on: aud_dat_miso_on {
        pins_cmd1_dat {
            pinmux = <PINMUX_GPIO142__FUNC_AUD_DAT_MISO0>;
        };
        pins_cmd2_dat {
            pinmux = <PINMUX_GPIO143__FUNC_AUD_DAT_MISO1>;
        };
    };

    aud_pins_smartpa_off: aud_pins_smartpa_off {
        pins_cmd0_dat {
            pinmux = <PINMUX_GPIO17__FUNC_GPIO17>;
        };
        pins_cmd1_dat {
            pinmux = <PINMUX_GPIO18__FUNC_GPIO18>;
        };
        pins_cmd2_dat {
            pinmux = <PINMUX_GPIO19__FUNC_GPIO19>;
        };
        pins_cmd3_dat {
            pinmux = <PINMUX_GPIO20__FUNC_GPIO20>;
        };
    };

    aud_pins_smartpa_on: aud_pins_smartpa_on {
        pins_cmd0_dat {
            pinmux = <PINMUX_GPIO17__FUNC_I2S0_DI>;
        };
        pins_cmd1_dat {
            pinmux = <PINMUX_GPIO18__FUNC_I2S3_BCK>;
        };
        pins_cmd2_dat {
            pinmux = <PINMUX_GPIO19__FUNC_I2S3_LRCK>;
        };
        pins_cmd3_dat {
            pinmux = <PINMUX_GPIO20__FUNC_I2S3_DO>;
        };
    };
    aud_pins_extamp_high: audexamphigh {
        pins_cmd_dat {
            pinmux = <PINMUX_GPIO159__FUNC_GPIO159>;     
//注意gpio159,前面摄像头部分提
            slew-rate = <1>;                                                                          // 过,小心与摄像头定义冲突
            output-high;
        };
    };
    aud_pins_extamp_low: audexamplow {
        pins_cmd_dat {
            pinmux = <PINMUX_GPIO159__FUNC_GPIO159>;
            slew-rate = <1>;
            output-low;
        };
    };
};

/* AUDIO end */

3.dws对应的159引脚使能

$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/dws/$(MTK_PLATFORM)/$(yourprojectname).dws

vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/$(yourprojectname)/dct/dct/codegen.dws

vendor/mediatek/proprietary/custom/$(yourprojectname)/kernel/dct/dct/codegen.dws

<gpio159>
                <eint_mode>false</eint_mode>
                <def_mode>0</def_mode>
                <inpull_en>true</inpull_en>
                <inpull_selhigh>false</inpull_selhigh>
                <def_dir>OUT</def_dir>
                <out_high>false</out_high>
                <varName0>GPIO_SPK_AMP_EN</varName0>
                <smt>false</smt>
                <ies>true</ies>

</gpio159>

4.配置mic的工作模式

vendor/mediatek/proprietary/custom/$(yourprojectname)/hal/audioflinger/audio/audio_custom_exp.h

#define PHONE_MIC_MODE (1)

上面有模式定义,请根据实际选择

typedef enum
{
    AUDIO_MIC_MODE_ACC = 1,
    AUDIO_MIC_MODE_DCC = 2,
    AUDIO_MIC_MODE_DMIC = 3,
    AUDIO_MIC_MODE_DMIC_LP = 4,
    AUDIO_MIC_MODE_DCCECMDIFF = 5,
    AUDIO_MIC_MODE_DCCECMSINGLE = 6,
} AUDIO_MIC_MODE;

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值