* [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec
@ 2026-10-06 12:55 Alvin Šipraga
2026-10-06 12:55 ` [PATCH 1/2] ASoC: adau1372: allow sleepy powerdown GPIOs Alvin Šipraga
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Alvin Šipraga @ 2026-10-06 12:55 UTC (permalink / raw)
To: Lars-Peter Clausen, Nuno Sá,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Alexandre Belloni
Cc: linux-sound, linux-kernel, Alvin Šipraga
Signed-off-by: Alvin Šipraga <alvin.sipraga@analog.com>
---
Alvin Šipraga (2):
ASoC: adau1372: allow sleepy powerdown GPIOs
ASoC: adau1372: fix invalid default state of output ASRC and DAC muxes
sound/soc/codecs/adau1372.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
---
base-commit: d0cb7a7b2a490c381ad97f53155d02a748b60dea
change-id: 20261006-asoc-adau1372-fixes-c4e6b9912ebe
Best regards,
--
Alvin Šipraga <alvin.sipraga@analog.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] ASoC: adau1372: allow sleepy powerdown GPIOs
2026-10-06 12:55 [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec Alvin Šipraga
@ 2026-10-06 12:55 ` Alvin Šipraga
2026-10-06 12:55 ` [PATCH 2/2] ASoC: adau1372: fix invalid default state of output ASRC and DAC muxes Alvin Šipraga
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Alvin Šipraga @ 2026-10-06 12:55 UTC (permalink / raw)
To: Lars-Peter Clausen, Nuno Sá,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Alexandre Belloni
Cc: linux-sound, linux-kernel, Alvin Šipraga
gpiod_set_value() emits a WARN when the GPIO provider indicates that it
can sleep, as is typical for I2C controlled GPIO expanders. Since the
powerdown GPIO is only manipulated in process context, use the _cansleep
variant instead. This lets the driver use sleepy GPIOs to power off the
chip.
Fixes: 6cd4c6459e47 ("ASoC: Add ADAU1372 audio CODEC support")
Signed-off-by: Alvin Šipraga <alvin.sipraga@analog.com>
---
sound/soc/codecs/adau1372.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/sound/soc/codecs/adau1372.c b/sound/soc/codecs/adau1372.c
index cc174ec3a1f8..b84495371b0b 100644
--- a/sound/soc/codecs/adau1372.c
+++ b/sound/soc/codecs/adau1372.c
@@ -798,7 +798,7 @@ static int adau1372_set_power(struct adau1372 *adau1372, bool enable)
if (ret)
return ret;
if (adau1372->pd_gpio)
- gpiod_set_value(adau1372->pd_gpio, 0);
+ gpiod_set_value_cansleep(adau1372->pd_gpio, 0);
if (adau1372->switch_mode)
adau1372->switch_mode(adau1372->dev);
@@ -818,8 +818,7 @@ static int adau1372_set_power(struct adau1372 *adau1372, bool enable)
ADAU1372_CLK_CTRL_PLL_EN,
0);
regcache_cache_only(adau1372->regmap, true);
- if (adau1372->pd_gpio)
- gpiod_set_value(adau1372->pd_gpio, 1);
+ gpiod_set_value_cansleep(adau1372->pd_gpio, 1);
clk_disable_unprepare(adau1372->mclk);
return ret;
}
@@ -836,7 +835,7 @@ static int adau1372_set_power(struct adau1372 *adau1372, bool enable)
* map. No need to do any register writes to manually
* turn things off.
*/
- gpiod_set_value(adau1372->pd_gpio, 1);
+ gpiod_set_value_cansleep(adau1372->pd_gpio, 1);
regcache_mark_dirty(adau1372->regmap);
} else {
regmap_update_bits(adau1372->regmap, ADAU1372_REG_CLK_CTRL,
--
2.54.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] ASoC: adau1372: fix invalid default state of output ASRC and DAC muxes
2026-10-06 12:55 [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec Alvin Šipraga
2026-10-06 12:55 ` [PATCH 1/2] ASoC: adau1372: allow sleepy powerdown GPIOs Alvin Šipraga
@ 2026-10-06 12:55 ` Alvin Šipraga
2026-10-06 13:03 ` [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec Nuno Sá
2026-10-06 15:21 ` Mark Brown
3 siblings, 0 replies; 5+ messages in thread
From: Alvin Šipraga @ 2026-10-06 12:55 UTC (permalink / raw)
To: Lars-Peter Clausen, Nuno Sá,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
Alexandre Belloni
Cc: linux-sound, linux-kernel, Alvin Šipraga
The chip has strange power-on reset values for the registers that
control the output ASRC and DAC source muxes - the values are actually
marked "Reserved" in the datasheet [1]. This means that until the
underlying kcontrols are modified, the codec will not function as
expected.
The registers in question are:
register / field reset value valid values
ASRCO_SOURCE_0_1 0x10
ASRC_OUT_SOURCE0 0 4 .. 16
ASRC_OUT_SOURCE1 1 4 .. 16
ASRCO_SOURCE_2_3 0x10
ASRC_OUT_SOURCE2 2 4 .. 16
ASRC_OUT_SOURCE3 3 4 .. 16
DAC_SOURCE_0_1 0x10
DAC_SOURCE_0 0 12 .. 13
DAC_SOURCE_1 1 12 .. 13
Set some sane defaults during the driver probe:
ADC Decimator0 -> Output ASRC0
ADC Decimator1 -> Output ASRC1
ADC Decimator2 -> Output ASRC2
ADC Decimator3 -> Output ASRC3
Input ASRC0 -> DAC0
Input ASRC1 -> DAC1
With this, the chip will behave as advertised by the default kcontrol
state exposed by the driver.
[1] https://www.analog.com/media/en/technical-documentation/data-sheets/ADAU1372.pdf
Fixes: 6cd4c6459e47 ("ASoC: Add ADAU1372 audio CODEC support")
Signed-off-by: Alvin Šipraga <alvin.sipraga@analog.com>
---
sound/soc/codecs/adau1372.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sound/soc/codecs/adau1372.c b/sound/soc/codecs/adau1372.c
index b84495371b0b..c3d3be898ba6 100644
--- a/sound/soc/codecs/adau1372.c
+++ b/sound/soc/codecs/adau1372.c
@@ -1002,6 +1002,17 @@ int adau1372_probe(struct device *dev, struct regmap *regmap,
regmap_write(regmap, ADAU1372_REG_OP_STAGE_MUTE, 0x0);
+ /*
+ * Set sane default values for the Output ASRC and DAC input muxes,
+ * since the power-on reset defaults are invalid "Reserved" states.
+ */
+ regmap_write(regmap, ADAU1372_REG_ASRCO_SOURCE_0_1,
+ 0x54); /* Decimator0, Decimator1 */
+ regmap_write(regmap, ADAU1372_REG_ASRCO_SOURCE_2_3,
+ 0x76); /* Decimator2, Decimator3 */
+ regmap_write(regmap, ADAU1372_REG_DAC_SOURCE,
+ 0xdc); /* Input ASRC0, Input ASRC1 */
+
regmap_write(regmap, 0x7, 0x01); /* CLOCK OUT */
return devm_snd_soc_register_component(dev, &adau1372_driver, &adau1372_dai_driver, 1);
--
2.54.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec
2026-10-06 12:55 [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec Alvin Šipraga
2026-10-06 12:55 ` [PATCH 1/2] ASoC: adau1372: allow sleepy powerdown GPIOs Alvin Šipraga
2026-10-06 12:55 ` [PATCH 2/2] ASoC: adau1372: fix invalid default state of output ASRC and DAC muxes Alvin Šipraga
@ 2026-10-06 13:03 ` Nuno Sá
2026-10-06 15:21 ` Mark Brown
3 siblings, 0 replies; 5+ messages in thread
From: Nuno Sá @ 2026-10-06 13:03 UTC (permalink / raw)
To: Alvin Šipraga
Cc: Lars-Peter Clausen, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai, Alexandre Belloni, linux-sound, linux-kernel
On Tue, Oct 06, 2026 at 02:55:55PM +0200, Alvin Šipraga wrote:
> Signed-off-by: Alvin Šipraga <alvin.sipraga@analog.com>
> ---
> Alvin Šipraga (2):
> ASoC: adau1372: allow sleepy powerdown GPIOs
> ASoC: adau1372: fix invalid default state of output ASRC and DAC muxes
>
> sound/soc/codecs/adau1372.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
> ---
> base-commit: d0cb7a7b2a490c381ad97f53155d02a748b60dea
> change-id: 20261006-asoc-adau1372-fixes-c4e6b9912ebe
>
> Best regards,
> --
> Alvin Šipraga <alvin.sipraga@analog.com>
>
Acked-by: Nuno Sá <nuno.sa@analog.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec
2026-10-06 12:55 [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec Alvin Šipraga
` (2 preceding siblings ...)
2026-10-06 13:03 ` [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec Nuno Sá
@ 2026-10-06 15:21 ` Mark Brown
3 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2026-10-06 15:21 UTC (permalink / raw)
To: Lars-Peter Clausen, Nuno Sá,
Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Alexandre Belloni,
Alvin Šipraga
Cc: linux-sound, linux-kernel
On Tue, 06 Oct 2026 14:55:55 +0200, Alvin Šipraga wrote:
> ASoC: adau1372: two small bugfixes for the codec
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.3
Thanks!
[1/2] ASoC: adau1372: allow sleepy powerdown GPIOs
https://git.kernel.org/broonie/sound/c/64dd172bbffe
[2/2] ASoC: adau1372: fix invalid default state of output ASRC and DAC muxes
https://git.kernel.org/broonie/sound/c/36d0e05815ce
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-10-07 10:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-06 12:55 [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec Alvin Šipraga
2026-10-06 12:55 ` [PATCH 1/2] ASoC: adau1372: allow sleepy powerdown GPIOs Alvin Šipraga
2026-10-06 12:55 ` [PATCH 2/2] ASoC: adau1372: fix invalid default state of output ASRC and DAC muxes Alvin Šipraga
2026-10-06 13:03 ` [PATCH 0/2] ASoC: adau1372: two small bugfixes for the codec Nuno Sá
2026-10-06 15:21 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®