Re: [PATCH] nvmem: qfprom: minor nit fixes, no functional change

From: Doug Anderson
Date: Mon Apr 26 2021 - 11:12:08 EST


On Fri, Apr 23, 2021 at 8:13 AM Joe Perches <joe@xxxxxxxxxxx> wrote:
> On Fri, 2021-04-23 at 12:35 +0530, Rajendra Nayak wrote:
> > Fix a missed newline, and update a comment which is stale
> > after the merge of '5a1bea2a: nvmem: qfprom: Add support for fuse
> > blowing on sc7280'
> > No other functional change in this patch.
> []
> > diff --git a/drivers/nvmem/qfprom.c b/drivers/nvmem/qfprom.c
> []
> > @@ -195,7 +196,7 @@ static int qfprom_enable_fuse_blowing(const struct qfprom_priv *priv,
> > }
> >
> > /*
> > - * Hardware requires 1.8V min for fuse blowing; this may be
> > + * Hardware requires a min voltage for fuse blowing; this may be
> > * a rail shared do don't specify a max--regulator constraints
> so don't?
> > * will handle.
> > */
> but the comment doesn't make much overall sense to me.

What part of it doesn't make sense, exactly? Basically there's an
external regulator (voltage rail) that can be programmed to a range of
voltages. For simplicity, let's assume 1.7, 1.8, and 1.9 V. That
regulator powers several things on the board / SoC. The places where
the rail is hooked up can function over some range of voltages. Maybe
some of the things it's hooked up with function fine between 1.6V and
1.9 V. Some between 1.6V and 1.8V. Some between 1.8V and 1.9V. For
power savings we generally want the voltage rail to be as low as

In this case, the efuse hardware (and everything else the rail is
hooked up to) work fine with a lower voltage, except when you're
programming the efuse. When the efuse needs to be programmed then it
needs a higher voltage. Thus, normally, the system is allowed to run
this rail at some lower voltage. Maybe 1.7V. When we want to program,
though, we've got to run it at 1.8V (or something higher on a new

In general it's up to the board-level regulator constraints to keep
everything happy. The person designing the board should setup a
minimum and maximum voltage for each rail to make sure that no
components are run at too high of a voltage or too low of a voltage.
Presumably those board-level constraints take into account the voltage
level needed to read the efuse and also take into account the maximum
voltage so we don't damage the efuse.