针对 Everest Semi 的 ES8388 芯片即将停产的情况,我们在 RK3588 Linux 平台上成功替换了对应的替代型号 ES8390,并成功移植了相关驱动。
据悉,ES8390 与 ES8389 属于同一芯片 IC,共用同一套内核驱动,区别在于 ES8390 的封装设计可以 P2P 即将停产的 ES8388,因此如果原硬件设计是 ES8388 的用户,可以使用 ES8390 直接替代。
若是新产品设计,建议后续使用 ES8389 的封装设计,其性价比会更高。
1. 硬件平台 基于 RK3588J HCD810 主板,进行 ES8388 芯片替换验证。
2. 软件环境 软件环境为:统信桌面操作系统 V20。
3. 驱动移植 (1) 内核声卡部分的改动如下:
diff --git a/arch/arm64/configs/rockchip_linux_defconfig b/arch/arm64/configs/rockchip_linux_defconfig
index e28855a67310..002657675d53 100644
--- a/arch/arm64/configs/rockchip_linux_defconfig
+++ b/arch/arm64/configs/rockchip_linux_defconfig
@@ -417,6 +417,7 @@ CONFIG_SND_SOC_ES7243E=y
CONFIG_SND_SOC_ES8311=y
CONFIG_SND_SOC_ES8316=y
CONFIG_SND_SOC_ES8323=y
+CONFIG_SND_SOC_ES8389=y
CONFIG_SND_SOC_ES8326=y
CONFIG_SND_SOC_RK3308=y
CONFIG_SND_SOC_RK3328=y
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index a51cffbb2611..07d1348a553 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -93,6 +93,7 @@ config SND_SOC_ALL_CODECS
imply SND_SOC_ES8156
imply SND_SOC_ES8316
imply SND_SOC_ES8323
+imply SND_SOC_ES8389
imply SND_SOC_ES8326
imply SND_SOC_ES8328_SPI
imply SND_SOC_ES8328_I2C
@@ -839,6 +840,10 @@ config SND_SOC_ES8323
tristate "Everest Semi ES8323 CODEC"
depends on I2C
+config SND_SOC_ES8389
+tristate "Everest Semi ES8389 CODEC"
+depends on I2C
+
config SND_SOC_ES8326
tristate "Everest Semi ES8326 CODEC"
depends on I2C
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index 07d1f3b4eeb7..22b32aa3f3 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -94,6 +94,7 @@ snd-soc-es8156-objs := es8156.o
snd-soc-es8311-objs := es8311.o
snd-soc-es8316-objs := es8316.o
snd-soc-es8323-objs := es8323.o
snd-soc-es8326-objs := es8326.o
snd-soc-es8328-objs := es8328.o
snd-soc-es8328-i2c-objs := es8328-i2c.o
obj-$(CONFIG_SND_SOC_ES8156)+= snd-soc-es8156.o
obj-$(CONFIG_SND_SOC_ES8311)+= snd-soc-es8311.o
obj-$(CONFIG_SND_SOC_ES8316)+= snd-soc-es8316.o
obj-$(CONFIG_SND_SOC_ES8323)+= snd-soc-es8323.o
obj-$(CONFIG_SND_SOC_ES8326)+= snd-soc-es8326.o
obj-$(CONFIG_SND_SOC_ES8328)+= snd-soc-es8328.o
obj-$(CONFIG_SND_SOC_ES8328_I2C)+= snd-soc-es8328-i2c.o


