Lines Matching +full:soc +full:- +full:specific
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.
74 -------------
79 -------------------
88 per-machine hard coded selections.
101 ---------------------------
103 specific machine. In a perfect world, the specific platform shouldn't
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).
160 if they all use the same SoC, or same family of SoCs. However,
161 invariably there will be some exceptions where a specific board will
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-
233 specific setup that needs to be executed early in the boot process,
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
352 etc. The only devices which do not require a specific type of parent
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 ------------------------