[Uboot-stm32] [PATCH v3 1/7] ofnode: support panel-timings in ofnode_decode_display_timing

Raphaël Gallais-Pou rgallaispou at gmail.com
Sun Nov 2 02:09:50 CET 2025


Le Sat, Nov 01, 2025 at 10:03:59AM +0100, Simon Glass a écrit :
> Hi Raphael,
> 
> On Thu, 4 Sept 2025 at 14:53, Raphael Gallais-Pou
> <raphael.gallais-pou at foss.st.com> wrote:
> >
> > The "Display Timings" in panel-common.yaml can be provided by 2 properties
> > - panel-timing: when display panels are restricted to a single resolution
> >                 the "panel-timing" node expresses the required timings.
> > - display-timings: several resolutions with different timings are supported
> >                    with several timing subnode of "display-timings" node
> >
> > This patch update the parsing function to handle this 2 possibility
> > when index = 0.
> >
> > Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
> > Reviewed-by: Yannick Fertre <yannick.fertre at foss.st.com>
> > Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou at foss.st.com>
> > ---
> >  drivers/core/ofnode.c | 17 ++++++++++-------
> >  1 file changed, 10 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c
> > index e040e3f2806ffe74c58dcd82f36307351acd5a99..5a721b46e5a3214e7bd437739776362c2d22a3c9 100644
> > --- a/drivers/core/ofnode.c
> > +++ b/drivers/core/ofnode.c
> > @@ -1221,13 +1221,16 @@ int ofnode_decode_display_timing(ofnode parent, int index,
> >         int ret = 0;
> >
> >         timings = ofnode_find_subnode(parent, "display-timings");
> > -       if (!ofnode_valid(timings))
> > -               return -EINVAL;
> > -
> > -       i = 0;
> > -       ofnode_for_each_subnode(node, timings) {
> > -               if (i++ == index)
> > -                       break;
> > +       if (ofnode_valid(timings)) {
> > +               i = 0;
> > +               ofnode_for_each_subnode(node, timings) {
> > +                       if (i++ == index)
> > +                               break;
> > +               }
> > +       } else {
> > +               if (index != 0)
> > +                       return -EINVAL;
> > +               node = ofnode_find_subnode(parent, "panel-timing");
> >         }
> >
> >         if (!ofnode_valid(node))
> >
> > --
> > 2.25.1
> >
> 
> Please add a test for this in test/dm/ofnode.c

Hi Simon,

I'll gladly do that, but I haven't write and use any test in U-Boot.  So
it is a bit foggy how to implement it.

Do we want to create a fake device-tree and test each configuration or
do we want to test in the _current_ device-tree if timings are correctly
set according to the index value ?

Best regards,
Raphaël

> 
> Regards,
> Simon
> _______________________________________________
> Uboot-stm32 mailing list
> Uboot-stm32 at st-md-mailman.stormreply.com
> https://st-md-mailman.stormreply.com/mailman/listinfo/uboot-stm32


More information about the U-Boot mailing list