Re: [PATCH 07/16] ASoC: cs42l42: Correct power-up sequence to match datasheet

From: Mark Brown
Date: Fri Oct 15 2021 - 11:03:02 EST


On Fri, Oct 15, 2021 at 02:36:10PM +0100, Richard Fitzgerald wrote:
> The power-up sequence mandated in the datasheet is:

> - VP must turn on first
> - VA, VCP, VL, in any order
> - VD_FILT after VL

> static const char *const cs42l42_supply_names[CS42L42_NUM_SUPPLIES] = {
> - "VA",
> "VP",
> + "VA",
> "VCP",
> - "VD_FILT",
> "VL",
> + "VD_FILT",
> };

If you need the regulators to be turned on in sequence you shouldn't
rely on bulk enable doing it for you - the existing regulator code will
initiate all the enables in parallel and then wait for them all to
complete ramping up so if for example VD_FILT were to ramp more quickly
than the earlier regulators the hardware might notice it getting to
whatever voltage the hardware cares about before them. The only
sequencing you're getting at the minute is when the enables for the
regulators are toggled and you shouldn't even rely on that.

To get the sequencing guaranteed you should pull VP and VD_FILT out of
the bulk enable and do individual enables for them.

Attachment: signature.asc
Description: PGP signature