Audio

1:添加耳机插入后,增加音量,会影响听力提示
 +#include <linux/switch.h>
+struct switch_dev ih_headset_switch;
+static ssize_t h2w_print_name(struct switch_dev *sdev, char *buf)
+{
+        return sprintf(buf, "Headset\n");
+}

+       ih_headset_switch.name = "h2w";
+       ih_headset_switch.print_name = h2w_print_name;  //zougui
+       switch_dev_register(&ih_headset_switch);

switch_set_state(&ih_headset_switch,hp_irq_flag);


2: 左右声道录音:

   先是根据codec kernel 配置好通道, 从RLCLK  ADCDATA 确认是否从codec 芯片输出来的是双通道录音.LRCLK的一小半周期为左声道,另一半为右声道.



3:调节音量功率大小

例子ES8316 的驱动, 根据驱动的里面:

/* DAC Digital controls */
SOC_DOUBLE_R_TLV("DAC Playback Volume", ES8316_DAC_VOLL_REG33, ES8316_DAC_VOLR_REG34, 0,0xC0, 1,dac_vol_tlv), 

//DAC 数据转模拟.可以看出是喇叭功率调节, 后面两个左右声道的寄存器,  0xC0便是该寄存器的最大值

static constDECLARE_TLV_DB_SCALE(dac_vol_tlv, -9600, 50, 1); //后面的9600:表示最大的功率,50表示每次增加的值,9600/50=196. 也就是0xC0, 表示对应寄存器的读写.

使用adb :amix

 3 MIXER   0   0   0   2 rw  R     INT32  DAC Playback Volume: 96 96 { 0-96 }

adb 手工调节喇叭输出功率:  amix 0 80

对应驱动程序会调用到codec->write 函数.

所以后面可以直接在系统初始化的时候调用codec->write  给对应寄存器写入合适的值即可

对应ES8316 相对应的寄存器:



添加USB 声卡:

Device Drivers --->
<*> Sound card support --->
          <*> Advanced Linux Sound Architecture --->
[*] USB sound devices ---> 
<*> USB Audio/MIDI driver
主要配置上.


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值