Linux Sound subsystem development
 help / color / mirror / Atom feed
* [PATCH 0/2] ASoC: es8328: enable capture on the ES8388
@ 2026-10-24  8:47 Bob Hui
  2026-10-24  8:47 ` [PATCH 1/2] ASoC: es8328: describe the power-on register values in the regmap Bob Hui
  2026-10-24  8:47 ` [PATCH 2/2] ASoC: es8328: set SLRCK for the ES8388 Bob Hui
  0 siblings, 2 replies; 7+ messages in thread
From: Bob Hui @ 2026-10-24  8:47 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai
  Cc: linux-sound, linux-kernel, Bob Hui

The es8328 driver never touches a register at probe time: it enables the
supplies and the clock and leaves the codec in whatever state it is in.
On a board where this driver is the only thing that configures the codec,
userspace ends up dealing with the reset values, and one of them makes the
capture path unusable.

Patch 1 describes the documented power-on values in the regmap, so the
cache matches the chip instead of being filled in lazily on first access.

Patch 2 sets SLRCK on the ES8388.  The chip has a single LRCK pin, and
without SLRCK the ADC never gets a frame clock: capture records digital
silence while playback works, which makes it look like a hardware fault.

Both were found while bringing up a QuarkPi-CA2 (RK3588S, ES8388) on v7.3.
Playback was fine from the start; capture delivered digital silence with no
noise floor at all, which turned out to be the missing frame clock.  The
same board records normally on the vendor 5.10 stack.

The ADC digital volumes still power up at -96 dB.  That is deliberately
left to userspace (UCM or an alsactl state file) rather than baked into the
driver, since the level is a system policy decision.

One documented value does not match the silicon: registers 0x1a/0x1b (DAC
digital volume) are documented to reset to 0xc0, but the ES8388 on this
board reads back 0x28 after a cold boot, and the driver never writes them.
Patch 1 keeps the documented values; if the measured ones are preferred,
those two entries can simply be dropped.

Assisted-by: Hermes:deepseek-v4-flash
Signed-off-by: Bob Hui <bg9oxa@163.com>
---
Bob Hui (2):
      ASoC: es8328: describe the power-on register values in the regmap
      ASoC: es8328: set SLRCK for the ES8388

 sound/soc/codecs/es8328.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 77 insertions(+)
---
base-commit: c03c1a14507dfaf8b856c2608f9ac216021fc222
change-id: 20261024-es8328-vol-init-6a52c17897cd

Best regards,
--  
Bob Hui <bg9oxa@163.com>


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-10-26 20:14 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-24  8:47 [PATCH 0/2] ASoC: es8328: enable capture on the ES8388 Bob Hui
2026-10-24  8:47 ` [PATCH 1/2] ASoC: es8328: describe the power-on register values in the regmap Bob Hui
2026-10-24  9:02   ` sashiko-bot
2026-10-24 10:03     ` Bob Hui
2026-10-26 20:14   ` Mark Brown
2026-10-24  8:47 ` [PATCH 2/2] ASoC: es8328: set SLRCK for the ES8388 Bob Hui
2026-10-26 20:14   ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox