Re: The future of DT binding maintainership

From: Tomasz Figa
Date: Mon Jul 22 2013 - 17:58:10 EST


On Monday 22 of July 2013 16:34:49 Jon Loeliger wrote:
> > > Is there a schema out there in the wild that exemplifies what you
> > > mean?
> >
> > Not really. The format of schemas is currently in design stage. I'm
> > currently rethinking some details of what I have in my mind. Give me
> > some more time and I will post an RFC to the ML with all that written
> > down.
> ...and...

I meant a bit longer "more time". It's late here and it's almost time to
go to bed.

I need to look a bit inside dtc to see what is already there, but expect
results rather later this week.

> > > The schema-check idea reminds me of the W3C HTML validators:
> > > http://validator.w3.org/
> > >
> > > Since device-tree source looks a bit like XML (or maybe more like
> > > JSON), will be the schemas be similar in spirit to DTDs, and is it
> > > helpful to think of the validator in this spirit? Or will the
> > > checker be more like "gcc -Wall", since it will be invoked by a
> > > compiler?
> >
> > My idea is to implement compile time verification in dtc, so I guess
> > it
> > will be more like the latter. Since dts is what dtc can already parse,
> > my plan is to keep the schemas in spirit to dts, just
> > modifying/extending it to allow specifying bindings with them, rather
> > than static values.
> >
> > Best regards,
> > Tomasz
>
> It is possible to add some-damn XML DTD parsing and
> rule glomming even in DTC if that is what is wanted.

IMHO it's more natural to describe device tree bindings using dts-like
format, if not just because of tools already existing, then at least from
readability point of view.

> I think it will be more an issue of expressability.
> That is, how can the desired style of rules be most
> eloquently expressed, internalized and applied?
>
> That will be the current challenge first.

Yes, it will and it is already.

There is no problem with simple rules, such as required or optional
properties with predefined names, this is pretty obvious.

Things start to become fun when you get to bindings like regulators or
clocks, when part of the binding is defined on generic level (-supply,
clocks, clock-names properties) and remaining part is specific to device
(XXX in XXX-supply, count and order of clocks and clock-names, strings
allowed in clock-names property). This kind of inheritance is likely to be
the biggest troublemaker.

Best regards,
Tomasz

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/