Wolfram Sang: Handling of devicetree bindings

July 13, 2013

Participants: Wolfram Sang, Guenter Roeck, Linus Walleij, Jonathan Corbet, Greg KH, Mark Brown, David Woodhouse.

People tagged: (none)

See also Jon Corbet's excellent LWN articles entitled “Device tree troubles” and “Device trees as ABI”. (If you cannot see them due to not being an LWN subscriber, it is time for you to get a subscription!)

Wolfram Sang is concerned that device tree bindings are trivial to add, but once added must be supported forever, even if they are later deprecated or superseded. Adding new binding should therefore be done carefully, or better yet, avoided. Unfortunately, new bindings are currently added in a distributed fashion by maintainers who do not have full understanding of the system. Wolfram would like some rules of thumb for when and how bindings should be accepted. For example, should it be required that bindings be accepted before the first driver that uses them?

Guenter Roeck doesn't like the idea of “holding the driver hostage”, but asks what he can do if he proposes a new binding and doesn't get any feedback. He suggests that a device-tree co-maintainer or bindings reviewer might be helpful, but is not confident that enough knowledgeable people can break free time for this task. Wolfram suggests that Guenter could learn on the job, to which Guenter replied that he might start by monitoring the devicetree-discuss list. Linus Walleij does not have confidence in much good feedback from devicetree-discuss given its current organization, and notes that device tree used to be covered by an IEEE standard, but now it was up to the Linux community. Jonathan Corbet noted that an LKS discussion would not be much help unless there was differences of opinion among the clueful as to how device-tree bindings should be handled. If not, he believes that good documentation would be a better step forward (and even offered to help a bit with it). Greg KH also called for documentation, saying that it would make his maintainer job easier if he had some idea what the device-tree rules actually were. Linus Walleij pointed to Documentation/devicetree/usage-model.txt, but said that more was needed, calling out some complexities of the device-tree syntax and semantics. Wolfram Sang believes that a list of “DON'Ts” would be the most valuable. Grant Likely believes that this topic should be part of the ARM maintainers summit, with a goal of producing a short guidance statement for all maintainers who are responsible for approving and merging new bindings. Longer term, Mark Brown said that one problem with the devicetree-discuss list was that full patchsets get CCed there, so that people reading the list have to wade through quite a bit of irrelevant email to find the added device-tree bindings.

David Woodhouse argued that device-tree bindings should be OS-agnostic, and at the very least Linux-version-agnostic. He has heard rumors of people who must keep their device trees in sync with kernel versions, which makes him very sad. Linus Walleij responded with a cautionary tale about the different perspectives of embedded-systems manufacturers and the Linux kernel community, calling out this ELC 2013 presentation as one example of an attempt to standardize the typically home-brew nature of embedded images.