Lines Matching +full:i2c +full:- +full:tegra
1 .. SPDX-License-Identifier: GPL-2.0
39 incompatible, bindings for i2c busses that came about because the new
40 binding was created without first investigating how i2c devices were
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 ---------------------------
108 machine-specific fixups.
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
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
259 device tree for the NVIDIA Tegra board::
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";
301 i2c@7000c000 {
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>;
323 At .init_machine() time, Tegra board support code will need to look at
330 devices, but the codec@1a is an i2c device, and the sound node
350 same hierarchy is also found in the DT, where I2C device nodes only
351 ever appear as children of an I2C bus node. Ditto for SPI, MDIO, USB,
367 In the Tegra example, this accounts for the /soc and /sound nodes, but
371 driver .probe() time. So, an i2c bus device driver will register a
378 and register platform_devices for /soc/interrupt-controller, /soc/serial,
379 /soc/i2s, and /soc/i2c in its .probe() hook. Easy, right?
386 will also get its child nodes registered. In the Tegra case, the code
395 "simple-bus" is defined in the Devicetree Specification as a property
397 could be written to just assume simple-bus compatible nodes will
401 [Need to add discussion of adding i2c/spi/etc child devices]
404 ------------------------