1724ba675SRob Herring#include <dt-bindings/pinctrl/bcm2835.h>
2724ba675SRob Herring#include <dt-bindings/clock/bcm2835.h>
3724ba675SRob Herring#include <dt-bindings/clock/bcm2835-aux.h>
4724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
5724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h>
6724ba675SRob Herring#include <dt-bindings/soc/bcm2835-pm.h>
7724ba675SRob Herring
8724ba675SRob Herring/* firmware-provided startup stubs live here, where the secondary CPUs are
9724ba675SRob Herring * spinning.
10724ba675SRob Herring */
11724ba675SRob Herring/memreserve/ 0x00000000 0x00001000;
12724ba675SRob Herring
13724ba675SRob Herring/* This include file covers the common peripherals and configuration between
14724ba675SRob Herring * bcm2835 and bcm2836 implementations, leaving the CPU configuration to
15724ba675SRob Herring * bcm2835.dtsi and bcm2836.dtsi.
16724ba675SRob Herring */
17724ba675SRob Herring
18724ba675SRob Herring/ {
19724ba675SRob Herring	compatible = "brcm,bcm2835";
20724ba675SRob Herring	model = "BCM2835";
21724ba675SRob Herring	#address-cells = <1>;
22724ba675SRob Herring	#size-cells = <1>;
23724ba675SRob Herring
24724ba675SRob Herring	aliases {
25724ba675SRob Herring		serial0 = &uart0;
26724ba675SRob Herring		serial1 = &uart1;
27724ba675SRob Herring	};
28724ba675SRob Herring
29724ba675SRob Herring	chosen {
30724ba675SRob Herring		stdout-path = "serial0:115200n8";
31724ba675SRob Herring	};
32724ba675SRob Herring
33724ba675SRob Herring	rmem: reserved-memory {
34724ba675SRob Herring		#address-cells = <1>;
35724ba675SRob Herring		#size-cells = <1>;
36724ba675SRob Herring		ranges;
37724ba675SRob Herring
38724ba675SRob Herring		cma: linux,cma {
39724ba675SRob Herring			compatible = "shared-dma-pool";
40724ba675SRob Herring			size = <0x4000000>; /* 64MB */
41724ba675SRob Herring			reusable;
42724ba675SRob Herring			linux,cma-default;
43724ba675SRob Herring		};
44724ba675SRob Herring	};
45724ba675SRob Herring
46724ba675SRob Herring	thermal-zones {
47724ba675SRob Herring		cpu_thermal: cpu-thermal {
48724ba675SRob Herring			polling-delay-passive = <0>;
49724ba675SRob Herring			polling-delay = <1000>;
50724ba675SRob Herring
51724ba675SRob Herring			trips {
52724ba675SRob Herring				cpu-crit {
53724ba675SRob Herring					temperature = <90000>;
54724ba675SRob Herring					hysteresis = <0>;
55724ba675SRob Herring					type = "critical";
56724ba675SRob Herring				};
57724ba675SRob Herring			};
58724ba675SRob Herring
59724ba675SRob Herring			cooling-maps {
60724ba675SRob Herring			};
61724ba675SRob Herring		};
62724ba675SRob Herring	};
63724ba675SRob Herring
64724ba675SRob Herring	soc {
65724ba675SRob Herring		compatible = "simple-bus";
66724ba675SRob Herring		#address-cells = <1>;
67724ba675SRob Herring		#size-cells = <1>;
68724ba675SRob Herring
69724ba675SRob Herring		system_timer: timer@7e003000 {
70724ba675SRob Herring			compatible = "brcm,bcm2835-system-timer";
71724ba675SRob Herring			reg = <0x7e003000 0x1000>;
72724ba675SRob Herring			interrupts = <1 0>, <1 1>, <1 2>, <1 3>;
73724ba675SRob Herring			/* This could be a reference to BCM2835_CLOCK_TIMER,
74724ba675SRob Herring			 * but we don't have the driver using the common clock
75724ba675SRob Herring			 * support yet.
76724ba675SRob Herring			 */
77724ba675SRob Herring			clock-frequency = <1000000>;
78724ba675SRob Herring		};
79724ba675SRob Herring
80724ba675SRob Herring		txp: txp@7e004000 {
81724ba675SRob Herring			compatible = "brcm,bcm2835-txp";
82724ba675SRob Herring			reg = <0x7e004000 0x20>;
83724ba675SRob Herring			interrupts = <1 11>;
84724ba675SRob Herring		};
85724ba675SRob Herring
86724ba675SRob Herring		clocks: cprman@7e101000 {
87724ba675SRob Herring			compatible = "brcm,bcm2835-cprman";
88724ba675SRob Herring			#clock-cells = <1>;
89724ba675SRob Herring			reg = <0x7e101000 0x2000>;
90724ba675SRob Herring
91724ba675SRob Herring			/* CPRMAN derives almost everything from the
92724ba675SRob Herring			 * platform's oscillator.  However, the DSI
93724ba675SRob Herring			 * pixel clocks come from the DSI analog PHY.
94724ba675SRob Herring			 */
95724ba675SRob Herring			clocks = <&clk_osc>,
96724ba675SRob Herring				<&dsi0 0>, <&dsi0 1>, <&dsi0 2>,
97724ba675SRob Herring				<&dsi1 0>, <&dsi1 1>, <&dsi1 2>;
98724ba675SRob Herring		};
99724ba675SRob Herring
100724ba675SRob Herring		mailbox: mailbox@7e00b880 {
101724ba675SRob Herring			compatible = "brcm,bcm2835-mbox";
102724ba675SRob Herring			reg = <0x7e00b880 0x40>;
103724ba675SRob Herring			interrupts = <0 1>;
104724ba675SRob Herring			#mbox-cells = <0>;
105724ba675SRob Herring		};
106724ba675SRob Herring
107724ba675SRob Herring		gpio: gpio@7e200000 {
108724ba675SRob Herring			compatible = "brcm,bcm2835-gpio";
109724ba675SRob Herring			reg = <0x7e200000 0xb4>;
110724ba675SRob Herring			/*
111724ba675SRob Herring			 * The GPIO IP block is designed for 3 banks of GPIOs.
112724ba675SRob Herring			 * Each bank has a GPIO interrupt for itself.
113724ba675SRob Herring			 * There is an overall "any bank" interrupt.
114724ba675SRob Herring			 * In order, these are GIC interrupts 17, 18, 19, 20.
115724ba675SRob Herring			 * Since the BCM2835 only has 2 banks, the 2nd bank
116724ba675SRob Herring			 * interrupt output appears to be mirrored onto the
117724ba675SRob Herring			 * 3rd bank's interrupt signal.
118724ba675SRob Herring			 * So, a bank0 interrupt shows up on 17, 20, and
119724ba675SRob Herring			 * a bank1 interrupt shows up on 18, 19, 20!
120724ba675SRob Herring			 */
121724ba675SRob Herring			interrupts = <2 17>, <2 18>, <2 19>, <2 20>;
122724ba675SRob Herring
123724ba675SRob Herring			gpio-controller;
124724ba675SRob Herring			#gpio-cells = <2>;
125724ba675SRob Herring
126724ba675SRob Herring			interrupt-controller;
127724ba675SRob Herring			#interrupt-cells = <2>;
128724ba675SRob Herring
129724ba675SRob Herring			gpio-ranges = <&gpio 0 0 54>;
130724ba675SRob Herring
131724ba675SRob Herring			/* Defines common pin muxing groups
132724ba675SRob Herring			 *
133724ba675SRob Herring			 * While each pin can have its mux selected
134724ba675SRob Herring			 * for various functions individually, some
135724ba675SRob Herring			 * groups only make sense to switch to a
136724ba675SRob Herring			 * particular function together.
137724ba675SRob Herring			 */
138724ba675SRob Herring			dpi_gpio0: dpi-gpio0 {
139724ba675SRob Herring				brcm,pins = <0 1 2 3 4 5 6 7 8 9 10 11
140724ba675SRob Herring					     12 13 14 15 16 17 18 19
141724ba675SRob Herring					     20 21 22 23 24 25 26 27>;
142724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT2>;
143724ba675SRob Herring			};
144724ba675SRob Herring			emmc_gpio22: emmc-gpio22 {
145724ba675SRob Herring				brcm,pins = <22 23 24 25 26 27>;
146724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT3>;
147724ba675SRob Herring			};
148724ba675SRob Herring			emmc_gpio34: emmc-gpio34 {
149724ba675SRob Herring				brcm,pins = <34 35 36 37 38 39>;
150724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT3>;
151724ba675SRob Herring				brcm,pull = <BCM2835_PUD_OFF
152724ba675SRob Herring					     BCM2835_PUD_UP
153724ba675SRob Herring					     BCM2835_PUD_UP
154724ba675SRob Herring					     BCM2835_PUD_UP
155724ba675SRob Herring					     BCM2835_PUD_UP
156724ba675SRob Herring					     BCM2835_PUD_UP>;
157724ba675SRob Herring			};
158724ba675SRob Herring			emmc_gpio48: emmc-gpio48 {
159724ba675SRob Herring				brcm,pins = <48 49 50 51 52 53>;
160724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT3>;
161724ba675SRob Herring			};
162724ba675SRob Herring
163724ba675SRob Herring			gpclk0_gpio4: gpclk0-gpio4 {
164724ba675SRob Herring				brcm,pins = <4>;
165724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
166724ba675SRob Herring			};
167724ba675SRob Herring			gpclk1_gpio5: gpclk1-gpio5 {
168724ba675SRob Herring				brcm,pins = <5>;
169724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
170724ba675SRob Herring			};
171724ba675SRob Herring			gpclk1_gpio42: gpclk1-gpio42 {
172724ba675SRob Herring				brcm,pins = <42>;
173724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
174724ba675SRob Herring			};
175724ba675SRob Herring			gpclk1_gpio44: gpclk1-gpio44 {
176724ba675SRob Herring				brcm,pins = <44>;
177724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
178724ba675SRob Herring			};
179724ba675SRob Herring			gpclk2_gpio6: gpclk2-gpio6 {
180724ba675SRob Herring				brcm,pins = <6>;
181724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
182724ba675SRob Herring			};
183724ba675SRob Herring			gpclk2_gpio43: gpclk2-gpio43 {
184724ba675SRob Herring				brcm,pins = <43>;
185724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
186724ba675SRob Herring				brcm,pull = <BCM2835_PUD_OFF>;
187724ba675SRob Herring			};
188724ba675SRob Herring
189724ba675SRob Herring			i2c0_gpio0: i2c0-gpio0 {
190724ba675SRob Herring				brcm,pins = <0 1>;
191724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
192724ba675SRob Herring			};
193724ba675SRob Herring			i2c0_gpio28: i2c0-gpio28 {
194724ba675SRob Herring				brcm,pins = <28 29>;
195724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
196724ba675SRob Herring			};
197724ba675SRob Herring			i2c0_gpio44: i2c0-gpio44 {
198724ba675SRob Herring				brcm,pins = <44 45>;
199724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT1>;
200724ba675SRob Herring			};
201724ba675SRob Herring			i2c1_gpio2: i2c1-gpio2 {
202724ba675SRob Herring				brcm,pins = <2 3>;
203724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
204724ba675SRob Herring			};
205724ba675SRob Herring			i2c1_gpio44: i2c1-gpio44 {
206724ba675SRob Herring				brcm,pins = <44 45>;
207724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT2>;
208724ba675SRob Herring			};
209724ba675SRob Herring
210724ba675SRob Herring			jtag_gpio22: jtag-gpio22 {
211724ba675SRob Herring				brcm,pins = <22 23 24 25 26 27>;
212724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT4>;
213724ba675SRob Herring			};
214724ba675SRob Herring
215724ba675SRob Herring			pcm_gpio18: pcm-gpio18 {
216724ba675SRob Herring				brcm,pins = <18 19 20 21>;
217724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
218724ba675SRob Herring			};
219724ba675SRob Herring			pcm_gpio28: pcm-gpio28 {
220724ba675SRob Herring				brcm,pins = <28 29 30 31>;
221724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT2>;
222724ba675SRob Herring			};
223724ba675SRob Herring
224724ba675SRob Herring			sdhost_gpio48: sdhost-gpio48 {
225724ba675SRob Herring				brcm,pins = <48 49 50 51 52 53>;
226724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
227724ba675SRob Herring			};
228724ba675SRob Herring
229724ba675SRob Herring			spi0_gpio7: spi0-gpio7 {
230724ba675SRob Herring				brcm,pins = <7 8 9 10 11>;
231724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
232724ba675SRob Herring			};
233724ba675SRob Herring			spi0_gpio35: spi0-gpio35 {
234724ba675SRob Herring				brcm,pins = <35 36 37 38 39>;
235724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
236724ba675SRob Herring			};
237724ba675SRob Herring			spi1_gpio16: spi1-gpio16 {
238724ba675SRob Herring				brcm,pins = <16 17 18 19 20 21>;
239724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT4>;
240724ba675SRob Herring			};
241724ba675SRob Herring			spi2_gpio40: spi2-gpio40 {
242724ba675SRob Herring				brcm,pins = <40 41 42 43 44 45>;
243724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT4>;
244724ba675SRob Herring			};
245724ba675SRob Herring
246724ba675SRob Herring			uart0_gpio14: uart0-gpio14 {
247724ba675SRob Herring				brcm,pins = <14 15>;
248724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT0>;
249724ba675SRob Herring			};
250724ba675SRob Herring			/* Separate from the uart0_gpio14 group
251724ba675SRob Herring			 * because it conflicts with spi1_gpio16, and
252724ba675SRob Herring			 * people often run uart0 on the two pins
253724ba675SRob Herring			 * without flow control.
254724ba675SRob Herring			 */
255724ba675SRob Herring			uart0_ctsrts_gpio16: uart0-ctsrts-gpio16 {
256724ba675SRob Herring				brcm,pins = <16 17>;
257724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT3>;
258724ba675SRob Herring			};
259724ba675SRob Herring			uart0_ctsrts_gpio30: uart0-ctsrts-gpio30 {
260724ba675SRob Herring				brcm,pins = <30 31>;
261724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT3>;
262724ba675SRob Herring				brcm,pull = <BCM2835_PUD_UP BCM2835_PUD_OFF>;
263724ba675SRob Herring			};
264724ba675SRob Herring			uart0_gpio32: uart0-gpio32 {
265724ba675SRob Herring				brcm,pins = <32 33>;
266724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT3>;
267724ba675SRob Herring				brcm,pull = <BCM2835_PUD_OFF BCM2835_PUD_UP>;
268724ba675SRob Herring			};
269724ba675SRob Herring			uart0_gpio36: uart0-gpio36 {
270724ba675SRob Herring				brcm,pins = <36 37>;
271724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT2>;
272724ba675SRob Herring			};
273724ba675SRob Herring			uart0_ctsrts_gpio38: uart0-ctsrts-gpio38 {
274724ba675SRob Herring				brcm,pins = <38 39>;
275724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT2>;
276724ba675SRob Herring			};
277724ba675SRob Herring
278724ba675SRob Herring			uart1_gpio14: uart1-gpio14 {
279724ba675SRob Herring				brcm,pins = <14 15>;
280724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT5>;
281724ba675SRob Herring			};
282724ba675SRob Herring			uart1_ctsrts_gpio16: uart1-ctsrts-gpio16 {
283724ba675SRob Herring				brcm,pins = <16 17>;
284724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT5>;
285724ba675SRob Herring			};
286724ba675SRob Herring			uart1_gpio32: uart1-gpio32 {
287724ba675SRob Herring				brcm,pins = <32 33>;
288724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT5>;
289724ba675SRob Herring			};
290724ba675SRob Herring			uart1_ctsrts_gpio30: uart1-ctsrts-gpio30 {
291724ba675SRob Herring				brcm,pins = <30 31>;
292724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT5>;
293724ba675SRob Herring			};
294724ba675SRob Herring			uart1_gpio40: uart1-gpio40 {
295724ba675SRob Herring				brcm,pins = <40 41>;
296724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT5>;
297724ba675SRob Herring			};
298724ba675SRob Herring			uart1_ctsrts_gpio42: uart1-ctsrts-gpio42 {
299724ba675SRob Herring				brcm,pins = <42 43>;
300724ba675SRob Herring				brcm,function = <BCM2835_FSEL_ALT5>;
301724ba675SRob Herring			};
302724ba675SRob Herring		};
303724ba675SRob Herring
304724ba675SRob Herring		uart0: serial@7e201000 {
305724ba675SRob Herring			compatible = "arm,pl011", "arm,primecell";
306724ba675SRob Herring			reg = <0x7e201000 0x200>;
307724ba675SRob Herring			interrupts = <2 25>;
308724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_UART>,
309724ba675SRob Herring				 <&clocks BCM2835_CLOCK_VPU>;
310724ba675SRob Herring			clock-names = "uartclk", "apb_pclk";
311724ba675SRob Herring			arm,primecell-periphid = <0x00241011>;
312724ba675SRob Herring		};
313724ba675SRob Herring
314724ba675SRob Herring		sdhost: mmc@7e202000 {
315724ba675SRob Herring			compatible = "brcm,bcm2835-sdhost";
316724ba675SRob Herring			reg = <0x7e202000 0x100>;
317724ba675SRob Herring			interrupts = <2 24>;
318724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_VPU>;
319724ba675SRob Herring			status = "disabled";
320724ba675SRob Herring		};
321724ba675SRob Herring
322724ba675SRob Herring		i2s: i2s@7e203000 {
323724ba675SRob Herring			compatible = "brcm,bcm2835-i2s";
324724ba675SRob Herring			reg = <0x7e203000 0x24>;
325724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_PCM>;
326724ba675SRob Herring			status = "disabled";
327724ba675SRob Herring		};
328724ba675SRob Herring
329724ba675SRob Herring		spi: spi@7e204000 {
330724ba675SRob Herring			compatible = "brcm,bcm2835-spi";
331724ba675SRob Herring			reg = <0x7e204000 0x200>;
332724ba675SRob Herring			interrupts = <2 22>;
333724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_VPU>;
334724ba675SRob Herring			#address-cells = <1>;
335724ba675SRob Herring			#size-cells = <0>;
336724ba675SRob Herring			status = "disabled";
337724ba675SRob Herring		};
338724ba675SRob Herring
339724ba675SRob Herring		i2c0: i2c@7e205000 {
340724ba675SRob Herring			compatible = "brcm,bcm2835-i2c";
341724ba675SRob Herring			reg = <0x7e205000 0x200>;
342724ba675SRob Herring			interrupts = <2 21>;
343724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_VPU>;
344724ba675SRob Herring			#address-cells = <1>;
345724ba675SRob Herring			#size-cells = <0>;
346724ba675SRob Herring			status = "disabled";
347724ba675SRob Herring		};
348724ba675SRob Herring
349724ba675SRob Herring		dpi: dpi@7e208000 {
350724ba675SRob Herring			compatible = "brcm,bcm2835-dpi";
351724ba675SRob Herring			reg = <0x7e208000 0x8c>;
352724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_VPU>,
353724ba675SRob Herring				 <&clocks BCM2835_CLOCK_DPI>;
354724ba675SRob Herring			clock-names = "core", "pixel";
355724ba675SRob Herring			status = "disabled";
356724ba675SRob Herring		};
357724ba675SRob Herring
358724ba675SRob Herring		dsi0: dsi@7e209000 {
359724ba675SRob Herring			compatible = "brcm,bcm2835-dsi0";
360724ba675SRob Herring			reg = <0x7e209000 0x78>;
361724ba675SRob Herring			interrupts = <2 4>;
362724ba675SRob Herring			#address-cells = <1>;
363724ba675SRob Herring			#size-cells = <0>;
364724ba675SRob Herring			#clock-cells = <1>;
365724ba675SRob Herring
366724ba675SRob Herring			clocks = <&clocks BCM2835_PLLA_DSI0>,
367724ba675SRob Herring				 <&clocks BCM2835_CLOCK_DSI0E>,
368724ba675SRob Herring				 <&clocks BCM2835_CLOCK_DSI0P>;
369724ba675SRob Herring			clock-names = "phy", "escape", "pixel";
370724ba675SRob Herring
371724ba675SRob Herring			clock-output-names = "dsi0_byte",
372724ba675SRob Herring					     "dsi0_ddr2",
373724ba675SRob Herring					     "dsi0_ddr";
374724ba675SRob Herring
375724ba675SRob Herring			status = "disabled";
376724ba675SRob Herring		};
377724ba675SRob Herring
378724ba675SRob Herring		aux: aux@7e215000 {
379724ba675SRob Herring			compatible = "brcm,bcm2835-aux";
380724ba675SRob Herring			#clock-cells = <1>;
381724ba675SRob Herring			reg = <0x7e215000 0x8>;
382724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_VPU>;
383724ba675SRob Herring		};
384724ba675SRob Herring
385724ba675SRob Herring		uart1: serial@7e215040 {
386724ba675SRob Herring			compatible = "brcm,bcm2835-aux-uart";
387724ba675SRob Herring			reg = <0x7e215040 0x40>;
388724ba675SRob Herring			interrupts = <1 29>;
389724ba675SRob Herring			clocks = <&aux BCM2835_AUX_CLOCK_UART>;
390724ba675SRob Herring			status = "disabled";
391724ba675SRob Herring		};
392724ba675SRob Herring
393724ba675SRob Herring		spi1: spi@7e215080 {
394724ba675SRob Herring			compatible = "brcm,bcm2835-aux-spi";
395724ba675SRob Herring			reg = <0x7e215080 0x40>;
396724ba675SRob Herring			interrupts = <1 29>;
397724ba675SRob Herring			clocks = <&aux BCM2835_AUX_CLOCK_SPI1>;
398724ba675SRob Herring			#address-cells = <1>;
399724ba675SRob Herring			#size-cells = <0>;
400724ba675SRob Herring			status = "disabled";
401724ba675SRob Herring		};
402724ba675SRob Herring
403724ba675SRob Herring		spi2: spi@7e2150c0 {
404724ba675SRob Herring			compatible = "brcm,bcm2835-aux-spi";
405724ba675SRob Herring			reg = <0x7e2150c0 0x40>;
406724ba675SRob Herring			interrupts = <1 29>;
407724ba675SRob Herring			clocks = <&aux BCM2835_AUX_CLOCK_SPI2>;
408724ba675SRob Herring			#address-cells = <1>;
409724ba675SRob Herring			#size-cells = <0>;
410724ba675SRob Herring			status = "disabled";
411724ba675SRob Herring		};
412724ba675SRob Herring
413724ba675SRob Herring		pwm: pwm@7e20c000 {
414724ba675SRob Herring			compatible = "brcm,bcm2835-pwm";
415724ba675SRob Herring			reg = <0x7e20c000 0x28>;
416724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_PWM>;
417724ba675SRob Herring			assigned-clocks = <&clocks BCM2835_CLOCK_PWM>;
418724ba675SRob Herring			assigned-clock-rates = <10000000>;
419*81b87589SStefan Wahren			#pwm-cells = <3>;
420724ba675SRob Herring			status = "disabled";
421724ba675SRob Herring		};
422724ba675SRob Herring
423724ba675SRob Herring		sdhci: mmc@7e300000 {
424724ba675SRob Herring			compatible = "brcm,bcm2835-sdhci";
425724ba675SRob Herring			reg = <0x7e300000 0x100>;
426724ba675SRob Herring			interrupts = <2 30>;
427724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_EMMC>;
428724ba675SRob Herring			status = "disabled";
429724ba675SRob Herring		};
430724ba675SRob Herring
431724ba675SRob Herring		hvs@7e400000 {
432724ba675SRob Herring			compatible = "brcm,bcm2835-hvs";
433724ba675SRob Herring			reg = <0x7e400000 0x6000>;
434724ba675SRob Herring			interrupts = <2 1>;
435724ba675SRob Herring		};
436724ba675SRob Herring
437724ba675SRob Herring		dsi1: dsi@7e700000 {
438724ba675SRob Herring			compatible = "brcm,bcm2835-dsi1";
439724ba675SRob Herring			reg = <0x7e700000 0x8c>;
440724ba675SRob Herring			interrupts = <2 12>;
441724ba675SRob Herring			#address-cells = <1>;
442724ba675SRob Herring			#size-cells = <0>;
443724ba675SRob Herring			#clock-cells = <1>;
444724ba675SRob Herring
445724ba675SRob Herring			clocks = <&clocks BCM2835_PLLD_DSI1>,
446724ba675SRob Herring				 <&clocks BCM2835_CLOCK_DSI1E>,
447724ba675SRob Herring				 <&clocks BCM2835_CLOCK_DSI1P>;
448724ba675SRob Herring			clock-names = "phy", "escape", "pixel";
449724ba675SRob Herring
450724ba675SRob Herring			clock-output-names = "dsi1_byte",
451724ba675SRob Herring					     "dsi1_ddr2",
452724ba675SRob Herring					     "dsi1_ddr";
453724ba675SRob Herring
454724ba675SRob Herring			status = "disabled";
455724ba675SRob Herring		};
456724ba675SRob Herring
457724ba675SRob Herring		i2c1: i2c@7e804000 {
458724ba675SRob Herring			compatible = "brcm,bcm2835-i2c";
459724ba675SRob Herring			reg = <0x7e804000 0x1000>;
460724ba675SRob Herring			interrupts = <2 21>;
461724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_VPU>;
462724ba675SRob Herring			#address-cells = <1>;
463724ba675SRob Herring			#size-cells = <0>;
464724ba675SRob Herring			status = "disabled";
465724ba675SRob Herring		};
466724ba675SRob Herring
467724ba675SRob Herring		usb: usb@7e980000 {
468724ba675SRob Herring			compatible = "brcm,bcm2835-usb";
469724ba675SRob Herring			reg = <0x7e980000 0x10000>;
470724ba675SRob Herring			interrupts = <1 9>;
471724ba675SRob Herring			#address-cells = <1>;
472724ba675SRob Herring			#size-cells = <0>;
473724ba675SRob Herring			clocks = <&clk_usb>;
474724ba675SRob Herring			clock-names = "otg";
475724ba675SRob Herring			phys = <&usbphy>;
476724ba675SRob Herring			phy-names = "usb2-phy";
477724ba675SRob Herring		};
478724ba675SRob Herring	};
479724ba675SRob Herring
480724ba675SRob Herring	clocks {
481724ba675SRob Herring		/* The oscillator is the root of the clock tree. */
482724ba675SRob Herring		clk_osc: clk-osc {
483724ba675SRob Herring			compatible = "fixed-clock";
484724ba675SRob Herring			#clock-cells = <0>;
485724ba675SRob Herring			clock-output-names = "osc";
486724ba675SRob Herring			clock-frequency = <19200000>;
487724ba675SRob Herring		};
488724ba675SRob Herring
489724ba675SRob Herring		clk_usb: clk-usb {
490724ba675SRob Herring			compatible = "fixed-clock";
491724ba675SRob Herring			#clock-cells = <0>;
492724ba675SRob Herring			clock-output-names = "otg";
493724ba675SRob Herring			clock-frequency = <480000000>;
494724ba675SRob Herring		};
495724ba675SRob Herring	};
496724ba675SRob Herring
497724ba675SRob Herring	usbphy: phy {
498724ba675SRob Herring		compatible = "usb-nop-xceiv";
499724ba675SRob Herring		#phy-cells = <0>;
500724ba675SRob Herring	};
501724ba675SRob Herring};
502