注册失败分析
[ 2.074821] es8316 4-0010: Error applying setting, reverse things back [ 2.074848] es8316: probe of 4-0010 failed with error -22
失败的原因分析:
i2c配置问题,根据具体的硬件原理图配置,选择的是i2c4 ,但是不同的i2c有不同的电压
再根据es8316的i2c驱动电压排查是3.3还是1.8V 实际两个都是可以的,但是硬件选择和i2c的电压需要保持一致,否则会无法完成节点注册
驱动节点注册
在dtsi中进行配置就可以,具体的驱动代码,rk3568下已经集成了驱动的代码,但是要再核查以下是否包含了驱动的编译
内核编译定义 | kernel/arch/arm64/configs/rockchip_evb3568_v2b_defconfig CONFIG_SND_SOC_ES8316=y |
kernel/sound/soc/codecs/rk817_codec.c CONFIG_SND_SOC_ES8316=y |
&i2c4 {
status = "okay";
es8316: es8316@10 {
#sound-dai-cells = <0>;
compatible = "everest,es8316";
reg = <0x10>;
// clocks = <&cru I2S2_MCLKOUT>;
// clock-names = "mclk";
// spk-con-gpio = <&gpio0 27 GPIO_ACTIVE_HIGH>;
// hp-det-gpio = <&gpio0 23 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
// pinctrl-0 = <&i2c4m0_xfer>;
};
};