1 From d27f2b90df0b787859c2f5665feaecbe87e6b1ff Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.org>
3 Date: Tue, 4 Jun 2019 16:22:22 +0100
4 Subject: [PATCH] arm: dts: Improve the bcm27xx inclusion hierarchy
6 1) The top-level .dts files now include parallel chains of bcm27xx.dtsi
7 and bcm27xx-rpi.dtsi files, with no cross-inclusion between the two
10 2) Move definitions and deletions to the point of maximum commonality
13 Signed-off-by: Phil Elwell <phil@raspberrypi.org>
15 arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 1 +
16 arch/arm/boot/dts/bcm2708-rpi-b.dts | 1 +
17 arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 1 +
18 arch/arm/boot/dts/bcm2708-rpi-zero-w.dts | 1 +
19 arch/arm/boot/dts/bcm2708-rpi-zero.dts | 1 +
20 arch/arm/boot/dts/bcm2708-rpi.dtsi | 63 +++++++---------------
21 arch/arm/boot/dts/bcm2708.dtsi | 1 -
22 arch/arm/boot/dts/bcm2709-rpi-2-b.dts | 1 +
23 arch/arm/boot/dts/bcm2709.dtsi | 1 -
24 arch/arm/boot/dts/bcm270x.dtsi | 18 +------
25 arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts | 1 +
26 arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 1 +
27 arch/arm/boot/dts/bcm2710-rpi-cm3.dts | 1 +
28 arch/arm/boot/dts/bcm2710.dtsi | 1 -
29 arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 15 ++++--
30 arch/arm/boot/dts/bcm2711-rpi.dtsi | 7 +++
31 arch/arm/boot/dts/bcm2711.dtsi | 10 ----
32 arch/arm/boot/dts/bcm2835-rpi.dtsi | 16 ++++++
33 arch/arm/boot/dts/bcm2838.dtsi | 33 ++++++++----
34 arch/arm/boot/dts/bcm283x.dtsi | 2 +-
35 20 files changed, 86 insertions(+), 90 deletions(-)
36 create mode 100644 arch/arm/boot/dts/bcm2711-rpi.dtsi
38 --- a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
39 +++ b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
43 #include "bcm2708.dtsi"
44 +#include "bcm2708-rpi.dtsi"
45 #include "bcm283x-rpi-smsc9514.dtsi"
46 #include "bcm283x-rpi-csi1-2lane.dtsi"
48 --- a/arch/arm/boot/dts/bcm2708-rpi-b.dts
49 +++ b/arch/arm/boot/dts/bcm2708-rpi-b.dts
53 #include "bcm2708.dtsi"
54 +#include "bcm2708-rpi.dtsi"
55 #include "bcm283x-rpi-smsc9512.dtsi"
56 #include "bcm283x-rpi-csi1-2lane.dtsi"
58 --- a/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
59 +++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
61 #include "bcm2708.dtsi"
62 +#include "bcm2708-rpi.dtsi"
66 --- a/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts
67 +++ b/arch/arm/boot/dts/bcm2708-rpi-zero-w.dts
71 #include "bcm2708.dtsi"
72 +#include "bcm2708-rpi.dtsi"
73 #include "bcm283x-rpi-csi1-2lane.dtsi"
76 --- a/arch/arm/boot/dts/bcm2708-rpi-zero.dts
77 +++ b/arch/arm/boot/dts/bcm2708-rpi-zero.dts
81 #include "bcm2708.dtsi"
82 +#include "bcm2708-rpi.dtsi"
83 #include "bcm283x-rpi-csi1-2lane.dtsi"
86 --- a/arch/arm/boot/dts/bcm2708-rpi.dtsi
87 +++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi
89 -/* Downstream version of bcm2835-rpi.dtsi */
90 +/* Downstream modifications to bcm2835-rpi.dtsi */
92 -#include <dt-bindings/power/raspberrypi-power.h>
93 +#include "bcm2835-rpi.dtsi"
98 reg = <0x7e200000 0x1000>;
101 - firmware: firmware {
102 - compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
103 - #address-cells = <0>;
105 - mboxes = <&mailbox>;
109 - compatible = "raspberrypi,bcm2835-power";
110 - firmware = <&firmware>;
111 - #power-domain-cells = <1>;
115 compatible = "brcm,bcm2708-fb";
116 firmware = <&firmware>;
117 - status = "disabled";
120 - vchiq: mailbox@7e00b840 {
121 - compatible = "brcm,bcm2835-vchiq";
122 - reg = <0x7e00b840 0x3c>;
123 - interrupts = <0 2>;
133 - txp: txp@7e004000 {
134 - status = "disabled";
139 @@ -125,11 +102,23 @@
143 - power-domains = <&power RPI_POWER_DOMAIN_HDMI>;
144 + status = "disabled";
148 - power-domains = <&power RPI_POWER_DOMAIN_USB>;
150 + status = "disabled";
154 + status = "disabled";
158 + status = "disabled";
162 + status = "disabled";
166 @@ -141,16 +130,8 @@ sdhost_pins: &sdhost_gpio48 {
170 - pinctrl-names = "default";
171 - pinctrl-0 = <&sdhost_gpio48>;
173 brcm,overclock-50 = <0>;
174 brcm,pio-limit = <1>;
183 @@ -160,11 +141,3 @@ sdhost_pins: &sdhost_gpio48 {
189 - power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>;
193 - power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
195 --- a/arch/arm/boot/dts/bcm2708.dtsi
196 +++ b/arch/arm/boot/dts/bcm2708.dtsi
198 #include "bcm2835.dtsi"
199 #include "bcm270x.dtsi"
200 -#include "bcm2708-rpi.dtsi"
204 --- a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
205 +++ b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
209 #include "bcm2709.dtsi"
210 +#include "bcm2709-rpi.dtsi"
211 #include "bcm283x-rpi-smsc9514.dtsi"
212 #include "bcm283x-rpi-csi1-2lane.dtsi"
214 --- a/arch/arm/boot/dts/bcm2709.dtsi
215 +++ b/arch/arm/boot/dts/bcm2709.dtsi
217 #include "bcm2836.dtsi"
218 #include "bcm270x.dtsi"
219 -#include "bcm2709-rpi.dtsi"
223 --- a/arch/arm/boot/dts/bcm270x.dtsi
224 +++ b/arch/arm/boot/dts/bcm270x.dtsi
227 /delete-node/ sdhci@7e300000;
229 - mmc: mmc@7e300000 {
230 + sdhci: mmc: mmc@7e300000 {
231 compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci";
232 reg = <0x7e300000 0x100>;
238 - vdd_5v0_reg: fixedregulator_5v0 {
239 - compatible = "regulator-fixed";
240 - regulator-name = "5v0";
241 - regulator-min-microvolt = <5000000>;
242 - regulator-max-microvolt = <5000000>;
243 - regulator-always-on;
246 - vdd_3v3_reg: fixedregulator_3v3 {
247 - compatible = "regulator-fixed";
248 - regulator-name = "3v3";
249 - regulator-min-microvolt = <3300000>;
250 - regulator-max-microvolt = <3300000>;
251 - regulator-always-on;
257 --- a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
258 +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
262 #include "bcm2710.dtsi"
263 +#include "bcm2709-rpi.dtsi"
264 #include "bcm283x-rpi-lan7515.dtsi"
265 #include "bcm283x-rpi-csi1-2lane.dtsi"
267 --- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
268 +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
272 #include "bcm2710.dtsi"
273 +#include "bcm2709-rpi.dtsi"
274 #include "bcm283x-rpi-smsc9514.dtsi"
275 #include "bcm283x-rpi-csi1-2lane.dtsi"
277 --- a/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
278 +++ b/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
282 #include "bcm2710.dtsi"
283 +#include "bcm2709-rpi.dtsi"
284 #include "bcm283x-rpi-csi0-2lane.dtsi"
285 #include "bcm283x-rpi-csi1-4lane.dtsi"
287 --- a/arch/arm/boot/dts/bcm2710.dtsi
288 +++ b/arch/arm/boot/dts/bcm2710.dtsi
290 #include "bcm2837.dtsi"
291 #include "bcm270x.dtsi"
292 -#include "bcm2709-rpi.dtsi"
295 compatible = "brcm,bcm2837", "brcm,bcm2836";
296 --- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
297 +++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts
301 #include "bcm2711.dtsi"
302 +#include "bcm2711-rpi.dtsi"
303 #include "bcm283x-rpi-csi1-2lane.dtsi"
306 - compatible = "raspberrypi,4-model-b", "brcm,bcm2838", "brcm,bcm2837";
307 + compatible = "raspberrypi,4-model-b", "brcm,bcm2838";
308 model = "Raspberry Pi 4 Model B";
309 - #address-cells = <2>;
313 device_type = "memory";
320 compatible = "raspberrypi,firmware-gpio";
323 + gpio-line-names = "BT_ON",
335 +++ b/arch/arm/boot/dts/bcm2711-rpi.dtsi
337 +#include "bcm2708-rpi.dtsi"
338 +#include "bcm2838-rpi.dtsi"
341 + /* Undo the overwriting by bcm270x.dtsi */
342 + power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>;
344 --- a/arch/arm/boot/dts/bcm2711.dtsi
345 +++ b/arch/arm/boot/dts/bcm2711.dtsi
347 #include "bcm2838.dtsi"
348 #include "bcm270x.dtsi"
349 -#include "bcm2708-rpi.dtsi"
353 - /delete-node/ mailbox@7e00b840;
354 /delete-node/ v3d@7ec00000;
362 - brcm,dma-channel-mask = <0x7ef5>;
366 - interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
370 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
372 --- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
373 +++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
379 + vdd_3v3_reg: fixedregulator_3v3 {
380 + compatible = "regulator-fixed";
381 + regulator-name = "3v3";
382 + regulator-min-microvolt = <3300000>;
383 + regulator-max-microvolt = <3300000>;
384 + regulator-always-on;
387 + vdd_5v0_reg: fixedregulator_5v0 {
388 + compatible = "regulator-fixed";
389 + regulator-name = "5v0";
390 + regulator-min-microvolt = <5000000>;
391 + regulator-max-microvolt = <5000000>;
392 + regulator-always-on;
397 --- a/arch/arm/boot/dts/bcm2838.dtsi
398 +++ b/arch/arm/boot/dts/bcm2838.dtsi
400 #include <dt-bindings/soc/bcm2835-pm.h>
403 - compatible = "brcm,bcm2838", "brcm,bcm2837";
404 + compatible = "brcm,bcm2838";
406 + #address-cells = <2>;
409 interrupt-parent = <&gicv2>;
412 /* Emulate a contiguous 30-bit address range for DMA */
413 dma-ranges = <0xc0000000 0x0 0x00000000 0x3c000000>;
415 - /delete-node/ mailbox@7e00b840;
416 /delete-node/ interrupt-controller@7e00f300;
417 + /delete-node/ v3d@7ec00000;
419 local_intc: local_intc@40000000 {
420 compatible = "brcm,bcm2836-l1-intc";
422 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
425 + pwm1: pwm@7e20c800 {
426 + compatible = "brcm,bcm2835-pwm";
427 + reg = <0x7e20c800 0x28>;
428 + clocks = <&clocks BCM2835_CLOCK_PWM>;
429 + assigned-clocks = <&clocks BCM2835_CLOCK_PWM>;
430 + assigned-clock-rates = <10000000>;
432 + status = "disabled";
435 emmc2: emmc2@7e340000 {
436 compatible = "brcm,bcm2711-emmc2";
442 - brcm,dma-channel-mask = <0x7000>;
443 + brcm,dma-channel-mask = <0x7800>;
445 /* DMA4 - 40 bit DMA engines */
448 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
451 - vchiq: mailbox@7e00b840 {
452 - compatible = "brcm,bcm2838-vchiq";
453 - reg = <0 0x7e00b840 0x3c>;
454 - interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
457 hevc-decoder@7eb00000 {
458 compatible = "raspberrypi,argon-hevc-decoder";
459 reg = <0x0 0x7eb00000 0x10000>;
464 + compatible = "brcm,bcm2838-gpio", "brcm,bcm2835-gpio";
466 gpclk0_gpio49: gpclk0_gpio49 {
468 brcm,function = <BCM2835_FSEL_ALT1>;
473 - brcm,dma-channel-mask = <0x01f5>;
474 + brcm,dma-channel-mask = <0x07f5>;
478 + interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
480 --- a/arch/arm/boot/dts/bcm283x.dtsi
481 +++ b/arch/arm/boot/dts/bcm283x.dtsi
483 #address-cells = <1>;
487 + txp: txp@7e004000 {
488 compatible = "brcm,bcm2835-txp";
489 reg = <0x7e004000 0x20>;