[????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>;
};
};