[PATCH v2] arm64: dts: broadcom: bcm2712-rpi-5-b: add spi0 interface

Subsystems: the rest

COOLING6d

6 messages, 4 authors, 6d ago · open the first message on its own page

[PATCH v2] arm64: dts: broadcom: bcm2712-rpi-5-b: add spi0 interface

From: Gregor Herburger <hidden>
Date: 2026-09-04 09:24:43

The Raspberry Pi 5 routes the spi0 of the rp1 chip to the pin header.
Add the rp1_spi0 node and its pinctrl node to the devicetree to enable
the spi interface.

Signed-off-by: Gregor Herburger <redacted>
---
The RP1 chip, found on the raspberry Pi 5, has nine spi controllers. The
spi0 is routed to the pin header. Add the rp1 nodes and enable it for
the Raspberry Pi 5.
---
Changes in v2:
- Drop first patch as it got already applied: https://lore.kernel.org/lkml/20260903194624.2038562-1-florian.fainelli@broadcom.com/
- add cs gpios to rp1_gpio for pinctrl
- Link to v1: https://patch.msgid.link/20260811-bcm2712-spi-v1-0-4c1708d354bb@linutronix.de
---
 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
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 0fc57e72632ed..0de3d78100a5d 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
@@ -69,6 +69,20 @@ usb_vbus_default_state: usb-vbus-default-state {
 		groups = "vbus1";
 	};
 
