> > > > +int of_property_read_bool(const struct device_node *np, const char 
> > > > *propname)
> > > > +{
> > > > +       u32 reg;
> > > > +       int ret = of_property_read_u32(np, propname, &reg);
> > > > +
> > > > +       switch (ret) {
> > > > +       case -EINVAL:
> > > > +               return false;
> > > > +       case -ENODATA:
> > > > +               return true;
> > > > +       case 0:
> > > > +               return reg == 1;
> > > 
> > > Ugh.  so any value other than 1 returns false?  I think that will surprise
> > > most people.
> > > 
> > > I don't like this api or binding.  If it is a bool property, then why 
> > > isn't
> > > simply testing for the property existance sufficient?
> > no if you want to disable it
> > 
> > if a bool is define in the dtsi and want to disable it int the dts
> > 
> > if you we can do the the invert
> > 
> > if !0 => true
> > 
> > is-ok;                      => true
> > is-ok = <val != 0>; => true
> > is-ok = <0>;                => false
> 
> This is a failure of the dtc tool, not the binding.  Accepting this binding
> means we have to live with it for a very long time.  It needs to be fixed
> in dtc instead so that properties can be deleted instead of only modified.
I understand your idea but today if you put and value in the property it's true.

So is-ok = <0>; is true also which is illogical as in any language a boolean is
true (1) or false (0). When I read the property I will understand false not true

And I see no good way to add the "delete" in dtc.

Best Regards,
J.
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to