添加控制gpio口 根据原理图gpio153 159


/* 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 = <&extamp_pullhigh>;pinctrl-11 = <&extamp_pulllow>;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>;};};extamp_pullhigh: extamp_pullhigh {pins_cmd1_dat {pinmux = <PINMUX_GPIO153__FUNC_GPIO153>;slew-rate = <1>;output-high;};pins_cmd2_dat {pinmux = <PINMUX_GPIO159__FUNC_GPIO159>;slew-rate = <1>;output-high;};};extamp_pulllow: extamp_pulllow {pins_cmd1_dat {pinmux = <PINMUX_GPIO153__FUNC_GPIO153>;slew-rate = <1>;output-low;};pins_cmd2_dat {pinmux = <PINMUX_GPIO159__FUNC_GPIO159>;slew-rate = <1>;output-low;};};
};
/* AUDIO end */

控制方式 通过gpio控制脉冲信号控制音量大小。

static void Ext_Speaker_Amp_Change(bool enable)
{pr_debug("%s(), enable %d\n", __func__, enable);
#define SPK_WARM_UP_TIME        (25)    /* unit is ms */if (enable) {AudDrv_GPIO_EXTAMP_Select(false, 4);/*udelay(1000); */usleep_range(1 * 1000, 2 * 1000);AudDrv_GPIO_EXTAMP_Select(true, 4);usleep_range(5 * 1000, 10 * 1000);} else {AudDrv_GPIO_EXTAMP_Select(false, 4);udelay(500);}
}kernel-4.19/sound/soc/mediatek/codec/mt6357/mtk-soc-codec-6357.cint AudDrv_GPIO_EXTAMP_Select(int bEnable, int mode)
{int retval = 0;#if MT6755_PINint extamp_mode;int i;mutex_lock(&gpio_request_mutex);if (bEnable == 1) {if (mode == 1)extamp_mode = 1;else if (mode == 2)extamp_mode = 2;else if (mode == 3)extamp_mode = 3;elseextamp_mode = 4; /* default mode is 3 */if (aud_gpios[GPIO_EXTAMP_HIGH].gpio_prepare) {for (i = 0; i < extamp_mode; i++) {retval = pinctrl_select_state(pinctrlaud,aud_gpios[GPIO_EXTAMP_LOW].gpioctrl);udelay(2);retval = pinctrl_select_state(pinctrlaud,aud_gpios[GPIO_EXTAMP_HIGH].gpioctrl);udelay(2);}}} else {if (aud_gpios[GPIO_EXTAMP_LOW].gpio_prepare) {retval = pinctrl_select_state(pinctrlaud,aud_gpios[GPIO_EXTAMP_LOW].gpioctrl);}}mutex_unlock(&gpio_request_mutex);
#endifreturn retval;
}
kernel-4.19/sound/soc/mediatek/common_int/mtk-auddrv-gpio.c

MTK外部音频功放gpio控制相关推荐

  1. mtk平台的gpio控制

    https://yq.aliyun.com/ziliao/273436 一.mtk平台的gpio控制  1.1 内核中的gpio配置  //设置gpio18为GPIO模式  mt_set_gpio_m ...

  2. MTK平台 mt6771 GPIO控制

    MTK平台下GPIO控制分为lk和正常模式控制: lk模式控制GPIO(所用调用必须包含在编译lk的宏定义中) 头文件: #include <platform/mt_gpio.h> //使 ...

  3. 实例2:树莓派GPIO控制外部LED灯闪烁

    实例2:树莓派GPIO控制外部LED灯闪烁 实验目的 通过背景知识学习,了解四足机器人mini pupper搭载的微型控制计算机:树莓派. 通过树莓派GPIO操作的学习,熟悉GPIO的读写控制. 通过 ...

  4. 【电路_音频】一些关于音频功放的小秘密,你都知道吗?

    一个手机的音乐效果的好坏,取决于喇叭(包括喇叭单体.音腔结构.出音孔.防尘网等),音频功放,音效算法调试(平台音效或第三方音效等),这三者有效,合理配合,才能实现最终满意的音乐效果.本文主要从一些基础 ...

  5. d类功放芯片_【学术论文】应用于无滤波级D类音频功放的新型死区时间控制系统...

    摘要: 设计实现了一种可集成于无滤波级D类音频功率放大器内部的新型死区时间控制系统,通过全新的死区控制系统以及辅助功率管栅级电压分段式驱动电路的采用,有效改善了功放的总谐波失真.采用0.35 μm C ...

  6. PXA270-基于ARM9内核Processor外部NAND FLASH的控制实现

    于ARM9内核Processor外部NAND FLASH的控制实现 夏 涛 (上海交通大学微电子学院 上海 200030) 1 NAND FLASH NAND写回速度快.芯片面积小,特别是大容量使其优 ...

  7. d类功放芯片_应用于无滤波级D类音频功放的新型死区时间控制系统

    在音频功率放大领域,由于D类音频功率放大器是基于脉冲宽度调制技术的开关放大器[1-4],用作放大的功率管几乎总是处于或者完全导通或者完全截止的状态,因此其功率损耗比传统的线性放大器小得多,这使得其效率 ...

  8. 《安富莱嵌入式周报》第290期:开源静电便携测试仪,开源音频功放,CAN高波特率设计,超级铁电产品,小米Vela系统,65W USB PD充电器参考设计

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  9. 应用于音箱领域中的音频功放IC型号推荐

    音箱音频功放ic俗称"扩音机"又叫音频功率放大器IC:是各类音响器材中不可缺少的部分,其作用主要是将音源器材输入的较微弱信号进行放大后,产生足够大的电流去推动扬声器进行声音的重放. ...

最新文章

  1. 宏基因组合种树第290期—油松
  2. 微软和谷歌的人工智能,在SuperGLUE基准测试中超越了人类
  3. 结合MongoDB开发LBS应用
  4. 半监督训练-思想与代码实践
  5. Halcon学习笔记——机器视觉应用工程开发思路及相机标定
  6. 8K分辨率7680*4320
  7. HAProxy反向代理搭建discuz论坛
  8. Ant 基本语法的使用示列
  9. ipv6 华为交换机 路由配置_华为模拟器ipv6接口配置
  10. Julia:String和ASCIIString
  11. [ACM] hdu 2079 选课时间(普通型母函数)
  12. B站 (哔哩哔哩) 泄露源码中的有趣片段(彩蛋)
  13. JOHNSON算法:流水作业最优调度问题
  14. 计算机更换硬盘键盘鼠标不好使,安装win7时鼠标键盘不能用怎么办?(完美解决方法)...
  15. 关于EPCS系列芯片的说明
  16. 小熊派鸿蒙开发板,小熊派-鸿蒙#183;季开发板入门(一)
  17. git操作后的各种后悔情况解决
  18. 车牌归属地数据信息sql
  19. spm使用之三spm应用实例
  20. 新一代人工智能产业八大主要应用场景研判

热门文章

  1. 适合练习听力的动画排名
  2. OpenJudge Tian Ji -- The Horse Racing
  3. 上海电机学院计算机类分数,2021年上海电机学院投档线及各省最低录取分数线统计表...
  4. 学讲普通话水平测试软件,普通话智能学习软件
  5. 哔哩哔哩视屏下载的几种方法
  6. 阿里和京东,谁在假装体面?
  7. 爱的乐章,Hibernate之三部曲
  8. C++实现麻将基本听牌胡牌的算法
  9. HDLC广域网协议设置
  10. Java 安全编程详解