On Fri, Oct 24, 2025 at 02:00:50PM +0800, yuanjiey wrote:
> On Thu, Oct 23, 2025 at 03:14:38PM +0300, Dmitry Baryshkov wrote:
> > On Thu, Oct 23, 2025 at 04:06:04PM +0800, yuanjie yang wrote:
> > > From: Yuanjie Yang <[email protected]>
> > >
> > > The NT37801 Sepc V1.0 chapter "5.7.1 Power On Sequence" states
> > > VDDI=1.65V~1.95V, so set sufficient voltage for panel nt37801.
> > >
> > > Signed-off-by: Yongxing Mou <[email protected]>
> > > Signed-off-by: Yuanjie Yang <[email protected]>
> > > ---
> > > drivers/gpu/drm/panel/panel-novatek-nt37801.c | 5 +++++
> > > 1 file changed, 5 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/panel/panel-novatek-nt37801.c
> > > b/drivers/gpu/drm/panel/panel-novatek-nt37801.c
> > > index d6a37d7e0cc6..7eda16e0c1f9 100644
> > > --- a/drivers/gpu/drm/panel/panel-novatek-nt37801.c
> > > +++ b/drivers/gpu/drm/panel/panel-novatek-nt37801.c
> > > @@ -267,6 +267,11 @@ static int novatek_nt37801_probe(struct
> > > mipi_dsi_device *dsi)
> > > if (ret < 0)
> > > return ret;
> > >
> > > + ret = regulator_set_voltage(ctx->supplies[0].consumer,
> > > + 1650000, 1950000);
> >
> > This should be done in the DT. Limit the voltage per the user.
> Two reason:
> 1.
> I see https://patchwork.freedesktop.org/patch/354612/
>
> panel panel-novatek-nt35510.c also use regulator_set_voltage set right
> voltage,
> so I do the same work.
Please look for the majority rather than the exceptions. Out of all
panel drivers only two set the voltage directly.
>
> 2. Kaanapali vddio regulator:
>
> vreg_l12b_1p8: ldo12 {
> regulator-name = "vreg_l12b_1p8";
> regulator-min-microvolt = <1200000>;
> regulator-max-microvolt = <1800000>;
>
> Voltage is from 1.2~.1.8 V , So I can not set it 1.65~1.95 V from
> DT(1.95V is beyond the allowed range).
> So I use regulator_set_voltage to set voltage, and
> regulator_set_voltage will choose the appropriate voltage.
DT has to list the voltage values that work for the devices on that
particular platform. So, ldo12 should be listing 1.64 - 1.8 V.
>
>
> Thanks,
> Yuanjie
>
> > > + if (ret < 0)
> > > + return ret;
> > > +
> > > ctx->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
> > > if (IS_ERR(ctx->reset_gpio))
> > > return dev_err_probe(dev, PTR_ERR(ctx->reset_gpio),
> > > --
> > > 2.34.1
> > >
> >
> > --
> > With best wishes
> > Dmitry
--
With best wishes
Dmitry