[PATCH v2 2/2] ASoC: rt1015p: delay 300ms after SDB pulling high for calibration
Tzung-Bi Shih
tzungbi at google.com
Thu Dec 10 04:36:17 CET 2020
RT1015p needs 300ms delay after SDB pulling high for internal
calibration during the power on sequence.
Delays 300ms right before data sends out to avoid data truncated.
Signed-off-by: Tzung-Bi Shih <tzungbi at google.com>
---
sound/soc/codecs/rt1015p.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sound/soc/codecs/rt1015p.c b/sound/soc/codecs/rt1015p.c
index 397083ee5b37..bba638e1eb6a 100644
--- a/sound/soc/codecs/rt1015p.c
+++ b/sound/soc/codecs/rt1015p.c
@@ -4,6 +4,7 @@
//
// Copyright 2020 The Linux Foundation. All rights reserved.
+#include <linux/delay.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/gpio.h>
@@ -19,6 +20,7 @@
struct rt1015p_priv {
struct gpio_desc *sdb;
+ bool calib_done;
};
static int rt1015p_sdb_event(struct snd_soc_dapm_widget *w,
@@ -36,6 +38,11 @@ static int rt1015p_sdb_event(struct snd_soc_dapm_widget *w,
case SND_SOC_DAPM_PRE_PMU:
gpiod_set_value(rt1015p->sdb, 1);
dev_dbg(component->dev, "set sdb to 1");
+
+ if (!rt1015p->calib_done) {
+ msleep(300);
+ rt1015p->calib_done = true;
+ }
break;
case SND_SOC_DAPM_POST_PMD:
gpiod_set_value(rt1015p->sdb, 0);
--
2.29.2.576.ga3fc446d84-goog
More information about the Alsa-devel
mailing list