Historically the ARM Linux port was driven by board files, where all the information necessary to run on a particular SoC was contained within the kernel. With an explosion of SoC variations, and the churn necessary to support it, the ARM Linux community turned to devicetree as the solution to all of our problems. Unfortunately, the churn has moved to bindings and drivers, introducing new problems. The rate at which bindings are added means many do not get the thorough review they require, and bindings are entering the kernel before the general case is understood, often requiring incompatible boot ABI changes. This talk will give an overview of these problems, the steps currently being taken to mitigate them, and the direction we must take going forward to ensure long-term compatibility of bindings and the kernel.