前言

新项目对speaker的输出响度和声音质量有一定的要求,所有选择了Nxp smart PA-TFA9897,其实高通平台有WSA系列的smart PA,由于后期tuning的复杂性,选择了Nxp smart PA-9897.

1.连接实现和MI2S的选择

Tfa9897提供了I2S和I2C的接口和高通平台连接实现的,但选择高通平台的MI2S是需要注意,不是任意一组MI2S都可以使用的,通过高通网站上下载你使用对应平台的参考文档。类似这样的:*_external_mi2s_interface.pdf。我们选择的是Quinary MI2S这组MI2S。

2.驱动程序的集成

驱动代码是Nxp提供的,我们只需要把他集成就可以,这个过程中你需要在DTS中的Pin-control配置I2C和MI2S功能。在DTS添加驱动信息,开机时加载驱动程序,这些步骤在这里省略,后需要会单独写关于驱动添加。如果这个过程你都添加正确了,从开机kernel log中你可以看到驱动的加载信息了。

static const struct i2c_device_id tfa98xx_i2c_id[] = {{ "tfa98xx", 0 },{ }
};
MODULE_DEVICE_TABLE(i2c, tfa98xx_i2c_id);#ifdef CONFIG_OF
static struct of_device_id tfa98xx_match_tbl[] = {{ .compatible = "nxp,tfa98xx" },{ },
};
MODULE_DEVICE_TABLE(of, tfa98xx_match_tbl);
#endifstatic struct i2c_driver tfa98xx_i2c_driver = {.driver = {.name = "tfa98xx",.owner = THIS_MODULE,.of_match_table = of_match_ptr(tfa98xx_match_tbl),},.probe =    tfa98xx_i2c_probe,.remove =   tfa98xx_i2c_remove,.id_table = tfa98xx_i2c_id,
};

3.Dailink的添加

我选择的Quinary MI2S,高通平台原生设计是给HDMI使用的。所以我是在这个基础上进行修改的。高通平台会根据声卡的名字来使用不同的Dailink配置,如果Dailink配置不正确,Audio HAL在open声卡时会报错,如果Quinary MI2S对应的Dailink配置没有被添加到声卡,驱动中的Codec注册也不会被触发调用。这些都是我在调试过程中遇到的。
写下面的Dai配置是需要注意,tfa98xx_dai 中的name和msm8952_quin_dai_link中的codec_dai_name要一样,smart PA是作为一个CODEC设备添加到声卡的,所以名字不一样,Codec驱动的probe不会被触发。

static struct snd_soc_dai_driver tfa98xx_dai = {.name = "nxp-tfa9897-codec-rx",.playback = {.stream_name = "Playback",.channels_min = 1,.channels_max = 2,.rates = TFA98XX_RATES,.formats = TFA98XX_FORMATS,},.ops = &tfa98xx_ops,.symmetric_rates = 1,
};
static struct snd_soc_dai_link msm8952_quin_dai_link[] = {{.name = LPASS_BE_QUIN_MI2S_RX,.stream_name = "Quinary MI2S Playback",.cpu_dai_name = "msm-dai-q6-mi2s.5",.platform_name = "msm-pcm-routing",.codec_dai_name = "nxp-tfa9897-codec-rx",.codec_name = "tfa98xx.2-0034",.no_pcm = 1,.dpcm_playback = 1,.be_id = MSM_BACKEND_DAI_QUINARY_MI2S_RX,.be_hw_params_fixup = msm_quin_be_hw_params_fixup,.ops = &msm8952_quin_mi2s_be_ops,.ignore_pmdown_time = 1, /* dai link has playback support */.ignore_suspend = 1,},
};

3.speaker的阻抗校准

在工厂生产时,测试分为两个阶段:1.板级测试 2.整机测试。板级测试一般是通过夹具更换不同的主板来测试的,夹具上的引线不较长,所以阻抗会比整机时要大,所以在组装成整机后,在基本功能测试时要做speaker的阻抗校准。这点是值得注意的。

