xref: /freebsd-src/sys/contrib/device-tree/src/arm/broadcom/bcm2835-common.dtsi (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2f126890aSEmmanuel Vadot
3f126890aSEmmanuel Vadot/* This include file covers the common peripherals and configuration between
4f126890aSEmmanuel Vadot * bcm2835, bcm2836 and bcm2837 implementations.
5f126890aSEmmanuel Vadot */
6f126890aSEmmanuel Vadot
7f126890aSEmmanuel Vadot/ {
8f126890aSEmmanuel Vadot	interrupt-parent = <&intc>;
9f126890aSEmmanuel Vadot
10f126890aSEmmanuel Vadot	soc {
11*aa1a8ff2SEmmanuel Vadot		dma: dma-controller@7e007000 {
12f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-dma";
13f126890aSEmmanuel Vadot			reg = <0x7e007000 0xf00>;
14f126890aSEmmanuel Vadot			interrupts = <1 16>,
15f126890aSEmmanuel Vadot				     <1 17>,
16f126890aSEmmanuel Vadot				     <1 18>,
17f126890aSEmmanuel Vadot				     <1 19>,
18f126890aSEmmanuel Vadot				     <1 20>,
19f126890aSEmmanuel Vadot				     <1 21>,
20f126890aSEmmanuel Vadot				     <1 22>,
21f126890aSEmmanuel Vadot				     <1 23>,
22f126890aSEmmanuel Vadot				     <1 24>,
23f126890aSEmmanuel Vadot				     <1 25>,
24f126890aSEmmanuel Vadot				     <1 26>,
25f126890aSEmmanuel Vadot				     /* dma channel 11-14 share one irq */
26f126890aSEmmanuel Vadot				     <1 27>,
27f126890aSEmmanuel Vadot				     <1 27>,
28f126890aSEmmanuel Vadot				     <1 27>,
29f126890aSEmmanuel Vadot				     <1 27>,
30f126890aSEmmanuel Vadot				     /* unused shared irq for all channels */
31f126890aSEmmanuel Vadot				     <1 28>;
32f126890aSEmmanuel Vadot			interrupt-names = "dma0",
33f126890aSEmmanuel Vadot					  "dma1",
34f126890aSEmmanuel Vadot					  "dma2",
35f126890aSEmmanuel Vadot					  "dma3",
36f126890aSEmmanuel Vadot					  "dma4",
37f126890aSEmmanuel Vadot					  "dma5",
38f126890aSEmmanuel Vadot					  "dma6",
39f126890aSEmmanuel Vadot					  "dma7",
40f126890aSEmmanuel Vadot					  "dma8",
41f126890aSEmmanuel Vadot					  "dma9",
42f126890aSEmmanuel Vadot					  "dma10",
43f126890aSEmmanuel Vadot					  "dma11",
44f126890aSEmmanuel Vadot					  "dma12",
45f126890aSEmmanuel Vadot					  "dma13",
46f126890aSEmmanuel Vadot					  "dma14",
47f126890aSEmmanuel Vadot					  "dma-shared-all";
48f126890aSEmmanuel Vadot			#dma-cells = <1>;
49f126890aSEmmanuel Vadot			brcm,dma-channel-mask = <0x7f35>;
50f126890aSEmmanuel Vadot		};
51f126890aSEmmanuel Vadot
52f126890aSEmmanuel Vadot		intc: interrupt-controller@7e00b200 {
53f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-armctrl-ic";
54f126890aSEmmanuel Vadot			reg = <0x7e00b200 0x200>;
55f126890aSEmmanuel Vadot			interrupt-controller;
56f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
57f126890aSEmmanuel Vadot		};
58f126890aSEmmanuel Vadot
59f126890aSEmmanuel Vadot		pm: watchdog@7e100000 {
60f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
61f126890aSEmmanuel Vadot			#power-domain-cells = <1>;
62f126890aSEmmanuel Vadot			#reset-cells = <1>;
63f126890aSEmmanuel Vadot			reg = <0x7e100000 0x114>,
64f126890aSEmmanuel Vadot			      <0x7e00a000 0x24>;
65f126890aSEmmanuel Vadot			reg-names = "pm", "asb";
66f126890aSEmmanuel Vadot			clocks = <&clocks BCM2835_CLOCK_V3D>,
67f126890aSEmmanuel Vadot				 <&clocks BCM2835_CLOCK_PERI_IMAGE>,
68f126890aSEmmanuel Vadot				 <&clocks BCM2835_CLOCK_H264>,
69f126890aSEmmanuel Vadot				 <&clocks BCM2835_CLOCK_ISP>;
70f126890aSEmmanuel Vadot			clock-names = "v3d", "peri_image", "h264", "isp";
71f126890aSEmmanuel Vadot			system-power-controller;
72f126890aSEmmanuel Vadot		};
73f126890aSEmmanuel Vadot
74f126890aSEmmanuel Vadot		rng@7e104000 {
75f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-rng";
76f126890aSEmmanuel Vadot			reg = <0x7e104000 0x10>;
77f126890aSEmmanuel Vadot			interrupts = <2 29>;
78f126890aSEmmanuel Vadot		};
79f126890aSEmmanuel Vadot
80f126890aSEmmanuel Vadot		pixelvalve@7e206000 {
81f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-pixelvalve0";
82f126890aSEmmanuel Vadot			reg = <0x7e206000 0x100>;
83f126890aSEmmanuel Vadot			interrupts = <2 13>; /* pwa0 */
84f126890aSEmmanuel Vadot		};
85f126890aSEmmanuel Vadot
86f126890aSEmmanuel Vadot		pixelvalve@7e207000 {
87f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-pixelvalve1";
88f126890aSEmmanuel Vadot			reg = <0x7e207000 0x100>;
89f126890aSEmmanuel Vadot			interrupts = <2 14>; /* pwa1 */
90f126890aSEmmanuel Vadot		};
91f126890aSEmmanuel Vadot
92f126890aSEmmanuel Vadot		thermal: thermal@7e212000 {
93f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-thermal";
94f126890aSEmmanuel Vadot			reg = <0x7e212000 0x8>;
95f126890aSEmmanuel Vadot			clocks = <&clocks BCM2835_CLOCK_TSENS>;
96f126890aSEmmanuel Vadot			#thermal-sensor-cells = <0>;
97f126890aSEmmanuel Vadot			status = "disabled";
98f126890aSEmmanuel Vadot		};
99f126890aSEmmanuel Vadot
100f126890aSEmmanuel Vadot		i2c2: i2c@7e805000 {
101f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-i2c";
102f126890aSEmmanuel Vadot			reg = <0x7e805000 0x1000>;
103f126890aSEmmanuel Vadot			interrupts = <2 21>;
104f126890aSEmmanuel Vadot			clocks = <&clocks BCM2835_CLOCK_VPU>;
105f126890aSEmmanuel Vadot			#address-cells = <1>;
106f126890aSEmmanuel Vadot			#size-cells = <0>;
107f126890aSEmmanuel Vadot			status = "okay";
108f126890aSEmmanuel Vadot		};
109f126890aSEmmanuel Vadot
110f126890aSEmmanuel Vadot		vec: vec@7e806000 {
111f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-vec";
112f126890aSEmmanuel Vadot			reg = <0x7e806000 0x1000>;
113f126890aSEmmanuel Vadot			clocks = <&clocks BCM2835_CLOCK_VEC>;
114f126890aSEmmanuel Vadot			interrupts = <2 27>;
115f126890aSEmmanuel Vadot			status = "disabled";
116f126890aSEmmanuel Vadot		};
117f126890aSEmmanuel Vadot
118f126890aSEmmanuel Vadot		pixelvalve@7e807000 {
119f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-pixelvalve2";
120f126890aSEmmanuel Vadot			reg = <0x7e807000 0x100>;
121f126890aSEmmanuel Vadot			interrupts = <2 10>; /* pixelvalve */
122f126890aSEmmanuel Vadot		};
123f126890aSEmmanuel Vadot
124f126890aSEmmanuel Vadot		hdmi: hdmi@7e902000 {
125f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-hdmi";
126f126890aSEmmanuel Vadot			reg = <0x7e902000 0x600>,
127f126890aSEmmanuel Vadot			      <0x7e808000 0x100>;
128f126890aSEmmanuel Vadot			interrupts = <2 8>, <2 9>;
129f126890aSEmmanuel Vadot			ddc = <&i2c2>;
130f126890aSEmmanuel Vadot			clocks = <&clocks BCM2835_PLLH_PIX>,
131f126890aSEmmanuel Vadot				 <&clocks BCM2835_CLOCK_HSM>;
132f126890aSEmmanuel Vadot			clock-names = "pixel", "hdmi";
133f126890aSEmmanuel Vadot			dmas = <&dma 17>;
134f126890aSEmmanuel Vadot			dma-names = "audio-rx";
135f126890aSEmmanuel Vadot			status = "disabled";
136f126890aSEmmanuel Vadot		};
137f126890aSEmmanuel Vadot
138f126890aSEmmanuel Vadot		v3d: v3d@7ec00000 {
139f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-v3d";
140f126890aSEmmanuel Vadot			reg = <0x7ec00000 0x1000>;
141f126890aSEmmanuel Vadot			interrupts = <1 10>;
142f126890aSEmmanuel Vadot		};
143f126890aSEmmanuel Vadot
144f126890aSEmmanuel Vadot		vc4: gpu {
145f126890aSEmmanuel Vadot			compatible = "brcm,bcm2835-vc4";
146f126890aSEmmanuel Vadot		};
147f126890aSEmmanuel Vadot	};
148f126890aSEmmanuel Vadot};
149f126890aSEmmanuel Vadot
150f126890aSEmmanuel Vadot&cpu_thermal {
151f126890aSEmmanuel Vadot	thermal-sensors = <&thermal>;
152f126890aSEmmanuel Vadot};
153f126890aSEmmanuel Vadot
154f126890aSEmmanuel Vadot&gpio {
155f126890aSEmmanuel Vadot	i2c_slave_gpio18: i2c-slave-gpio18 {
156f126890aSEmmanuel Vadot		brcm,pins = <18 19 20 21>;
157f126890aSEmmanuel Vadot		brcm,function = <BCM2835_FSEL_ALT3>;
158f126890aSEmmanuel Vadot	};
159f126890aSEmmanuel Vadot
160f126890aSEmmanuel Vadot	jtag_gpio4: jtag-gpio4 {
161f126890aSEmmanuel Vadot		brcm,pins = <4 5 6 12 13>;
162f126890aSEmmanuel Vadot		brcm,function = <BCM2835_FSEL_ALT5>;
163f126890aSEmmanuel Vadot	};
164f126890aSEmmanuel Vadot
165f126890aSEmmanuel Vadot	pwm0_gpio12: pwm0-gpio12 {
166f126890aSEmmanuel Vadot		brcm,pins = <12>;
167f126890aSEmmanuel Vadot		brcm,function = <BCM2835_FSEL_ALT0>;
168f126890aSEmmanuel Vadot	};
169f126890aSEmmanuel Vadot	pwm0_gpio18: pwm0-gpio18 {
170f126890aSEmmanuel Vadot		brcm,pins = <18>;
171f126890aSEmmanuel Vadot		brcm,function = <BCM2835_FSEL_ALT5>;
172f126890aSEmmanuel Vadot	};
173f126890aSEmmanuel Vadot	pwm0_gpio40: pwm0-gpio40 {
174f126890aSEmmanuel Vadot		brcm,pins = <40>;
175f126890aSEmmanuel Vadot		brcm,function = <BCM2835_FSEL_ALT0>;
176f126890aSEmmanuel Vadot	};
177f126890aSEmmanuel Vadot	pwm1_gpio13: pwm1-gpio13 {
178f126890aSEmmanuel Vadot		brcm,pins = <13>;
179f126890aSEmmanuel Vadot		brcm,function = <BCM2835_FSEL_ALT0>;
180f126890aSEmmanuel Vadot	};
181f126890aSEmmanuel Vadot	pwm1_gpio19: pwm1-gpio19 {
182f126890aSEmmanuel Vadot		brcm,pins = <19>;
183f126890aSEmmanuel Vadot		brcm,function = <BCM2835_FSEL_ALT5>;
184f126890aSEmmanuel Vadot	};
185f126890aSEmmanuel Vadot	pwm1_gpio41: pwm1-gpio41 {
186f126890aSEmmanuel Vadot		brcm,pins = <41>;
187f126890aSEmmanuel Vadot		brcm,function = <BCM2835_FSEL_ALT0>;
188f126890aSEmmanuel Vadot	};
189f126890aSEmmanuel Vadot	pwm1_gpio45: pwm1-gpio45 {
190f126890aSEmmanuel Vadot		brcm,pins = <45>;
191f126890aSEmmanuel Vadot		brcm,function = <BCM2835_FSEL_ALT0>;
192f126890aSEmmanuel Vadot	};
193f126890aSEmmanuel Vadot};
194f126890aSEmmanuel Vadot
195f126890aSEmmanuel Vadot&i2s {
196f126890aSEmmanuel Vadot	dmas = <&dma 2>, <&dma 3>;
197f126890aSEmmanuel Vadot	dma-names = "tx", "rx";
198f126890aSEmmanuel Vadot};
199f126890aSEmmanuel Vadot
200f126890aSEmmanuel Vadot&sdhost {
201f126890aSEmmanuel Vadot	dmas = <&dma 13>;
202f126890aSEmmanuel Vadot	dma-names = "rx-tx";
203f126890aSEmmanuel Vadot};
204f126890aSEmmanuel Vadot
205f126890aSEmmanuel Vadot&spi {
206f126890aSEmmanuel Vadot	dmas = <&dma 6>, <&dma 7>;
207f126890aSEmmanuel Vadot	dma-names = "tx", "rx";
208f126890aSEmmanuel Vadot};
209