--- Begin Message ---
- To: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
- Subject: Re: [PATCH] ASoC: dwc: add reset support
- From: Maxim Kochetkov <fido_max@xxxxxxxx>
- Date: Wed, 26 Apr 2023 14:32:15 +0300
- Cc: alsa-devel@xxxxxxxxxxxxxxxx, lgirdwood@xxxxxxxxx, broonie@xxxxxxxxxx, tiwai@xxxxxxxx, ckeepax@xxxxxxxxxxxxxxxxxxxxx, u.kleine-koenig@xxxxxxxxxxxxxx, nicolas.ferre@xxxxxxxxxxxxx
- In-reply-to: <20230426075735.GE4724@pengutronix.de>
- References: <20230421193319.14066-1-fido_max@inbox.ru> <20230426075735.GE4724@pengutronix.de>
- User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0
On 26.04.2023 10:57, Philipp Zabel wrote:
Hi Maxim,
On Fri, Apr 21, 2023 at 10:33:19PM +0300, Maxim Kochetkov wrote:
Some SoC may have resets for I2S subsystem. So add optional reset
deassert at startup.
Signed-off-by: Maxim Kochetkov <fido_max@xxxxxxxx>
---
sound/soc/dwc/dwc-i2s.c | 9 +++++++++
sound/soc/dwc/local.h | 1 +
2 files changed, 10 insertions(+)
diff --git a/sound/soc/dwc/dwc-i2s.c b/sound/soc/dwc/dwc-i2s.c
index acdf98b2ee9c..8c8bc7116f86 100644
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
@@ -17,6 +17,7 @@
#include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/module.h>
+#include <linux/reset.h>
#include <linux/slab.h>
#include <linux/pm_runtime.h>
#include <sound/designware_i2s.h>
@@ -648,6 +649,14 @@ static int dw_i2s_probe(struct platform_device *pdev)
if (IS_ERR(dev->i2s_base))
return PTR_ERR(dev->i2s_base);
+ dev->reset = devm_reset_control_array_get_optional_shared(&pdev->dev);
+ if (IS_ERR(dev->reset))
+ return PTR_ERR(dev->reset);
+
+ ret = reset_control_deassert(dev->reset);
Since this is a shared reset control, matching reset_control_assert()
calls are required in the subsequent error paths and in dw_i2s_remove().
Sure. Will update in v2
--- End Message ---