* [v2 1/3] ASoC: rt5682: Add a property for DMIC clock rate setting
@ 2020-03-23 8:21 Oder Chiou
2020-03-23 8:21 ` [v3 2/3] ASoC: rt5682: Add a property for DMIC delay Oder Chiou
2020-03-23 8:21 ` [v3 3/3] ASoC: rt5682: Add the descriptions for the DMIC clock rate and delay settings Oder Chiou
0 siblings, 2 replies; 4+ messages in thread
From: Oder Chiou @ 2020-03-23 8:21 UTC (permalink / raw)
To: broonie, lgirdwood
Cc: Oder Chiou, jack.yu, alsa-devel, cychiang, derek.fang, shumingf,
flove
The patch adds a property for DMIC clock rate setting and changes the
default clock rate to the common optimize DMIC clock rate.
Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
---
include/sound/rt5682.h | 1 +
sound/soc/codecs/rt5682.c | 9 +++++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/include/sound/rt5682.h b/include/sound/rt5682.h
index 6bf0e3581056..96b268ac96bd 100644
--- a/include/sound/rt5682.h
+++ b/include/sound/rt5682.h
@@ -38,6 +38,7 @@ struct rt5682_platform_data {
enum rt5682_dmic1_clk_pin dmic1_clk_pin;
enum rt5682_jd_src jd_src;
unsigned int btndet_delay;
+ unsigned int dmic_clk_rate;
const char *dai_clk_names[RT5682_DAI_NUM_CLKS];
};
diff --git a/sound/soc/codecs/rt5682.c b/sound/soc/codecs/rt5682.c
index 2ee01e782fe0..c9e6f287424b 100644
--- a/sound/soc/codecs/rt5682.c
+++ b/sound/soc/codecs/rt5682.c
@@ -1231,10 +1231,13 @@ static int set_dmic_clk(struct snd_soc_dapm_widget *w,
struct snd_soc_component *component =
snd_soc_dapm_to_component(w->dapm);
struct rt5682_priv *rt5682 = snd_soc_component_get_drvdata(component);
- int idx = -EINVAL;
+ int idx = -EINVAL, dmic_clk_rate = 3072000;
static const int div[] = {2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128};
- idx = rt5682_div_sel(rt5682, 1500000, div, ARRAY_SIZE(div));
+ if (rt5682->pdata.dmic_clk_rate)
+ dmic_clk_rate = rt5682->pdata.dmic_clk_rate;
+
+ idx = rt5682_div_sel(rt5682, dmic_clk_rate, div, ARRAY_SIZE(div));
snd_soc_component_update_bits(component, RT5682_DMIC_CTRL_1,
RT5682_DMIC_CLK_MASK, idx << RT5682_DMIC_CLK_SFT);
@@ -3231,6 +3234,8 @@ static int rt5682_parse_dt(struct rt5682_priv *rt5682, struct device *dev)
&rt5682->pdata.jd_src);
device_property_read_u32(dev, "realtek,btndet-delay",
&rt5682->pdata.btndet_delay);
+ device_property_read_u32(dev, "realtek,dmic-clk-rate",
+ &rt5682->pdata.dmic_clk_rate);
rt5682->pdata.ldo1_en = of_get_named_gpio(dev->of_node,
"realtek,ldo1-en-gpios", 0);
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [v3 2/3] ASoC: rt5682: Add a property for DMIC delay
2020-03-23 8:21 [v2 1/3] ASoC: rt5682: Add a property for DMIC clock rate setting Oder Chiou
@ 2020-03-23 8:21 ` Oder Chiou
2020-03-23 8:21 ` [v3 3/3] ASoC: rt5682: Add the descriptions for the DMIC clock rate and delay settings Oder Chiou
1 sibling, 0 replies; 4+ messages in thread
From: Oder Chiou @ 2020-03-23 8:21 UTC (permalink / raw)
To: broonie, lgirdwood
Cc: Oder Chiou, jack.yu, alsa-devel, cychiang, derek.fang, shumingf,
flove
The patch adds a property for DMIC delay (ms) to avoid pop noise and
changes the default delay setting.
Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
---
include/sound/rt5682.h | 1 +
sound/soc/codecs/rt5682.c | 12 +++++++++++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/include/sound/rt5682.h b/include/sound/rt5682.h
index 96b268ac96bd..e1f790561ac1 100644
--- a/include/sound/rt5682.h
+++ b/include/sound/rt5682.h
@@ -39,6 +39,7 @@ struct rt5682_platform_data {
enum rt5682_jd_src jd_src;
unsigned int btndet_delay;
unsigned int dmic_clk_rate;
+ unsigned int dmic_delay;
const char *dai_clk_names[RT5682_DAI_NUM_CLKS];
};
diff --git a/sound/soc/codecs/rt5682.c b/sound/soc/codecs/rt5682.c
index 20a571bfe05c..d5a9e8a48607 100644
--- a/sound/soc/codecs/rt5682.c
+++ b/sound/soc/codecs/rt5682.c
@@ -1544,10 +1544,18 @@ static int rt5682_hp_event(struct snd_soc_dapm_widget *w,
static int set_dmic_power(struct snd_soc_dapm_widget *w,
struct snd_kcontrol *kcontrol, int event)
{
+ struct snd_soc_component *component =
+ snd_soc_dapm_to_component(w->dapm);
+ struct rt5682_priv *rt5682 = snd_soc_component_get_drvdata(component);
+ unsigned int delay = 50;
+
+ if (rt5682->pdata.dmic_delay)
+ delay = rt5682->pdata.dmic_delay;
+
switch (event) {
case SND_SOC_DAPM_POST_PMU:
/*Add delay to avoid pop noise*/
- msleep(150);
+ msleep(delay);
break;
default:
@@ -3236,6 +3244,8 @@ static int rt5682_parse_dt(struct rt5682_priv *rt5682, struct device *dev)
&rt5682->pdata.btndet_delay);
device_property_read_u32(dev, "realtek,dmic-clk-rate-hz",
&rt5682->pdata.dmic_clk_rate);
+ device_property_read_u32(dev, "realtek,dmic-delay-ms",
+ &rt5682->pdata.dmic_delay);
rt5682->pdata.ldo1_en = of_get_named_gpio(dev->of_node,
"realtek,ldo1-en-gpios", 0);
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [v3 3/3] ASoC: rt5682: Add the descriptions for the DMIC clock rate and delay settings
2020-03-23 8:21 [v2 1/3] ASoC: rt5682: Add a property for DMIC clock rate setting Oder Chiou
2020-03-23 8:21 ` [v3 2/3] ASoC: rt5682: Add a property for DMIC delay Oder Chiou
@ 2020-03-23 8:21 ` Oder Chiou
1 sibling, 0 replies; 4+ messages in thread
From: Oder Chiou @ 2020-03-23 8:21 UTC (permalink / raw)
To: broonie, lgirdwood
Cc: Oder Chiou, jack.yu, alsa-devel, cychiang, derek.fang, shumingf,
flove
The patch adds the descriptions for the DMIC clock rate and delay settings.
Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
---
Documentation/devicetree/bindings/sound/rt5682.txt | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/rt5682.txt b/Documentation/devicetree/bindings/sound/rt5682.txt
index ac98151d29e4..ade1ece8b45f 100644
--- a/Documentation/devicetree/bindings/sound/rt5682.txt
+++ b/Documentation/devicetree/bindings/sound/rt5682.txt
@@ -38,6 +38,12 @@ Optional properties:
- clocks : phandle and clock specifier for codec MCLK.
- clock-names : Clock name string for 'clocks' attribute, should be "mclk".
+- realtek,dmic-clk-rate-hz : Set the clock rate (hz) for the requirement of
+ the particular DMIC.
+
+- realtek,dmic-delay-ms : Set the delay time (ms) for the requirement of
+ the particular DMIC.
+
Pins on the device (for linking into audio routes) for RT5682:
* DMIC L1
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [v3 1/3] ASoC: rt5682: Add a property for DMIC clock rate
@ 2020-03-23 8:25 Oder Chiou
2020-03-23 8:25 ` [v3 3/3] ASoC: rt5682: Add the descriptions for the DMIC clock rate and delay settings Oder Chiou
0 siblings, 1 reply; 4+ messages in thread
From: Oder Chiou @ 2020-03-23 8:25 UTC (permalink / raw)
To: broonie, lgirdwood
Cc: Oder Chiou, jack.yu, alsa-devel, cychiang, derek.fang, shumingf,
flove
The patch adds a property for DMIC clock rate (hz) and changes the
default to the common optimize DMIC clock rate.
Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
---
include/sound/rt5682.h | 1 +
sound/soc/codecs/rt5682.c | 9 +++++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/include/sound/rt5682.h b/include/sound/rt5682.h
index 6bf0e3581056..96b268ac96bd 100644
--- a/include/sound/rt5682.h
+++ b/include/sound/rt5682.h
@@ -38,6 +38,7 @@ struct rt5682_platform_data {
enum rt5682_dmic1_clk_pin dmic1_clk_pin;
enum rt5682_jd_src jd_src;
unsigned int btndet_delay;
+ unsigned int dmic_clk_rate;
const char *dai_clk_names[RT5682_DAI_NUM_CLKS];
};
diff --git a/sound/soc/codecs/rt5682.c b/sound/soc/codecs/rt5682.c
index 2ee01e782fe0..20a571bfe05c 100644
--- a/sound/soc/codecs/rt5682.c
+++ b/sound/soc/codecs/rt5682.c
@@ -1231,10 +1231,13 @@ static int set_dmic_clk(struct snd_soc_dapm_widget *w,
struct snd_soc_component *component =
snd_soc_dapm_to_component(w->dapm);
struct rt5682_priv *rt5682 = snd_soc_component_get_drvdata(component);
- int idx = -EINVAL;
+ int idx = -EINVAL, dmic_clk_rate = 3072000;
static const int div[] = {2, 4, 6, 8, 12, 16, 24, 32, 48, 64, 96, 128};
- idx = rt5682_div_sel(rt5682, 1500000, div, ARRAY_SIZE(div));
+ if (rt5682->pdata.dmic_clk_rate)
+ dmic_clk_rate = rt5682->pdata.dmic_clk_rate;
+
+ idx = rt5682_div_sel(rt5682, dmic_clk_rate, div, ARRAY_SIZE(div));
snd_soc_component_update_bits(component, RT5682_DMIC_CTRL_1,
RT5682_DMIC_CLK_MASK, idx << RT5682_DMIC_CLK_SFT);
@@ -3231,6 +3234,8 @@ static int rt5682_parse_dt(struct rt5682_priv *rt5682, struct device *dev)
&rt5682->pdata.jd_src);
device_property_read_u32(dev, "realtek,btndet-delay",
&rt5682->pdata.btndet_delay);
+ device_property_read_u32(dev, "realtek,dmic-clk-rate-hz",
+ &rt5682->pdata.dmic_clk_rate);
rt5682->pdata.ldo1_en = of_get_named_gpio(dev->of_node,
"realtek,ldo1-en-gpios", 0);
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [v3 3/3] ASoC: rt5682: Add the descriptions for the DMIC clock rate and delay settings
2020-03-23 8:25 [v3 1/3] ASoC: rt5682: Add a property for DMIC clock rate Oder Chiou
@ 2020-03-23 8:25 ` Oder Chiou
0 siblings, 0 replies; 4+ messages in thread
From: Oder Chiou @ 2020-03-23 8:25 UTC (permalink / raw)
To: broonie, lgirdwood
Cc: Oder Chiou, jack.yu, alsa-devel, cychiang, derek.fang, shumingf,
flove
The patch adds the descriptions for the DMIC clock rate and delay settings.
Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
---
Documentation/devicetree/bindings/sound/rt5682.txt | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/Documentation/devicetree/bindings/sound/rt5682.txt b/Documentation/devicetree/bindings/sound/rt5682.txt
index ac98151d29e4..ade1ece8b45f 100644
--- a/Documentation/devicetree/bindings/sound/rt5682.txt
+++ b/Documentation/devicetree/bindings/sound/rt5682.txt
@@ -38,6 +38,12 @@ Optional properties:
- clocks : phandle and clock specifier for codec MCLK.
- clock-names : Clock name string for 'clocks' attribute, should be "mclk".
+- realtek,dmic-clk-rate-hz : Set the clock rate (hz) for the requirement of
+ the particular DMIC.
+
+- realtek,dmic-delay-ms : Set the delay time (ms) for the requirement of
+ the particular DMIC.
+
Pins on the device (for linking into audio routes) for RT5682:
* DMIC L1
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-03-23 8:28 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-23 8:21 [v2 1/3] ASoC: rt5682: Add a property for DMIC clock rate setting Oder Chiou
2020-03-23 8:21 ` [v3 2/3] ASoC: rt5682: Add a property for DMIC delay Oder Chiou
2020-03-23 8:21 ` [v3 3/3] ASoC: rt5682: Add the descriptions for the DMIC clock rate and delay settings Oder Chiou
-- strict thread matches above, loose matches on Subject: below --
2020-03-23 8:25 [v3 1/3] ASoC: rt5682: Add a property for DMIC clock rate Oder Chiou
2020-03-23 8:25 ` [v3 3/3] ASoC: rt5682: Add the descriptions for the DMIC clock rate and delay settings Oder Chiou
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.