+	rp1_spi0_default_state: rp1-spi0-default-state {
+		function = "spi0";
+		groups = "spi0";
+		bias-disable;
+		drive-strength = <12>;
+		slew-rate = <1>;
+	};
+
+	rp1_spi0_cs_default_state: rp1-spi0-cs-default-state {
+		function = "gpio";
+		pins = "gpio7", "gpio8";
+		bias-pull-up;
+	};
+
 	rp1_i2c4_default_state: rp1-i2c4-default-state {
 		function = "i2c4";
 		groups = "i2c4_2";
@@ -94,6 +108,14 @@ &rp1_i2c6 {
 	pinctrl-names = "default";
 };
 
+&rp1_spi0 {
+	pinctrl-0 = <&rp1_spi0_default_state &rp1_spi0_cs_default_state>;
+	pinctrl-names = "default";
+
+	num-cs = <2>;
+	cs-gpios = <&rp1_gpio 8 GPIO_ACTIVE_LOW &rp1_gpio 7 GPIO_ACTIVE_LOW>;
+};
+
 &rp1_usb0 {
 	pinctrl-0 = <&usb_vbus_default_state>;
 	pinctrl-names = "default";
---
base-commit: db2ddb87143519e20a95aa36c60b36107b736a58
change-id: 20260811-bcm2712-spi-644b70fee3bf

Best regards,
--  
Gregor Herburger [off-list ref]

Re: [PATCH v2] arm64: dts: broadcom: bcm2712-rpi-5-b: add spi0 interface

From: sashiko-bot@kernel.org
Date: 2026-09-04 09:33:00

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] Device tree compilation fails due to an undefined phandle reference to `rp1_spi0`.
--

commit 330478d6863965c56268ce6533d5e3b957169da2
Author: Gregor Herburger [off-list ref]

arm64: dts: broadcom: bcm2712-rpi-5-b: add spi0 interface

This commit adds the rp1_spi0 node and its pinctrl node to the bcm2712-rpi-5-b
devicetree to route spi0 to the pin header.

Link to v1: https://patch.msgid.link/20260811-bcm2712-spi-v1-0-4c1708d354bb@linutronix.de
quoted hunk
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 0fc57e72632ed..0de3d78100a5d 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
[ ... ]
quoted hunk
@@ -94,6 +108,14 @@ &rp1_i2c6 {
 	pinctrl-names = "default";
 };
 
+&rp1_spi0 {
[Severity: Low]
Will this cause the device tree compiler (dtc) to fail with a "Reference to
non-existent node or label" error?

It looks like the rp1_spi0 label is undefined in this revision. The patch
notes mention dropping the first patch because it was already applied, but it
seems the prerequisite patch providing the rp1_spi0 base node is missing from
the tree at this revision.
+	pinctrl-0 = <&rp1_spi0_default_state &rp1_spi0_cs_default_state>;
+	pinctrl-names = "default";
+
+	num-cs = <2>;
+	cs-gpios = <&rp1_gpio 8 GPIO_ACTIVE_LOW &rp1_gpio 7 GPIO_ACTIVE_LOW>;
+};
+
-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260904-bcm2712-spi-v2-1-6f8fdfb030bc@linutronix.de?part=1

Re: [PATCH v2] arm64: dts: broadcom: bcm2712-rpi-5-b: add spi0 interface

From: Andrea della Porta <andrea.porta@suse.com>
Date: 2026-09-04 10:30:30

Hi Gregor,

On 11:24 Fri 04 Sep     , Gregor Herburger wrote:
The Raspberry Pi 5 routes the spi0 of the rp1 chip to the pin header.
Add the rp1_spi0 node and its pinctrl node to the devicetree to enable
the spi interface.
Just a nit-pick: in the comment it's stated that the spi interface is enabled,
which is not true since rp1_usb inherit status="disabled" from its node
definition. This is fine because the user would probably want to enable the
spi interface through some overlay, so no need to resend the patch (at least
for me), so:

Reviewed-by: Andrea della Porta <andrea.porta@suse.com>

Thanks!

Andrea
quoted hunk
Signed-off-by: Gregor Herburger <redacted>
---
The RP1 chip, found on the raspberry Pi 5, has nine spi controllers. The
spi0 is routed to the pin header. Add the rp1 nodes and enable it for
the Raspberry Pi 5.
---
Changes in v2:
- Drop first patch as it got already applied: https://lore.kernel.org/lkml/20260903194624.2038562-1-florian.fainelli@broadcom.com/
- add cs gpios to rp1_gpio for pinctrl
- Link to v1: https://patch.msgid.link/20260811-bcm2712-spi-v1-0-4c1708d354bb@linutronix.de
---
 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
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 0fc57e72632ed..0de3d78100a5d 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
@@ -69,6 +69,20 @@ usb_vbus_default_state: usb-vbus-default-state {
 		groups = "vbus1";
 	};
 
+	rp1_spi0_default_state: rp1-spi0-default-state {
+		function = "spi0";
+		groups = "spi0";
+		bias-disable;
+		drive-strength = <12>;
+		slew-rate = <1>;
+	};
+
+	rp1_spi0_cs_default_state: rp1-spi0-cs-default-state {
+		function = "gpio";
+		pins = "gpio7", "gpio8";
+		bias-pull-up;
+	};
+
 	rp1_i2c4_default_state: rp1-i2c4-default-state {
 		function = "i2c4";
 		groups = "i2c4_2";
@@ -94,6 +108,14 @@ &rp1_i2c6 {
 	pinctrl-names = "default";
 };
 
+&rp1_spi0 {
+	pinctrl-0 = <&rp1_spi0_default_state &rp1_spi0_cs_default_state>;
+	pinctrl-names = "default";
+
+	num-cs = <2>;
+	cs-gpios = <&rp1_gpio 8 GPIO_ACTIVE_LOW &rp1_gpio 7 GPIO_ACTIVE_LOW>;
+};
+
 &rp1_usb0 {
 	pinctrl-0 = <&usb_vbus_default_state>;
 	pinctrl-names = "default";
---
base-commit: db2ddb87143519e20a95aa36c60b36107b736a58
change-id: 20260811-bcm2712-spi-644b70fee3bf

Best regards,
--  
Gregor Herburger [off-list ref]

Re: [PATCH v2] arm64: dts: broadcom: bcm2712-rpi-5-b: add spi0 interface

From: Gregor Herburger <hidden>
Date: 2026-09-04 10:54:56

Hi Andrea,

On Fri, Sep 04, 2026 at 12:33:51PM +0200, Andrea della Porta wrote:
Hi Gregor,

On 11:24 Fri 04 Sep     , Gregor Herburger wrote:
quoted
The Raspberry Pi 5 routes the spi0 of the rp1 chip to the pin header.
Add the rp1_spi0 node and its pinctrl node to the devicetree to enable
the spi interface.
Just a nit-pick: in the comment it's stated that the spi interface is enabled,
which is not true since rp1_usb inherit status="disabled" from its node
definition. This is fine because the user would probably want to enable the
spi interface through some overlay, so no need to resend the patch (at least
for me), so:
Indeed. It could be rephrased to:

	Add the rp1_spi0 node and its pinctrl nodes to the devicetree to make
	the spi interface available.

@Florian: Should I send another version or do you want to change it yourself?

Best regards,
-- 
Gregor Herburger
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen
Phone: +49 7556 25 999 35; Fax.: +49 7556 25 999 99

Hinweise zum Datenschutz finden Sie hier (Informations on data privacy 
can be found here): https://linutronix.de/legal/data-protection.php

Linutronix GmbH | Firmensitz (Registered Office): Uhldingen-Mühlhofen | 
Registergericht (Registration Court): Amtsgericht Freiburg i.Br., HRB700 
806 | Geschäftsführer (Managing Directors): Dr. Wilfried Wessner, 
Katharina Kopp, Alexander Gieringer

Re: [PATCH v2] arm64: dts: broadcom: bcm2712-rpi-5-b: add spi0 interface

From: Florian Fainelli <florian.fainelli@broadcom.com>
Date: 2026-09-04 22:27:30

From: Florian Fainelli <f.fainelli@gmail.com>

On Fri, 04 Sep 2026 11:24:24 +0200, Gregor Herburger [off-list ref] wrote:
The Raspberry Pi 5 routes the spi0 of the rp1 chip to the pin header.
Add the rp1_spi0 node and its pinctrl node to the devicetree to enable
the spi interface.

Signed-off-by: Gregor Herburger <redacted>
---
Applied to https://github.com/Broadcom/stblinux/commits/devicetree-arm64/next, thanks!
--
Florian

Re: [PATCH v2] arm64: dts: broadcom: bcm2712-rpi-5-b: add spi0 interface

From: Florian Fainelli <florian.fainelli@broadcom.com>
Date: 2026-09-04 22:31:38

On 9/4/26 03:54, Gregor Herburger wrote:
Hi Andrea,

On Fri, Sep 04, 2026 at 12:33:51PM +0200, Andrea della Porta wrote:
quoted
Hi Gregor,

On 11:24 Fri 04 Sep     , Gregor Herburger wrote:
quoted
The Raspberry Pi 5 routes the spi0 of the rp1 chip to the pin header.
Add the rp1_spi0 node and its pinctrl node to the devicetree to enable
the spi interface.
Just a nit-pick: in the comment it's stated that the spi interface is enabled,
which is not true since rp1_usb inherit status="disabled" from its node
definition. This is fine because the user would probably want to enable the
spi interface through some overlay, so no need to resend the patch (at least
for me), so:
Indeed. It could be rephrased to:

	Add the rp1_spi0 node and its pinctrl nodes to the devicetree to make
	the spi interface available.

@Florian: Should I send another version or do you want to change it yourself?
I used that as the new version of your second paragraph, please let me 
know if I should be making further adjustments.

Thanks!
-- 
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help