高通平台调试Nxp Smart PA-TFA9897相关推荐

  1. Android高通平台调试Camera驱动全纪录

    项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...

  2. 请把Camera hold住 - Android高通平台调试Camera驱动全纪录

    项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求. 1日 搭平台,建环境,编译内核,烧写代码. 我是一直在Window下搭个虚拟机登服务器 ...

  3. 手机MODEM 开发(14)----高通平台手机开发之Modem

    高通平台手机开发之Modem 1.检查原理图,把每个频段的发送,接收通道都整理清楚形成表格. a) 一般每个频段有一个发送通路,两个接受通路(4G要求的),主天线通路和分集天线通路.rx0, rx1, ...

  4. 高通平台耳机知识记录

    一. 在高通平台中,默认使用内部codec的时候,耳机的输出及控制都是在内部codec中进行的,所以,可以想象得到,耳机的整个初始化起源过程,是在codec的初始化中.高通平台的machine驱动文件 ...

  5. 高通平台耳机知识记录(转载)

    一. 在高通平台中,默认使用内部codec的时候,耳机的输出及控制都是在内部codec中进行的,所以,可以想象得到,耳机的整个初始化起源过程,是在codec的初始化中.高通平台的machine驱动文件 ...

  6. 高通平台启动log概述(PBL log、sbl1 log、kernel log)

    高通平台启动log概述(PBL log.sbl1 log.kernel log) 在嵌入式linux的调试过程中log有着至关重要的地位,等同于医生的CT报告.能够熟悉启动各个阶段的log,如PBL阶 ...

  7. 高通平台环境搭建,编译,系统引导流程分析 .

    1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通开发板上烧录文件系统 建立高通平台开发环境 高通平台,android和 modem 编译流程分析 高通平台 7620 启动流 ...

  8. 高通平台双卡槽网络模式支持国内所有运营商

    Part1 高通平台双卡网络模式通常是卡槽1支持4.3.2G网络,卡槽2一般会默认写为固定,在之前的android L及L以下,msm8909.msm8916平台上基本设置为GSM only,因为需求 ...

  9. 技术开创、优势沉淀|高通平台解决方案生态系统(PSE)计划,诚邀合作伙伴加入!...

    为致力高质量推动生态系统的持续发展,高通技术公司为原始设备制造商(OEM).当前及潜在生态系统合作伙伴打造高通平台解决方案生态系统(PSE)计划,专注于从技术角度通过运用高通骁龙平台和开发平台本身优势 ...

最新文章

  1. edge chrome 浏览器 底色调黑 反色
  2. 不动产登记证书曝光 一个“改变”必须注意(图)
  3. 算法时间复杂度分析基础
  4. python异常处理_汇总三大python异常处理、自定义异常、断言原理与用法分析
  5. Python 动态载入模块
  6. 苹果Xcode帮助文档阅读指南
  7. 让企业零成本拥有自己独立的企业网站不再是问题...
  8. oid 值 内存使用_[技术干货] zabbix监控项原型组合键值
  9. java 读 jar外文件_读取Jar包外面的配置文件
  10. 【入门5】字符串(今天刷洛谷了嘛)
  11. Unity3D实现按钮切换Panel的功能
  12. 根据指定字段排序编号(SQL Server 2005,Update,Order By)
  13. 关于公众号文章搜索,有两个小技巧
  14. python怎么转换中文_使用Python进行中文繁简转换
  15. 维护两个互斥的定价条件
  16. 去掉百度地图api左下角百度logo标志或文字
  17. php主机卫士,Bypass360主机卫士SQL注入防御八种姿势
  18. CF1556E Equilibrium
  19. 企业微信开发之获取media_id的值
  20. wince槛外人窥探--存储布局

热门文章

  1. 树莓派自启板载蓝牙(ble)
  2. java大学教程习题答案_Java程序设计大学教程:习题解答与课程设计
  3. 文件重命名os.rename()
  4. c#实现将Excel文件导出为csv和UTF8格式的txt文件
  5. Python运维开发工程师养成记(pass语句)
  6. 华为老机型能升级鸿蒙,官方发布鸿蒙2.0可升级的华为机型名单,5年的老机型都可以升级...
  7. K12在线教育小班模式带动行业新动向
  8. 软考证书有效期是多久?
  9. 浏览我的计算机更新驱动程序,主板驱动程序-自己的电脑主板驱动程序怎么查看?如果我想查 – 手机爱问...
  10. 爱快安装或重置后,PC或手机端获取不到ip