我项目使用的是aw882xx的这个数字功放,平台是rk3566
驱动调试没什么好说的,fae会给一个驱动文件过来,不过给的不是rk平台的,把mtk的改一下就可以了,主要讲一下配置方面的问题,也就是dts的配置
这个ic使用的是i2c接口的, 所以要做的第一步就是把驱动加载到i2c上面,调试驱动时候也是要首先保证i2c通信没有问题
aw88xx: aw88xx@34 { status = "okay"; compatible = "awinic,aw882xx_smartpa"; #sound-dai-cells = <0>; reg = <0x34>; clocks = <&cru I2S3_MCLKOUT>; clock-names = "mclk"; assigned-clocks = <&cru I2S3_MCLKOUT>, <&cru I2S3_MCLK_IOE>; assigned-clock-rates = <12288000>; assigned-clock-parents = <&cru I2S3_MCLKOUT_TX>, <&cru I2S3_MCLKOUT>; pinctrl-names = "default"; pinctrl-0 = <&i2s3m1_mclk>; hp-volume = <3>; spk-volume = <3>;//max-0 min-255 out-l2spk-r2hp; //外部数字功放 use-ext-amplifier ; //reset-gpio= <&ap_gpio 92 0>; //irq-gpio= <&ap_gpio 93 0>; };
这里可以直接参考rk的codec的配置,实际上也是添加了一个codec而已,然后就是要引用,把aw88xx这个节点添加到系统的rk817-codec这个声卡中
rk817-sound { compatible = "simple-audio-card"; simple-audio-card,format = "i2s"; //simple-audio-card,format = "pdm"; simple-audio-card,name = "rockchip,rk817-codec"; simple-audio-card,mclk-fs = <256>; //chencx add simple-audio-card,dai-link@0 { format = "i2s"; cpu { //sound-dai = <&i2s1_8ch>; sound-dai = <&i2s3_2ch>; //声卡使用的i2s配置,需要根据电路原理来 }; codec { sound-dai = <&aw88xx>; //这里就是绑定数字功放 }; }; simple-audio-card,dai-link@1 { format = "pdm"; cpu { sound-dai = <&pdm>; }; codec { sound-dai = <&rk817_codec>; }; }; };
然后就是要配置 i2s3_2ch
&i2s3_2ch { status = "okay"; rockchip,clk-trcm = <1>; pinctrl-names = "default"; pinctrl-0 = <&i2s3m1_sclk &i2s3m1_lrck &i2s3m1_sdo>; };
我的i2s的引脚原理图是
------->
到这里,如果没有声音的话需要测量clk是否正常
驱动的加载可以是这里我的云笔记,参考下,我修改了比较多的内容,主要把mtk平台的移植到rk上面框架的适配文档:aw882xx数字功放移植.note
链接:
文档:aw882xx数字功放移植.note
链接:http://note.youdao.com/noteshare?id=a7292870b642e6b8b4986a3c167c7994&sub=0843B931D8EF4384933871278D7C2E72
标签:sound,功放,aw88261,simple,艾维,dai,audio,card From: https://www.cnblogs.com/ChenChangXiong/p/17919958.html