Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame^] | 1 | .. SPDX-License-Identifier: GPL-2.0 |
| 2 | |
| 3 | =================== |
| 4 | Devicetree (DT) ABI |
| 5 | =================== |
| 6 | |
| 7 | I. Regarding stable bindings/ABI, we quote from the 2013 ARM mini-summit |
| 8 | summary document: |
| 9 | |
| 10 | "That still leaves the question of, what does a stable binding look |
| 11 | like? Certainly a stable binding means that a newer kernel will not |
| 12 | break on an older device tree, but that doesn't mean the binding is |
| 13 | frozen for all time. Grant said there are ways to change bindings that |
| 14 | don't result in breakage. For instance, if a new property is added, |
| 15 | then default to the previous behaviour if it is missing. If a binding |
| 16 | truly needs an incompatible change, then change the compatible string |
| 17 | at the same time. The driver can bind against both the old and the |
| 18 | new. These guidelines aren't new, but they desperately need to be |
| 19 | documented." |
| 20 | |
| 21 | II. General binding rules |
| 22 | |
| 23 | 1) Maintainers, don't let perfect be the enemy of good. Don't hold up a |
| 24 | binding because it isn't perfect. |
| 25 | |
| 26 | 2) Use specific compatible strings so that if we need to add a feature (DMA) |
| 27 | in the future, we can create a new compatible string. See I. |
| 28 | |
| 29 | 3) Bindings can be augmented, but the driver shouldn't break when given |
| 30 | the old binding. ie. add additional properties, but don't change the |
| 31 | meaning of an existing property. For drivers, default to the original |
| 32 | behaviour when a newly added property is missing. |
| 33 | |
| 34 | 4) Don't submit bindings for staging or unstable. That will be decided by |
| 35 | the devicetree maintainers *after* discussion on the mailinglist. |
| 36 | |
| 37 | III. Notes |
| 38 | |
| 39 | 1) This document is intended as a general familiarization with the process as |
| 40 | decided at the 2013 Kernel Summit. When in doubt, the current word of the |
| 41 | devicetree maintainers overrules this document. In that situation, a patch |
| 42 | updating this document would be appreciated. |