应需求调试一个ES7210的阵列麦克风
首先移植
From 234647c69a57c32198c65836e7fc521dc22e444b Mon Sep 17 00:00:00 2001
From: LuoXiaoTan <lxt@rock-chips.com>
Date: Tue, 10 Jul 2018 18:08:50 -0700
Subject: [PATCH] ASoC: codecs: add es7210 adc driver
---
.../dts/rockchip/rk3399-excavator-sapphire.dtsi | 3 +-
.../dts/rockchip/rk3399-sapphire-excavator-edp.dts | 29 +-
sound/soc/codecs/Kconfig | 4 +
sound/soc/codecs/Makefile | 2 +
sound/soc/codecs/es7210.c | 1774 ++++++++++++++++++++
sound/soc/codecs/es7210.h | 76 +
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-excavator-sapphire.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-excavator-sapphire.dtsi
index c7446fc0..4092486 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-excavator-sapphire.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-excavator-sapphire.dtsi
@@ -127,7 +127,7 @@
};
&spdif {
- status = "okay";
+ status = "disabled";
pinctrl-0 = <&spdif_bus>;
i2c-scl-rising-time-ns = <450>;
i2c-scl-falling-time-ns = <15>;
@@ -140,6 +140,7 @@
i2c-scl-falling-time-ns = <15>;
rt5651: rt5651@1a {
+ status = "disabled";
#sound-dai-cells = <0>;
compatible = "rockchip,rt5651";
reg = <0x1a>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dts b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dts
index 841e499..1e86ee2 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator-edp.dts
@@ -109,8 +109,23 @@
compatible = "rockchip,rockchip-rt5651-tc358749x-sound";
rockchip,cpu = <&i2s0>;
rockchip,codec = <&rt5651 &rt5651 &tc358749x>;
+ status = "disabled";
+ };
+ es7210_sound: es7210-sound {
status = "okay";
+ compatible = "simple-audio-card";
+ simple-audio-card,format = "i2s";
+ simple-audio-card,mclk-fs = <256>;
+ simple-audio-card,name = "rockchip,es7210";
+
+ simple-audio-card,cpu {
+ sound-dai = <&i2s0>;
+ };
+ simple-audio-card,codec {
+ sound-dai = <&es7210>;
+ };
};
+
};
&backlight {
@@ -146,7 +161,7 @@
};
&rt5651 {
- status = "okay";
+ status = "disabled";
};
&cdn_dp {
@@ -173,6 +188,7 @@
gsl3673: gsl3673@40 {
compatible = "GSL,GSL3673";
reg = <0x40>;
+ status = "disabled";
screen_max_x = <1536>;
screen_max_y = <2048>;
irq_gpio_number = <&gpio1 20 IRQ_TYPE_LEVEL_LOW>;
@@ -191,7 +207,16 @@
int-gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&hdmiin_gpios>;
- status = "okay";
+ status = "disabled";
+ };
+ es7210: es7210@40 {
+ #sound-dai-cells = <0>;
+ compatible = "MicArray_1";
+ reg = <0x40>;
+ clocks = <&cru SCLK_I2S_8CH_OUT>;
+ clock-names = "mclk";
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2s_8ch_mclk>;
};
};
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 3792cf4..7c2189d 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -468,6 +468,10 @@ config SND_SOC_BT_SCO
config SND_SOC_DMIC
tristate
+config SND_SOC_ES7210
+ tristate "Everest Semi ES7210 CODEC"
+ depends on I2C
+
config SND_SOC_ES8316
tristate "Everest Semi ES8316 CODEC"
depends on I2C
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index aff1c31..99624d2 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -57,6 +57,7 @@ snd-soc-da9055-objs := da9055.o
snd-soc-dw-hdmi-audio-objs := dw-hdmi-audio.o
snd-soc-bt-sco-objs := bt-sco.o
snd-soc-dmic-objs := dmic.o
+snd-soc-es7210-objs := es7210.o
snd-soc-es8316-objs := es8316.o
snd-soc-es8323-objs := es8323.o
snd-soc-es8328-objs := es8328.o
@@ -261,6 +262,7 @@ obj-$(CONFIG_SND_SOC_DA9055) += snd-soc-da9055.o
obj-$(CONFIG_SND_SOC_DW_HDMI_AUDIO) += snd-soc-dw-hdmi-audio.o
obj-$(CONFIG_SND_SOC_BT_SCO) += snd-soc-bt-sco.o
obj-$(CONFIG_SND_SOC_DMIC) += snd-soc-dmic.o
+obj-$(CONFIG_SND_SOC_ES7210) += snd-soc-es7210.o
obj-$(CONFIG_SND_SOC_ES8316) += snd-soc-es8316.o
obj-$(CONFIG_SND_SOC_ES8323) += snd-soc-es8323.o
obj-$(CONFIG_SND_SOC_ES8328) += snd-soc-es8328.o
打上补丁,配置DTS,我这个原来的ES8323的芯片保留功放喇叭.
sound: sound {
status = "disabled";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,name = "rockchip,es8323-codec";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,widgets =
"Microphone", "Microphone Jack",
"Headphone", "Headphone Jack";
simple-audio-card,routing =
"MIC1", "Microphone Jack",
"MIC2", "Microphone Jack",
"Microphone Jack", "micbias1",
"Headphone Jack", "HPOL",
"Headphone Jack", "HPOR";
simple-audio-card,dai-link@0 {
format = "i2s";
cpu {
sound-dai = <&i2s>;
system