添加控制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. maven setting 配置详解
  2. IOS 中的MVC设计模式
  3. [caffe]深度学习之图像分类模型VGG解读
  4. dueros模拟测试没有请求后台_实战 | 用手写一个骚气的请求合并,演绎底层的真实...
  5. vue3.0js 非prop属性的值和setup函数的使用
  6. maven项目添加jar包
  7. socket结构和几个IP地址转换函数
  8. java getidentifier_android – 如何使用getResource.getIdentifier()获取布局?
  9. python画互动图_利用Python画出运动图像
  10. 行间事件传this的问题:
  11. 将element-china-area-data获取的地区编码转为文字存储
  12. c语言双字节异或,C语言 按位异或实现加法
  13. 移动端使用PhotoSwipe 图片放大浏览
  14. JavaScript实现异步请求并发数限制
  15. java古诗_java抓取古诗文的单线程爬虫
  16. 当steam教育加入教学大纲之时
  17. 概率编程——未来也可以这样预测
  18. 如何借势世界杯?看这10个运营活动就够了
  19. frp实现内网穿透(linux穿透至windows)
  20. 韩星张东健接3岁半儿子放学 父子首张合影曝光

热门文章

  1. LTE FDD PSS/SSS/MIB时频资源位置
  2. RK3228H开发之Android开发
  3. Keras神经网络实现泰坦尼克号旅客生存预测
  4. springboot+乡村图书管理系统 毕业设计-附源码191505
  5. 电子硬件工程师要求?
  6. 论文笔记【A Comprehensive Study of Deep Video Action Recognition】
  7. Luogu P4168 [Violet]蒲公英(分块)
  8. 云原生开发者训练营启动!3天教会你玩转Serverless
  9. 机器学习:KNN完成英文手语分类
  10. SELINUX+PASSWD实战