Lines Matching +full:soc +full:- +full:level

1 .. SPDX-License-Identifier: GPL-2.0
44 ----------
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,
66 existing non-DT aware firmware.
71 out of mainline (nios) have some level of DT support.
74 -------------
78 2.1 High Level View
79 -------------------
88 per-machine hard coded selections.
101 ---------------------------
108 machine-specific fixups.
112 CPU or SoC. On ARM for example, setup_arch() in
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
133 specific (exact board) to least specific (SoC family).
137 cautioned about doing so at the board level since there is typically a
138 high level of change from one board to another, even within the same
140 board claims to be compatible with another. For the top level, it is
160 if they all use the same SoC, or same family of SoCs. However,
175 matches on "ti,omap3-beagleboard".
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 ---------------------
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
263 #address-cells = <1>;
264 #size-cells = <1>;
265 interrupt-parent = <&intc>;
275 soc {
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>;
317 compatible = "nvidia,harmony-sound";
318 i2s-controller = <&i2s1>;
319 i2s-codec = <&wm8903>;
329 considered a device). The children of the /soc node are memory mapped
367 In the Tegra example, this accounts for the /soc and /sound nodes, but
368 what about the children of the SoC node? Shouldn't they be registered
375 SoC node and simply registers platform_devices for each of its
376 children. The board support code would allocate and register an SoC
377 device, a (theoretical) SoC device driver could bind to the SoC device,
378 and register platform_devices for /soc/interrupt-controller, /soc/serial,
379 /soc/i2s, and /soc/i2c in its .probe() hook. Easy, right?
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,amba-primecell", then