前言

新项目对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. 解决svn的working copy locked并且cleanup恢复不能的情况
  2. 完整的一次 HTTP 请求响应过程(一)
  3. weblogic9修改线程数设置
  4. javaSE各阶段练习题--流程控制
  5. SAP CRM IBASE保存出错,可能有哪些原因
  6. [vue-element] ElementUI怎么修改组件的默认样式?
  7. 巴克沙里手稿——历史性的突破可能比内容本身更加珍贵
  8. 有没有五金产品展开计算机软件,花样算法猫腻不断 全屋定制这本账真心不好算...
  9. 搭建云计算机win10,win10家庭版连接云主机
  10. 【mobile】安卓图案解锁尝试次数过多导致 要解锁需要GOOGLE账户登录,解决方案...
  11. 菜鸟的Hadoop快速入门
  12. Java使用apache的poi将PPT转PDF文件,支持并兼容PPT和PPTX文件
  13. 第一次结对编程作业——需求分析与原型设计
  14. adb 备份和还原apk应用数据
  15. 安全加密邮箱哪个好?
  16. Go语言开发Windows应用
  17. 有些事情,现在不想就晚了
  18. Redis(测试连接, 五大数据类型,三种特殊数据类型)
  19. Py西游攻关之mysqlsqlalchemy
  20. 秉火OV7725驱动日志 第一天

热门文章

  1. mac上android环境搭建 遇到的问题 Java heap spac
  2. java数组里套数组_用JAVA进行Json数据解析(对象数组的相互嵌套)
  3. 【python】 pypinyin 拼音库
  4. 处理含有特殊字符的 csv
  5. 阿里云ECS服务器部署Node.js项目详细教程及多网站部署
  6. ArcGIS学习06:地理数据库
  7. List集合的五种遍历方式:
  8. linux--perf
  9. Eclipse注册码
  10. RGB-D Salient Object Detection with Cross-Modality Modulation and Selection