[RK3288 Android7.1.2 ]音频芯片es8396与rt5640的兼容

Platform: ROCKCHIP
Chip: RK3288
OS: Android7.1.2
Kernel: 4.4.143

背景:

之前平台用的RT5640, 由于此IC将要停产,所以需要替换为ES8396,RT5640和ES8396在硬件上兼容,只是芯片换了;但是目前芯片有rt5640和es8396,如果每款芯片要去找对应的代码就会给工厂那边增加工作量,所以在代码处做处理

思路

1.dts里将两款芯片均使能,到对应的驱动的时候,检测设备是否在线(I2C),如果不在线则退出并将dts对应的节点设为"disabled"
2.soc-core对应的名字要匹配上

dts修改

1./kernel/arch/arm/boot/dts/rk3288-android.dtsi

    hdmi_analog_sound: hdmi-analog-sound {
   
         status = "disabled";
         compatible = "rockchip,rk3288-hdmi-analog",
                 "rockchip,rk3368-hdmi-analog";
-        rockchip,model = "rockchip,rt5640-codec";
+        rockchip,model ="rockchip,rt5640-codec", "rockchip,es8396-codec";
         rockchip,cpu = <&i2s>;
-        rockchip,codec = <&rt5640>, <&hdmi>;
+        rockchip,codec = <&rt5640>,<&es8396>, <&hdmi>;
         rockchip,widgets =
             "Microphone", "Microphone Jack",
+            "Line", "Microphone Headset",
             "Headphone", "Headphone Jack";
         rockchip,routing =
-            "MIC1", "Microphone Jack",
-            "MIC2", "Microphone Jack",
-            "Microphone Jack", "micbias1",
-            "Headphone Jack", "HPOL",
-            "Headphone Jack", "HPOR";
+            "MIC", "Microphone Jack",
+            "DMIC", "Microphone Headset",
+            "Headphone Jack", "LOUTP",
+            "Headphone Jack", "ROUTN";
     };
+
};

2./kernel/arch/arm/boot/dts/rk3288-evb.dtsi

-    sound: sound {
   
-        status = "disabled";
+        es8396-sound {
   
+        status = "okay";
         compatible = "simple-audio-card";
         simple-audio-card,format = "i2s";
-        simple-audio-card,name = "rockchip,rt5640-codec";
+        simple-audio-card,name = "rockchip,rt5640-codec","rockchip,es8396-codec";
         simple-audio-card,mclk-fs = <512>;
         simple-audio-card,widgets =
             "Microphone", "
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 7.1.2(也被称为Nougat)是Android操作系统的一个版本,它的源代码是公开可用的。源码包含了构建和运行Android操作系统所需的所有代码文件和资源。 Android操作系统是一个基于Linux内核的开源平台,用于移动设备和嵌入式系统。它提供了一个统一的操作系统环境,使开发者能够轻松地构建和定制自己的Android设备。 Android 7.1.2源码提供了一套开发工具和框架,使开发者能够创建功能丰富、稳定和安全的应用程序。该版本中引入了一些新的功能和改进,例如通知栏的增强、多任务处理的改进、Doze模式的优化等,以提供更好的用户体验。 通过查看源代码,开发者可以深入了解Android操作系统的内部工作原理,并理解其中的各个组件和模块是如何相互协作的。例如,开发者可以研究Android的用户界面框架、应用程序生命周期管理、通信和存储机制等。 修复和优化Android 7.1.2源码也是可能的,因为它是开源的。开发者可以根据自己的需求和想法对操作系统进行修改,并参与到Android社区中,与其他开发者分享和贡献代码。 总之,Android 7.1.2源码为开发者提供了一个定制和构建Android应用的平台。通过深入了解源码,开发者能够创建出更加出色和创新的应用程序,同时也有机会参与到Android开源社区中,为整个生态系统的发展做出贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值