[1/2] ARM: dts: bcm283x: Remove bcm2835-rpi-common.dtsi from SoC DTSI
Commit Message
According to the commit log of the commit 3ac395a5b3f3 ("ARM: dts:
bcm283x: Use firmware PM driver for V3D"), the initial intent behind the
bcm2835-rpi-common DTSI was to share data between the RaspberryPies
based on the BCM2835, 36 and 37.
However, it was included by these SoCs' main DTSI. This is creating an
improper layering.
On top of that, bcm2835.dtsi is being included by bcm2711.dtsi, which
means that, even though the bcm2835-rpi-common DTSI wasn't actually
meant to contain data for the BCM2711, it actually leaks into the
BCM2711 DTSI.
In order to remove both issues, let's remove the include of
bcm2835-rpi-common.dtsi from bcm283{5-7}.dtsi and put them into the
bcm283{6,7}-rpi.dtsi.
BCM2835 has to be handled with special care due to the fact that
bcm2835.dtsi is being included by bcm2711.dtsi. Thus, we chose to
include bcm2835-rpi-common.dtsi directly into the board DTS. This will
be more error-prone, but given that it's a fairly old SoC by now, the
chance that we will get more BCM2835 boards is fairly low.
BCM2711 isn't modified since the content of bcm2835-rpi-common.dtsi was
only a power-domain for the v3d that was overridden anyway.
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi-a.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi-b.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi-cm1.dtsi | 1 +
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts | 1 +
arch/arm/boot/dts/bcm2835-rpi-zero.dts | 1 +
arch/arm/boot/dts/bcm2835.dtsi | 1 -
arch/arm/boot/dts/bcm2836-rpi.dtsi | 1 +
arch/arm/boot/dts/bcm2836.dtsi | 1 -
arch/arm/boot/dts/bcm2837.dtsi | 1 -
12 files changed, 9 insertions(+), 3 deletions(-)
Comments
On Wed, 26 Oct 2022 15:17:38 +0200, maxime@cerno.tech wrote:
> According to the commit log of the commit 3ac395a5b3f3 ("ARM: dts:
> bcm283x: Use firmware PM driver for V3D"), the initial intent behind the
> bcm2835-rpi-common DTSI was to share data between the RaspberryPies
> based on the BCM2835, 36 and 37.
>
> However, it was included by these SoCs' main DTSI. This is creating an
> improper layering.
>
> On top of that, bcm2835.dtsi is being included by bcm2711.dtsi, which
> means that, even though the bcm2835-rpi-common DTSI wasn't actually
> meant to contain data for the BCM2711, it actually leaks into the
> BCM2711 DTSI.
>
> In order to remove both issues, let's remove the include of
> bcm2835-rpi-common.dtsi from bcm283{5-7}.dtsi and put them into the
> bcm283{6,7}-rpi.dtsi.
>
> BCM2835 has to be handled with special care due to the fact that
> bcm2835.dtsi is being included by bcm2711.dtsi. Thus, we chose to
> include bcm2835-rpi-common.dtsi directly into the board DTS. This will
> be more error-prone, but given that it's a fairly old SoC by now, the
> chance that we will get more BCM2835 boards is fairly low.
>
> BCM2711 isn't modified since the content of bcm2835-rpi-common.dtsi was
> only a power-domain for the v3d that was overridden anyway.
>
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
Applied to https://github.com/Broadcom/stblinux/commits/devicetree/next, thanks!
--
Florian
@@ -2,6 +2,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
+#include "bcm2835-rpi-common.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
@@ -2,6 +2,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
+#include "bcm2835-rpi-common.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
/ {
@@ -2,6 +2,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
+#include "bcm2835-rpi-common.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
@@ -2,6 +2,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
+#include "bcm2835-rpi-common.dtsi"
#include "bcm283x-rpi-smsc9512.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
@@ -2,6 +2,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
+#include "bcm2835-rpi-common.dtsi"
#include "bcm283x-rpi-smsc9512.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
@@ -2,6 +2,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
+#include "bcm2835-rpi-common.dtsi"
/ {
leds {
@@ -6,6 +6,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
+#include "bcm2835-rpi-common.dtsi"
#include "bcm283x-rpi-usb-otg.dtsi"
#include "bcm283x-rpi-wifi-bt.dtsi"
@@ -6,6 +6,7 @@
/dts-v1/;
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
+#include "bcm2835-rpi-common.dtsi"
#include "bcm283x-rpi-usb-otg.dtsi"
/ {
@@ -1,7 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
#include "bcm283x.dtsi"
#include "bcm2835-common.dtsi"
-#include "bcm2835-rpi-common.dtsi"
/ {
compatible = "brcm,bcm2835";
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
#include "bcm2835-rpi.dtsi"
+#include "bcm2835-rpi-common.dtsi"
&vchiq {
compatible = "brcm,bcm2836-vchiq", "brcm,bcm2835-vchiq";
@@ -1,7 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
#include "bcm283x.dtsi"
#include "bcm2835-common.dtsi"
-#include "bcm2835-rpi-common.dtsi"
/ {
compatible = "brcm,bcm2836";
@@ -1,6 +1,5 @@
#include "bcm283x.dtsi"
#include "bcm2835-common.dtsi"
-#include "bcm2835-rpi-common.dtsi"
/ {
compatible = "brcm,bcm2837";