From nobody Tue Dec 16 22:28:14 2025 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9CC0228DB72 for ; Thu, 29 May 2025 10:48:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748515699; cv=none; b=S2SaeGBfxBs6BQJ8DSiGVi1OaK9lyxyiZ/75Db5mz5rnJK0TxwDMLbi55BOPLcsVFq+1LLO8O2lu77g8sDFdyxJgPM9qFnZEjqeRLqv7M6yvemFA0ph8s9XbxzqzP3Ue9Oku58amrhhlSZkIAWl2+wgv7e6iD54l+vzQ8CWuLEA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748515699; c=relaxed/simple; bh=QW7VTm572jmsB5I7p8SLx6Wb3evUoSSkHBGzBXDeejA=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=leV+DnaJJf0ieWZbEOudUVa3wEshz9XmxNjIu9AwG5A03ZZnKXi+DmBIsSji+2VgSCWQE6s+ESlkIw9gipdoT2Qs9kkYaeW6Lu9I6OJWDhJuZzetKe8AjcygNktXDW7hUQr4rXsIbBHUMq5ArJE20E+GT+oSr8+YCjXfjpvmJj0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=gydxDM1+; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="gydxDM1+" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-ad55d6aeb07so118896666b.0 for ; Thu, 29 May 2025 03:48:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1748515694; x=1749120494; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=WZ7xUfAXguvsPdu5QAJbu8MyCaxUyBGB0j1AZF9I7as=; b=gydxDM1+4CR2GAYmAbpdsNolvnjeVzidULdB809/mCAJckW/XfrnM9aPgBY4sJ4QNw 0JfJun5PES2taezV1XJ/vtYs2CniY4ZbLlDMl5nN+ti5b8/pmailj2IjGx7NA2ooafD8 2dtNEjMw+yHXLI3LT/Lg8y85K29hbWnzd+KQJVZjz1deV2klDQXSOvuGnYI9n51crD49 p7QoaW0/rmsaWpYUDGmW7msl7Vlpyl1JjGz+j3k+3hukEjfcdfyaqSAV+nENP0HJGSCQ /vwKNHoXfE0USvkLGIJiJW8K/XghgJWeWkQcrTSjLS+46I3O9vfBOf8b1sgM4gMiU0Jh L5LA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748515694; x=1749120494; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WZ7xUfAXguvsPdu5QAJbu8MyCaxUyBGB0j1AZF9I7as=; b=DfBsdygHJrYZXCkrKHC9+yCA5bwEDfxNVSAERNM4D8e8x1gRoXCJh4oYeXdvfWcgu4 lPWplOQz1JZw/+4xz6a1aZ3K0qA7Y2gKoAbhNXSY67S3jaE1VIUeu44uLiQDJerLFGt9 VI9PFpHnsAcNoINQ09zTSQlfgBcY53tzvz4TiPQWF19rsgbuiW3yANHsvrqvD1i0au5S nNtISJuk8u59nZd3OROI7YNiwTXsEI0m+itXRRv7rr8jIbb2bZk/2kXTie/4O1bnHNWO JT1v0H+Zxrt2EnWM4MtnX46puUWTVR4Mi5Vutvp4fx5HnZ86xYBqvYwWz2mkpaBH2ghK cc/A== X-Forwarded-Encrypted: i=1; AJvYcCVR/rQcyXV12K+RQaqf1Sm9dECBLav4HiBgVioMLv0Gb370k4haJdFVf+mkiis3I/iaLwGo9hF26ZSkXwI=@vger.kernel.org X-Gm-Message-State: AOJu0YwtHiKEK2qGhNGzhX1dsp19p7ulD0Lrz/Drlq2uENJUyOrKBvU9 5TYZ+M+a3rE6S61PHbh9IyRiPkua70ME6gD0nUAfCqcfUcSBWndms2BEC3TuSlfM/G0= X-Gm-Gg: ASbGnctAhOSTaM958nxbfdhTze1Q42tcaki5pVUAyX4izjwpCQwOVgRQE/yJ+0ySrwN hxkVvBJmTsZX8OE0UFDYmw9RQtFbJpMXYSdJUdDD9OyGM9ltqMVbBfGPAQWf2QllNM1GD593EEF MjBOHopiY/pmZYeBw70TCXNJDF9rM8LVfJ9BP8AiPWBN/PENC46zX2WSWuTxSX7tVFxBbMKuUwo uCHxnnpwMbaAXI8hW35IvRBV34N7HyiELcQrkAxZeJLly6YpiMyNjfKEDRqeNCsXqWhEGitVZCh IlDrq3y7Zv6RD79z3rqCarELCL2R4T2h2YVOShM5LWNgtyBDg89fUZQY70tvXa+LaQGjvrdIj3s HYcZ0TCYNFalCJEGmZvVJLzAxABYma8T+ X-Google-Smtp-Source: AGHT+IEqctQn6JYkD2OU2g3E86TiXNt7YciFPiTRUFr7ZULRQQIqdNiEQCdQ6/MquQBqItelOVzh2Q== X-Received: by 2002:a17:907:9806:b0:ad2:2146:3b89 with SMTP id a640c23a62f3a-ad85b185b5fmr1527064066b.47.1748515689516; Thu, 29 May 2025 03:48:09 -0700 (PDT) Received: from localhost (host-87-21-228-106.retail.telecomitalia.it. [87.21.228.106]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adb2c842b9fsm21581266b.143.2025.05.29.03.48.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 May 2025 03:48:09 -0700 (PDT) From: Andrea della Porta To: Andrea della Porta , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Florian Fainelli , Broadcom internal kernel review list , Lorenzo Pieralisi , Krzysztof Wilczynski , Manivannan Sadhasivam , Bjorn Helgaas , Linus Walleij , Catalin Marinas , Will Deacon , Bartosz Golaszewski , Derek Kiernan , Dragan Cvetic , Arnd Bergmann , Greg Kroah-Hartman , Saravana Kannan , linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-gpio@vger.kernel.org, Masahiro Yamada , Stefan Wahren , Herve Codina , Luca Ceresoli , Thomas Petazzoni , Andrew Lunn , Phil Elwell , Dave Stevenson , kernel-list@raspberrypi.com, Matthias Brugger Subject: [PATCH v10 09/10] arm64: dts: broadcom: Add board DTS for Rpi5 which includes RP1 node Date: Thu, 29 May 2025 12:49:26 +0200 Message-ID: <20250529104940.23053-4-andrea.porta@suse.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add the fully populated DTS for RaspberryPi 5 which includes the RP1 node definition. The inclusion tree is as follow (the arrow points to the includer): rp1-common.dtsi ----> rp1-nexus.dtsi ----> bcm2712-rpi-5-b.dts ^ | bcm2712-rpi-5-b-ovl-rp1.dts This is designed to maximize the compatibility with downstream DT while ensuring that a fully defined DT (one which includes the RP1 node as opposed to load it from overlay at runtime) is present since early boot stage. Since the preferred board DT is the fully populated one, name it bcm2712-rpi-5-b.dts and move the previous one into bcm2712-rpi-5-b-ovl-rp1.dts. Signed-off-by: Andrea della Porta --- arch/arm64/boot/dts/broadcom/Makefile | 1 + .../dts/broadcom/bcm2712-rpi-5-b-ovl-rp1.dts | 121 ++++++++++++++++++ .../boot/dts/broadcom/bcm2712-rpi-5-b.dts | 118 ++--------------- 3 files changed, 133 insertions(+), 107 deletions(-) create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-ovl-rp1.dts diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/br= oadcom/Makefile index 01ecfa304184..031875a277d7 100644 --- a/arch/arm64/boot/dts/broadcom/Makefile +++ b/arch/arm64/boot/dts/broadcom/Makefile @@ -7,6 +7,7 @@ dtb-$(CONFIG_ARCH_BCM2835) +=3D bcm2711-rpi-400.dtb \ bcm2711-rpi-4-b.dtb \ bcm2711-rpi-cm4-io.dtb \ bcm2712-rpi-5-b.dtb \ + bcm2712-rpi-5-b-ovl-rp1.dtb \ bcm2712-d-rpi-5-b.dtb \ bcm2837-rpi-2-b.dtb \ bcm2837-rpi-3-a-plus.dtb \ diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-ovl-rp1.dts b/arc= h/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-ovl-rp1.dts new file mode 100644 index 000000000000..6ea3c102e0d6 --- /dev/null +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-ovl-rp1.dts @@ -0,0 +1,121 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/dts-v1/; + +#include +#include "bcm2712.dtsi" + +/ { + compatible =3D "raspberrypi,5-model-b", "brcm,bcm2712"; + model =3D "Raspberry Pi 5"; + + aliases { + serial10 =3D &uart10; + }; + + chosen: chosen { + stdout-path =3D "serial10:115200n8"; + }; + + clk_rp1_xosc: clock-50000000 { + compatible =3D "fixed-clock"; + #clock-cells =3D <0>; + clock-output-names =3D "rp1-xosc"; + clock-frequency =3D <50000000>; + }; + + /* Will be filled by the bootloader */ + memory@0 { + device_type =3D "memory"; + reg =3D <0 0 0 0x28000000>; + }; + + sd_io_1v8_reg: sd-io-1v8-reg { + compatible =3D "regulator-gpio"; + regulator-name =3D "vdd-sd-io"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <3300000>; + regulator-boot-on; + regulator-always-on; + regulator-settling-time-us =3D <5000>; + gpios =3D <&gio_aon 3 GPIO_ACTIVE_HIGH>; + states =3D <1800000 1>, + <3300000 0>; + }; + + sd_vcc_reg: sd-vcc-reg { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc-sd"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + regulator-boot-on; + enable-active-high; + gpios =3D <&gio_aon 4 GPIO_ACTIVE_HIGH>; + }; +}; + +/* The Debug UART, on Rpi5 it's on JST-SH 1.0mm 3-pin connector + * labeled "UART", i.e. the interface with the system console. + */ +&uart10 { + status =3D "okay"; +}; + +/* SDIO1 is used to drive the SD card */ +&sdio1 { + vqmmc-supply =3D <&sd_io_1v8_reg>; + vmmc-supply =3D <&sd_vcc_reg>; + bus-width =3D <4>; + sd-uhs-sdr50; + sd-uhs-ddr50; + sd-uhs-sdr104; +}; + +&soc { + firmware: firmware { + compatible =3D "raspberrypi,bcm2835-firmware", "simple-mfd"; + #address-cells =3D <1>; + #size-cells =3D <1>; + + mboxes =3D <&mailbox>; + dma-ranges; + + firmware_clocks: clocks { + compatible =3D "raspberrypi,firmware-clocks"; + #clock-cells =3D <1>; + }; + + reset: reset { + compatible =3D "raspberrypi,firmware-reset"; + #reset-cells =3D <1>; + }; + }; + + power: power { + compatible =3D "raspberrypi,bcm2835-power"; + firmware =3D <&firmware>; + #power-domain-cells =3D <1>; + }; +}; + +&hvs { + clocks =3D <&firmware_clocks 4>, <&firmware_clocks 16>; + clock-names =3D "core", "disp"; +}; + +&hdmi0 { + clocks =3D <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_= 27MHz>; + clock-names =3D "hdmi", "bvb", "audio", "cec"; +}; + +&hdmi1 { + clocks =3D <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_= 27MHz>; + clock-names =3D "hdmi", "bvb", "audio", "cec"; +}; + +&pcie1 { + status =3D "okay"; +}; + +&pcie2 { + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm64/= boot/dts/broadcom/bcm2712-rpi-5-b.dts index 1850a575e708..adad85e68f1b 100644 --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts @@ -1,113 +1,17 @@ // SPDX-License-Identifier: (GPL-2.0 OR MIT) -/dts-v1/; - -#include -#include "bcm2712.dtsi" - -/ { - compatible =3D "raspberrypi,5-model-b", "brcm,bcm2712"; - model =3D "Raspberry Pi 5"; - - aliases { - serial10 =3D &uart10; - }; - - chosen: chosen { - stdout-path =3D "serial10:115200n8"; - }; - - clk_rp1_xosc: clock-50000000 { - compatible =3D "fixed-clock"; - #clock-cells =3D <0>; - clock-output-names =3D "rp1-xosc"; - clock-frequency =3D <50000000>; - }; - - /* Will be filled by the bootloader */ - memory@0 { - device_type =3D "memory"; - reg =3D <0 0 0 0x28000000>; - }; - - sd_io_1v8_reg: sd-io-1v8-reg { - compatible =3D "regulator-gpio"; - regulator-name =3D "vdd-sd-io"; - regulator-min-microvolt =3D <1800000>; - regulator-max-microvolt =3D <3300000>; - regulator-boot-on; - regulator-always-on; - regulator-settling-time-us =3D <5000>; - gpios =3D <&gio_aon 3 GPIO_ACTIVE_HIGH>; - states =3D <1800000 1>, - <3300000 0>; - }; - - sd_vcc_reg: sd-vcc-reg { - compatible =3D "regulator-fixed"; - regulator-name =3D "vcc-sd"; - regulator-min-microvolt =3D <3300000>; - regulator-max-microvolt =3D <3300000>; - regulator-boot-on; - enable-active-high; - gpios =3D <&gio_aon 4 GPIO_ACTIVE_HIGH>; - }; -}; - -/* The Debug UART, on Rpi5 it's on JST-SH 1.0mm 3-pin connector - * labeled "UART", i.e. the interface with the system console. +/* + * bcm2712-rpi-5-b-ovl-rp1.dts is the overlay-ready DT which will make + * the RP1 driver to load the RP1 dtb overlay at runtime, while + * bcm2712-rpi-5-b.dts (this file) is the fully defined one (i.e. it + * already contains RP1 node, so no overlay is loaded nor needed). + * This file is not intended to be modified, nodes should be added + * to the included bcm2712-rpi-5-b-ovl-rp1.dts. */ -&uart10 { - status =3D "okay"; -}; =20 -/* SDIO1 is used to drive the SD card */ -&sdio1 { - vqmmc-supply =3D <&sd_io_1v8_reg>; - vmmc-supply =3D <&sd_vcc_reg>; - bus-width =3D <4>; - sd-uhs-sdr50; - sd-uhs-ddr50; - sd-uhs-sdr104; -}; - -&soc { - firmware: firmware { - compatible =3D "raspberrypi,bcm2835-firmware", "simple-mfd"; - #address-cells =3D <1>; - #size-cells =3D <1>; - - mboxes =3D <&mailbox>; - dma-ranges; - - firmware_clocks: clocks { - compatible =3D "raspberrypi,firmware-clocks"; - #clock-cells =3D <1>; - }; - - reset: reset { - compatible =3D "raspberrypi,firmware-reset"; - #reset-cells =3D <1>; - }; - }; - - power: power { - compatible =3D "raspberrypi,bcm2835-power"; - firmware =3D <&firmware>; - #power-domain-cells =3D <1>; - }; -}; - -&hvs { - clocks =3D <&firmware_clocks 4>, <&firmware_clocks 16>; - clock-names =3D "core", "disp"; -}; +/dts-v1/; =20 -&hdmi0 { - clocks =3D <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 0>, <&clk_= 27MHz>; - clock-names =3D "hdmi", "bvb", "audio", "cec"; -}; +#include "bcm2712-rpi-5-b-ovl-rp1.dts" =20 -&hdmi1 { - clocks =3D <&firmware_clocks 13>, <&firmware_clocks 14>, <&dvp 1>, <&clk_= 27MHz>; - clock-names =3D "hdmi", "bvb", "audio", "cec"; +&pcie2 { + #include "rp1-nexus.dtsi" }; --=20 2.35.3