文章目录
-
- 根据硬件设计选择合适的板卡
- [音频接口bug (耳机插孔,带插入检测功能)](#音频接口bug (耳机插孔,带插入检测功能))
- rk3576内核defconfig与.config工作模式
根据硬件设计选择合适的板卡

可以看到我的主设备数来自于rk3576-armsom-sige5.dts
音频接口bug (耳机插孔,带插入检测功能)
设备树如下
c
es8388_sound: es8388-sound {
status = "okay";
compatible = "rockchip,multicodecs-card";
rockchip,card-name = "rockchip-es8388";
hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
//io-channels = <&saradc 3>;
///io-channel-names = "adc-detect";
//keyup-threshold-microvolt = <1800000>;
//poll-interval = <100>;
//spk-con-gpio = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>;
//hp-con-gpio = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>;
//rockchip,pre-power-on-delay-ms = <30>;
//rockchip,post-power-down-delay-ms = <40>;
rockchip,format = "i2s";
rockchip,mclk-fs = <256>;
rockchip,cpu = <&sai2>;
rockchip,codec = <&es8388>;
rockchip,audio-routing =
"Headphone", "LOUT1",
"Headphone", "ROUT1",
//"Speaker", "LOUT2",
//"Speaker", "ROUT2",
"Headphone", "Headphone Power",
"Headphone", "Headphone Power",
"Speaker", "Speaker Power",
"Speaker", "Speaker Power",
"LINPUT1", "Main Mic",
"LINPUT2", "Main Mic";
//"RINPUT1", "Headset Mic",
//"RINPUT2", "Headset Mic";
pinctrl-names = "default";
pinctrl-0 = <&hp_det>;
//play-pause-key {
// label = "playpause";
// linux,code = <KEY_PLAYPAUSE>;
// press-threshold-microvolt = <2000>;
//};
};
原来aplay -l查看音频驱动,
c
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: rockchipes8388 [rockchip-es8388], device 0: dailink-multicodecs es8328-hifi-analog-0 [dailink-multicodecs es8328-hifi-analog-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
root@rk3576-buildroot:/#
发现es8388对应了es8328驱动,bug就在这里。

es8388耳机孔原本sdk无驱动,需要自己添加,这里需要alsamixer命令查看音量有没有被静音。如果静音按下键盘M键退出静音模式
c
alsamixer

rk3576内核defconfig与.config工作模式

上图所示的两个文件共同作用,生成.config。当然make menuconfig也可以修改.config。
这里得注意kconfig的作用,这是因为rockchip_linux_defconfig的配置,需要在kconfig里面进行一次判断,再传递给.config。如果kconfig里面没有rockchip_linux_defconfig写的的配置,那样也不会传给.config

.config路径如下
