[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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值