1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2724ba675SRob Herring
3724ba675SRob Herring/* This include file covers the common peripherals and configuration between
4724ba675SRob Herring * bcm2835, bcm2836 and bcm2837 implementations.
5724ba675SRob Herring */
6724ba675SRob Herring
7724ba675SRob Herring/ {
8724ba675SRob Herring	interrupt-parent = <&intc>;
9724ba675SRob Herring
10724ba675SRob Herring	soc {
11*3450f9f5SStefan Wahren		dma: dma-controller@7e007000 {
12724ba675SRob Herring			compatible = "brcm,bcm2835-dma";
13724ba675SRob Herring			reg = <0x7e007000 0xf00>;
14724ba675SRob Herring			interrupts = <1 16>,
15724ba675SRob Herring				     <1 17>,
16724ba675SRob Herring				     <1 18>,
17724ba675SRob Herring				     <1 19>,
18724ba675SRob Herring				     <1 20>,
19724ba675SRob Herring				     <1 21>,
20724ba675SRob Herring				     <1 22>,
21724ba675SRob Herring				     <1 23>,
22724ba675SRob Herring				     <1 24>,
23724ba675SRob Herring				     <1 25>,
24724ba675SRob Herring				     <1 26>,
25724ba675SRob Herring				     /* dma channel 11-14 share one irq */
26724ba675SRob Herring				     <1 27>,
27724ba675SRob Herring				     <1 27>,
28724ba675SRob Herring				     <1 27>,
29724ba675SRob Herring				     <1 27>,
30724ba675SRob Herring				     /* unused shared irq for all channels */
31724ba675SRob Herring				     <1 28>;
32724ba675SRob Herring			interrupt-names = "dma0",
33724ba675SRob Herring					  "dma1",
34724ba675SRob Herring					  "dma2",
35724ba675SRob Herring					  "dma3",
36724ba675SRob Herring					  "dma4",
37724ba675SRob Herring					  "dma5",
38724ba675SRob Herring					  "dma6",
39724ba675SRob Herring					  "dma7",
40724ba675SRob Herring					  "dma8",
41724ba675SRob Herring					  "dma9",
42724ba675SRob Herring					  "dma10",
43724ba675SRob Herring					  "dma11",
44724ba675SRob Herring					  "dma12",
45724ba675SRob Herring					  "dma13",
46724ba675SRob Herring					  "dma14",
47724ba675SRob Herring					  "dma-shared-all";
48724ba675SRob Herring			#dma-cells = <1>;
49724ba675SRob Herring			brcm,dma-channel-mask = <0x7f35>;
50724ba675SRob Herring		};
51724ba675SRob Herring
52724ba675SRob Herring		intc: interrupt-controller@7e00b200 {
53724ba675SRob Herring			compatible = "brcm,bcm2835-armctrl-ic";
54724ba675SRob Herring			reg = <0x7e00b200 0x200>;
55724ba675SRob Herring			interrupt-controller;
56724ba675SRob Herring			#interrupt-cells = <2>;
57724ba675SRob Herring		};
58724ba675SRob Herring
59724ba675SRob Herring		pm: watchdog@7e100000 {
60724ba675SRob Herring			compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
61724ba675SRob Herring			#power-domain-cells = <1>;
62724ba675SRob Herring			#reset-cells = <1>;
63724ba675SRob Herring			reg = <0x7e100000 0x114>,
64724ba675SRob Herring			      <0x7e00a000 0x24>;
65724ba675SRob Herring			reg-names = "pm", "asb";
66724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_V3D>,
67724ba675SRob Herring				 <&clocks BCM2835_CLOCK_PERI_IMAGE>,
68724ba675SRob Herring				 <&clocks BCM2835_CLOCK_H264>,
69724ba675SRob Herring				 <&clocks BCM2835_CLOCK_ISP>;
70724ba675SRob Herring			clock-names = "v3d", "peri_image", "h264", "isp";
71724ba675SRob Herring			system-power-controller;
72724ba675SRob Herring		};
73724ba675SRob Herring
74724ba675SRob Herring		rng@7e104000 {
75724ba675SRob Herring			compatible = "brcm,bcm2835-rng";
76724ba675SRob Herring			reg = <0x7e104000 0x10>;
77724ba675SRob Herring			interrupts = <2 29>;
78724ba675SRob Herring		};
79724ba675SRob Herring
80724ba675SRob Herring		pixelvalve@7e206000 {
81724ba675SRob Herring			compatible = "brcm,bcm2835-pixelvalve0";
82724ba675SRob Herring			reg = <0x7e206000 0x100>;
83724ba675SRob Herring			interrupts = <2 13>; /* pwa0 */
84724ba675SRob Herring		};
85724ba675SRob Herring
86724ba675SRob Herring		pixelvalve@7e207000 {
87724ba675SRob Herring			compatible = "brcm,bcm2835-pixelvalve1";
88724ba675SRob Herring			reg = <0x7e207000 0x100>;
89724ba675SRob Herring			interrupts = <2 14>; /* pwa1 */
90724ba675SRob Herring		};
91724ba675SRob Herring
92724ba675SRob Herring		thermal: thermal@7e212000 {
93724ba675SRob Herring			compatible = "brcm,bcm2835-thermal";
94724ba675SRob Herring			reg = <0x7e212000 0x8>;
95724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_TSENS>;
96724ba675SRob Herring			#thermal-sensor-cells = <0>;
97724ba675SRob Herring			status = "disabled";
98724ba675SRob Herring		};
99724ba675SRob Herring
100724ba675SRob Herring		i2c2: i2c@7e805000 {
101724ba675SRob Herring			compatible = "brcm,bcm2835-i2c";
102724ba675SRob Herring			reg = <0x7e805000 0x1000>;
103724ba675SRob Herring			interrupts = <2 21>;
104724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_VPU>;
105724ba675SRob Herring			#address-cells = <1>;
106724ba675SRob Herring			#size-cells = <0>;
107724ba675SRob Herring			status = "okay";
108724ba675SRob Herring		};
109724ba675SRob Herring
110724ba675SRob Herring		vec: vec@7e806000 {
111724ba675SRob Herring			compatible = "brcm,bcm2835-vec";
112724ba675SRob Herring			reg = <0x7e806000 0x1000>;
113724ba675SRob Herring			clocks = <&clocks BCM2835_CLOCK_VEC>;
114724ba675SRob Herring			interrupts = <2 27>;
115724ba675SRob Herring			status = "disabled";
116724ba675SRob Herring		};
117724ba675SRob Herring
118724ba675SRob Herring		pixelvalve@7e807000 {
119724ba675SRob Herring			compatible = "brcm,bcm2835-pixelvalve2";
120724ba675SRob Herring			reg = <0x7e807000 0x100>;
121724ba675SRob Herring			interrupts = <2 10>; /* pixelvalve */
122724ba675SRob Herring		};
123724ba675SRob Herring
124724ba675SRob Herring		hdmi: hdmi@7e902000 {
125724ba675SRob Herring			compatible = "brcm,bcm2835-hdmi";
126724ba675SRob Herring			reg = <0x7e902000 0x600>,
127724ba675SRob Herring			      <0x7e808000 0x100>;
128724ba675SRob Herring			interrupts = <2 8>, <2 9>;
129724ba675SRob Herring			ddc = <&i2c2>;
130724ba675SRob Herring			clocks = <&clocks BCM2835_PLLH_PIX>,
131724ba675SRob Herring				 <&clocks BCM2835_CLOCK_HSM>;
132724ba675SRob Herring			clock-names = "pixel", "hdmi";
133724ba675SRob Herring			dmas = <&dma 17>;
134724ba675SRob Herring			dma-names = "audio-rx";
135724ba675SRob Herring			status = "disabled";
136724ba675SRob Herring		};
137724ba675SRob Herring
138724ba675SRob Herring		v3d: v3d@7ec00000 {
139724ba675SRob Herring			compatible = "brcm,bcm2835-v3d";
140724ba675SRob Herring			reg = <0x7ec00000 0x1000>;
141724ba675SRob Herring			interrupts = <1 10>;
142724ba675SRob Herring		};
143724ba675SRob Herring
144724ba675SRob Herring		vc4: gpu {
145724ba675SRob Herring			compatible = "brcm,bcm2835-vc4";
146724ba675SRob Herring		};
147724ba675SRob Herring	};
148724ba675SRob Herring};
149724ba675SRob Herring
150724ba675SRob Herring&cpu_thermal {
151724ba675SRob Herring	thermal-sensors = <&thermal>;
152724ba675SRob Herring};
153724ba675SRob Herring
154724ba675SRob Herring&gpio {
155724ba675SRob Herring	i2c_slave_gpio18: i2c-slave-gpio18 {
156724ba675SRob Herring		brcm,pins = <18 19 20 21>;
157724ba675SRob Herring		brcm,function = <BCM2835_FSEL_ALT3>;
158724ba675SRob Herring	};
159724ba675SRob Herring
160724ba675SRob Herring	jtag_gpio4: jtag-gpio4 {
161724ba675SRob Herring		brcm,pins = <4 5 6 12 13>;
162724ba675SRob Herring		brcm,function = <BCM2835_FSEL_ALT5>;
163724ba675SRob Herring	};
164724ba675SRob Herring
165724ba675SRob Herring	pwm0_gpio12: pwm0-gpio12 {
166724ba675SRob Herring		brcm,pins = <12>;
167724ba675SRob Herring		brcm,function = <BCM2835_FSEL_ALT0>;
168724ba675SRob Herring	};
169724ba675SRob Herring	pwm0_gpio18: pwm0-gpio18 {
170724ba675SRob Herring		brcm,pins = <18>;
171724ba675SRob Herring		brcm,function = <BCM2835_FSEL_ALT5>;
172724ba675SRob Herring	};
173724ba675SRob Herring	pwm0_gpio40: pwm0-gpio40 {
174724ba675SRob Herring		brcm,pins = <40>;
175724ba675SRob Herring		brcm,function = <BCM2835_FSEL_ALT0>;
176724ba675SRob Herring	};
177724ba675SRob Herring	pwm1_gpio13: pwm1-gpio13 {
178724ba675SRob Herring		brcm,pins = <13>;
179724ba675SRob Herring		brcm,function = <BCM2835_FSEL_ALT0>;
180724ba675SRob Herring	};
181724ba675SRob Herring	pwm1_gpio19: pwm1-gpio19 {
182724ba675SRob Herring		brcm,pins = <19>;
183724ba675SRob Herring		brcm,function = <BCM2835_FSEL_ALT5>;
184724ba675SRob Herring	};
185724ba675SRob Herring	pwm1_gpio41: pwm1-gpio41 {
186724ba675SRob Herring		brcm,pins = <41>;
187724ba675SRob Herring		brcm,function = <BCM2835_FSEL_ALT0>;
188724ba675SRob Herring	};
189724ba675SRob Herring	pwm1_gpio45: pwm1-gpio45 {
190724ba675SRob Herring		brcm,pins = <45>;
191724ba675SRob Herring		brcm,function = <BCM2835_FSEL_ALT0>;
192724ba675SRob Herring	};
193724ba675SRob Herring};
194724ba675SRob Herring
195724ba675SRob Herring&i2s {
196724ba675SRob Herring	dmas = <&dma 2>, <&dma 3>;
197724ba675SRob Herring	dma-names = "tx", "rx";
198724ba675SRob Herring};
199724ba675SRob Herring
200724ba675SRob Herring&sdhost {
201724ba675SRob Herring	dmas = <&dma 13>;
202724ba675SRob Herring	dma-names = "rx-tx";
203724ba675SRob Herring};
204724ba675SRob Herring
205724ba675SRob Herring&spi {
206724ba675SRob Herring	dmas = <&dma 6>, <&dma 7>;
207724ba675SRob Herring	dma-names = "tx", "rx";
208724ba675SRob Herring};
209