音频驱动—7-11

  1. dts的解释
  2. 通路的调试
  3. 参考高通的bring up的方法

MIC_IN1_M
MIC_IN1_P
MIC_IN2_M 耳机的GND
MIC_IN2_P 耳机的MIC
mic分为硅MIC和柱体MIC
MIC_BIAS1 主mic
MIC_BIAS2 耳机MIC
偏置就是为放大电路提供适合的静态工作点。
由于mic产生的模拟电压是很小的,所以codec需要将信号放大,
由三极管组成的放大电路能够放大一定范围的交流信号,但前提是需要设置放大电路的静态工作点,即为保证放大电路正常工作而为放大电路提供偏置电压。这样,才能保证放大电路的正常工作。
CDC_HPH_L
CDC_HPH_R 左右声音信号输出

msm-audio.dtsi
soc 是8952平台 也就是machine
msm8952-audio-codec

codec驱动:负责音频解码。这部分代码完全无平台无关,设备原厂提供,我们只需要把它加进内核编译就好了。

platform驱动:与处理器芯片相关,这部分代码在该芯片商用之前方案产商提供的demo板已完全确定了,也就是说我们只需要使用就可以了。

machine驱动:好了,到了最关键的地方了,machine驱动是耦合platform和codec驱动,同时与上层交互的代码。由于上层是标准的alsa架构,所以下层接口肯定要做了统一,所以我很负责的告诉你,这部分由machine本身的platform驱动和platform设备组成(请跟asoc的platform驱动区别),platform驱动内核帮我们完成了,所以你无须过多的关心你的驱动怎么跟上层alsa怎么衍接的问题,我们只需要注册一个machine的platform设备以及完成platform和codec耦合就ok

static const struct of_device_id msm8952_asoc_machine_of_match[]  = {
    { .compatible = "qcom,msm8952-audio-codec", },
    {},
};

static struct platform_driver msm8952_asoc_machine_driver = {
    .driver = {
        .name = DRV_NAME,
        .owner = THIS_MODULE,
        .pm = &snd_soc_pm_ops,
        .of_match_table = msm8952_asoc_machine_of_match,
    },
    .probe = msm8952_asoc_machine_probe,
    .remove = msm8952_asoc_machine_remove,
};

static int __init msm8952_machine_init(void)
{
    return platform_driver_register(&msm8952_asoc_machine_driver);
}
late_initcall(msm8952_machine_init);

static void __exit msm8952_machine_exit(void)
{
    return platform_driver_unregister(&msm8952_asoc_machine_driver);
}
module_exit(msm8952_machine_exit);

MODULE_DESCRIPTION("ALSA SoC msm");
MODULE_LICENSE("GPL v2");
MODULE_ALIAS("platform:" DRV_NAME);
MODULE_DEVICE_TABLE(of, msm8952_asoc_machine_of_match);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值