Lines Matching +full:at +full:- +full:compatible
1 .. SPDX-License-Identifier: GPL-2.0
13 at devicetree.org\ [1]_.
44 ----------
48 Device Tree to discover the topology of the hardware at runtime, and
56 In 2005, when PowerPC Linux began a major cleanup and to merge 32-bit
57 and 64-bit support, the decision was made to require DT support on all
61 blob without requiring a real Open Firmware implementation. U-Boot,
63 Device Tree Binary (dtb) and to modify a dtb at boot time. DT was
66 existing non-DT aware firmware.
69 all architectures. At the time of this writing, 6 mainlined
74 -------------
79 -------------------
88 per-machine hard coded selections.
101 ---------------------------
108 machine-specific fixups.
116 data. It determines the best match by looking at the 'compatible'
121 The 'compatible' property contains a sorted list of strings starting
123 boards it is compatible with sorted from most compatible to least. For
124 example, the root compatible properties for the TI BeagleBoard and its
127 compatible = "ti,omap3-beagleboard", "ti,omap3450", "ti,omap3";
128 compatible = "ti,omap3-beagleboard-xm", "ti,omap3450", "ti,omap3";
130 Where "ti,omap3-beagleboard-xm" specifies the exact model, it also
131 claims that it compatible with the OMAP 3450 SoC, and the omap3 family
137 cautioned about doing so at the board level since there is typically a
140 board claims to be compatible with another. For the top level, it is
142 compatible with another. The notable exception would be when one
146 One more note on compatible values. Any string used in a compatible
148 documentation for compatible strings in Documentation/devicetree/bindings.
151 any of the dt_compat list entries appear in the compatible property.
154 setup_machine_fdt() returns the 'most compatible' machine_desc based
155 on which entry in the compatible property each machine_desc matches
168 Instead, the compatible list allows a generic machine_desc to provide
170 compatible" values in the dt_compat list. In the example above,
175 matches on "ti,omap3-beagleboard".
180 compatible list, and probably should be avoided for new architecture
184 -------------------------
195 initrd-start = <0xc8000000>;
196 initrd-end = <0xc8200000>;
199 The bootargs property contains the kernel arguments, and the initrd-*
201 initrd-end is the first address after the initrd image, so this doesn't
204 platform-specific configuration data.
221 ---------------------
224 way. At some point in this process, unflatten_device_tree() is called
226 This is also when machine-specific setup hooks will get called, like
232 As can be guessed by the names, .init_early() is used for any machine-
245 registering it en-masse in .init_machine(). When DT is used, then
255 platform devices roughly correspond to device nodes at the root of the
262 compatible = "nvidia,harmony", "nvidia,tegra20";
263 #address-cells = <1>;
264 #size-cells = <1>;
265 interrupt-parent = <&intc>;
276 compatible = "nvidia,tegra20-soc", "simple-bus";
277 #address-cells = <1>;
278 #size-cells = <1>;
281 intc: interrupt-controller@50041000 {
282 compatible = "nvidia,tegra20-gic";
283 interrupt-controller;
284 #interrupt-cells = <1>;
289 compatible = "nvidia,tegra20-uart";
295 compatible = "nvidia,tegra20-i2s";
302 compatible = "nvidia,tegra20-i2c";
303 #address-cells = <1>;
304 #size-cells = <0>;
309 compatible = "wlf,wm8903";
317 compatible = "nvidia,harmony-sound";
318 i2s-controller = <&i2s1>;
319 i2s-codec = <&wm8903>;
323 At .init_machine() time, Tegra board support code will need to look at
325 However, looking at the tree, it is not immediately obvious what kind
327 at all. The /chosen, /aliases, and /memory nodes are informational
336 The trick is that the kernel starts at the root of the tree and looks
337 for nodes that have a 'compatible' property. First, it is generally
338 assumed that any node with a 'compatible' property represents a device
339 of some kind, and second, it can be assumed that any node at the root
354 later), which will happily live at the base of the Linux /sys/devices
355 tree. Therefore, if a DT node is at the root of the tree, then it
359 to kick off discovery of devices at the root of the tree. The
370 is for child devices to be registered by the parent's device driver at
378 and register platform_devices for /soc/interrupt-controller, /soc/serial,
395 "simple-bus" is defined in the Devicetree Specification as a property
397 could be written to just assume simple-bus compatible nodes will
404 ------------------------
418 be too invasive. If a node is compatible with "arm,primecell", then