Hi Sam, On Mon, 11 Oct 2021 22:29:30 +0200, Sam Ravnborg wrote: > > VCC needs to be enabled before releasing the enable GPIO. > > > > Signed-off-by: Alexander Stein <alexander.stein@xxxxxxxxxxxxxxx> > > --- > > drivers/gpu/drm/bridge/ti-sn65dsi83.c | 15 ++++++++++++++- > > 1 file changed, 14 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c b/drivers/gpu/drm/bridge/ti-sn65dsi83.c > > index a32f70bc68ea..5fab0fabcd15 100644 > > --- a/drivers/gpu/drm/bridge/ti-sn65dsi83.c > > +++ b/drivers/gpu/drm/bridge/ti-sn65dsi83.c > > @@ -33,6 +33,7 @@ > > #include <linux/of_device.h> > > #include <linux/of_graph.h> > > #include <linux/regmap.h> > > +#include <linux/regulator/consumer.h> > > > > #include <drm/drm_atomic_helper.h> > > #include <drm/drm_bridge.h> > > @@ -143,6 +144,7 @@ struct sn65dsi83 { > > struct mipi_dsi_device *dsi; > > struct drm_bridge *panel_bridge; > > struct gpio_desc *enable_gpio; > > + struct regulator *vcc; > > int dsi_lanes; > > bool lvds_dual_link; > > bool lvds_dual_link_even_odd_swap; > > @@ -647,6 +649,12 @@ static int sn65dsi83_parse_dt(struct sn65dsi83 *ctx, > enum sn65dsi83_model model) > > > > ctx->panel_bridge = panel_bridge; > > > > + ctx->vcc = devm_regulator_get(dev, "vcc"); > In the binding the vcc regulator is required, but devm_regulator_get() > will create a dummy regulator if not found. Maybe this is on purpose and > all is good. Thanks for addressing this. I was slightly unsure myself, but IMHO this is all good as this makes the driver backward compatible with older DT which lack the regulator. If there was no vcc regulator necessary and the bridge was working,then a dummy regulator is fine, as the DT fix would be adding a always-on, regulator-fixed without any enable/disable possibility anyway. Best regards, Alexander