* [PATCH v2 0/4] nvmem: Add Raspberry Pi OTP nvmem driver
@ 2026-05-05 7:25 Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 1/4] dt-bindings: raspberrypi,bcm2835-firmware: Add bcm2712-firmware compatible Gregor Herburger
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Gregor Herburger @ 2026-05-05 7:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Ray Jui, Scott Branden, Broadcom internal kernel review list,
Eric Anholt, Stefan Wahren, Srinivas Kandagatla, Kees Cook,
Gustavo A. R. Silva
Cc: devicetree, linux-rpi-kernel, linux-arm-kernel, linux-kernel,
linux-hardening, Gregor Herburger
Hi,
This series adds support for the Raspberry Pis OTP registers. The
Raspberry Pi has one or more OTP regions. These registers are accessible
through the firmware. Add a driver for it and add updates the devicetree
for the Raspberry Pi 5.
---
Changes in v2:
- register nvmem driver from firmware driver and drop firmware sub nodes
- Use struct_size and __counted_by for dynamic array
- Drop unneeded comment in Kconfig
- Use NVMEM_DEVID_NONE
- Use kzalloc
- Update module description
- Link to v1: https://patch.msgid.link/20260408-rpi-otp-driver-v1-0-e02d1dbe6008@linutronix.de
---
Gregor Herburger (4):
dt-bindings: raspberrypi,bcm2835-firmware: Add bcm2712-firmware compatible
nvmem: Add the Raspberry Pi OTP driver
firmware: raspberrypi: register nvmem driver
arm64: dts: broadcom: bcm2712: add bcm2712-firmware compatible
.../arm/bcm/raspberrypi,bcm2835-firmware.yaml | 4 +-
.../boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi | 2 +-
drivers/firmware/raspberrypi.c | 59 +++++++++-
drivers/nvmem/Kconfig | 10 ++
drivers/nvmem/Makefile | 1 +
drivers/nvmem/raspberrypi-otp.c | 119 +++++++++++++++++++++
include/soc/bcm2835/raspberrypi-firmware.h | 14 +++
7 files changed, 206 insertions(+), 3 deletions(-)
---
base-commit: f3e6330d7fe42b204af05a2dbc68b379e0ad179e
change-id: 20260408-rpi-otp-driver-75fce1dcff7d
Best regards,
--
Gregor Herburger <gregor.herburger@linutronix.de>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 1/4] dt-bindings: raspberrypi,bcm2835-firmware: Add bcm2712-firmware compatible
2026-05-05 7:25 [PATCH v2 0/4] nvmem: Add Raspberry Pi OTP nvmem driver Gregor Herburger
@ 2026-05-05 7:25 ` Gregor Herburger
2026-05-05 9:00 ` Rob Herring (Arm)
2026-05-05 7:25 ` [PATCH v2 2/4] nvmem: Add the Raspberry Pi OTP driver Gregor Herburger
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Gregor Herburger @ 2026-05-05 7:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Ray Jui, Scott Branden, Broadcom internal kernel review list,
Eric Anholt, Stefan Wahren, Srinivas Kandagatla, Kees Cook,
Gustavo A. R. Silva
Cc: devicetree, linux-rpi-kernel, linux-arm-kernel, linux-kernel,
linux-hardening, Gregor Herburger
Add a compatible string for the bcm2712 firmware.
Signed-off-by: Gregor Herburger <gregor.herburger@linutronix.de>
---
.../devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml b/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml
index 983ea80eaec9..eb6b556511d8 100644
--- a/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml
+++ b/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml
@@ -22,7 +22,9 @@ select:
properties:
compatible:
items:
- - const: raspberrypi,bcm2835-firmware
+ - enum:
+ - raspberrypi,bcm2712-firmware
+ - raspberrypi,bcm2835-firmware
- const: simple-mfd
mboxes:
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 2/4] nvmem: Add the Raspberry Pi OTP driver
2026-05-05 7:25 [PATCH v2 0/4] nvmem: Add Raspberry Pi OTP nvmem driver Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 1/4] dt-bindings: raspberrypi,bcm2835-firmware: Add bcm2712-firmware compatible Gregor Herburger
@ 2026-05-05 7:25 ` Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 3/4] firmware: raspberrypi: register nvmem driver Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 4/4] arm64: dts: broadcom: bcm2712: add bcm2712-firmware compatible Gregor Herburger
3 siblings, 0 replies; 9+ messages in thread
From: Gregor Herburger @ 2026-05-05 7:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Ray Jui, Scott Branden, Broadcom internal kernel review list,
Eric Anholt, Stefan Wahren, Srinivas Kandagatla, Kees Cook,
Gustavo A. R. Silva
Cc: devicetree, linux-rpi-kernel, linux-arm-kernel, linux-kernel,
linux-hardening, Gregor Herburger
Raspberry Pis have OTP registers which can be accessed through the
videocore firmware. Add a nvmem driver to support these OTP registers.
Signed-off-by: Gregor Herburger <gregor.herburger@linutronix.de>
---
drivers/nvmem/Kconfig | 10 +++
drivers/nvmem/Makefile | 1 +
drivers/nvmem/raspberrypi-otp.c | 119 +++++++++++++++++++++++++++++
include/soc/bcm2835/raspberrypi-firmware.h | 9 +++
4 files changed, 139 insertions(+)
diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig
index 74ddbd0f79b0..4ecfb0dfbe6b 100644
--- a/drivers/nvmem/Kconfig
+++ b/drivers/nvmem/Kconfig
@@ -483,4 +483,14 @@ config NVMEM_QORIQ_EFUSE
This driver can also be built as a module. If so, the module
will be called nvmem_qoriq_efuse.
+config NVMEM_RASPBERRYPI_OTP
+ tristate "Raspberry Pi OTP support"
+ depends on RASPBERRYPI_FIRMWARE || COMPILE_TEST
+ help
+ This driver provides access to the Raspberry Pi OTP memory via the
+ nvmem subsystem. The driver supports the customer OTP as well as the
+ device specific private key OTP (BCM2712 only).
+
+ This driver can also be built as a module. If so, the module
+ will be called raspberrypi-otp.
endif
diff --git a/drivers/nvmem/Makefile b/drivers/nvmem/Makefile
index 7252b8ec88d4..8ca2095e068f 100644
--- a/drivers/nvmem/Makefile
+++ b/drivers/nvmem/Makefile
@@ -95,3 +95,4 @@ obj-$(CONFIG_NVMEM_ZYNQMP) += nvmem_zynqmp_nvmem.o
nvmem_zynqmp_nvmem-y := zynqmp_nvmem.o
obj-$(CONFIG_NVMEM_QORIQ_EFUSE) += nvmem-qoriq-efuse.o
nvmem-qoriq-efuse-y := qoriq-efuse.o
+obj-$(CONFIG_NVMEM_RASPBERRYPI_OTP) += raspberrypi-otp.o
diff --git a/drivers/nvmem/raspberrypi-otp.c b/drivers/nvmem/raspberrypi-otp.c
new file mode 100644
index 000000000000..83624aa85bb3
--- /dev/null
+++ b/drivers/nvmem/raspberrypi-otp.c
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include <linux/overflow.h>
+#include <linux/module.h>
+#include <linux/nvmem-provider.h>
+#include <linux/platform_device.h>
+#include <soc/bcm2835/raspberrypi-firmware.h>
+
+struct rpi_otp_priv {
+ struct rpi_firmware *fw;
+ struct device *dev;
+ u32 read_tag;
+ u32 write_tag;
+};
+
+struct rpi_otp_header {
+ u32 start;
+ u32 count;
+ u32 data[] __counted_by(count);
+};
+
+static int rpi_otp_read(void *context, unsigned int offset, void *buf, size_t bytes)
+{
+ struct rpi_otp_priv *priv = context;
+ struct rpi_otp_header *fwbuf;
+ u32 count = bytes / 4;
+ int ret;
+
+ fwbuf = kzalloc(struct_size(fwbuf, data, count), GFP_KERNEL);
+ if (!fwbuf)
+ return -ENOMEM;
+
+ fwbuf->start = offset / 4;
+ fwbuf->count = count;
+
+ ret = rpi_firmware_property(priv->fw, priv->read_tag, fwbuf,
+ sizeof(struct rpi_otp_header) + bytes);
+ if (ret)
+ goto out;
+
+ memcpy(buf, fwbuf->data, bytes);
+
+out:
+ kfree(fwbuf);
+ return ret;
+}
+
+static int rpi_otp_write(void *context, unsigned int offset, void *val, size_t bytes)
+{
+ struct rpi_otp_priv *priv = context;
+ struct rpi_otp_header *fwbuf;
+ u32 count = bytes / 4;
+ int ret;
+
+ fwbuf = kzalloc(struct_size(fwbuf, data, count), GFP_KERNEL);
+ if (!fwbuf)
+ return -ENOMEM;
+
+ fwbuf->start = offset / 4;
+ fwbuf->count = count;
+ memcpy(fwbuf->data, val, bytes);
+
+ ret = rpi_firmware_property(priv->fw, priv->write_tag, fwbuf,
+ sizeof(struct rpi_otp_header) + bytes);
+
+ kfree(fwbuf);
+ return ret;
+}
+
+static int rpi_otp_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ struct nvmem_device *nvmem;
+ struct rpi_otp_priv *priv;
+ const struct rpi_otp_driver_data *data;
+ struct nvmem_config config = {
+ .read_only = false,
+ .word_size = 4,
+ .stride = 4,
+ .reg_read = rpi_otp_read,
+ .reg_write = rpi_otp_write,
+ .id = NVMEM_DEVID_NONE,
+ };
+
+ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
+ if (!priv)
+ return -ENOMEM;
+
+ data = dev_get_platdata(dev);
+ if (!data)
+ return -ENODEV;
+
+ priv->fw = dev_get_drvdata(dev->parent);
+ priv->dev = dev;
+ priv->read_tag = data->read_tag;
+ priv->write_tag = data->write_tag;
+ config.dev = dev;
+ config.priv = priv;
+ config.name = data->name;
+ config.size = data->size;
+
+ nvmem = devm_nvmem_register(dev, &config);
+ if (IS_ERR(nvmem))
+ return dev_err_probe(dev, PTR_ERR(nvmem), "error registering nvmem config\n");
+
+ return 0;
+}
+
+static struct platform_driver raspberry_otp_driver = {
+ .probe = rpi_otp_probe,
+ .driver = {
+ .name = "raspberrypi-otp",
+ },
+};
+module_platform_driver(raspberry_otp_driver);
+
+MODULE_AUTHOR("Gregor Herburger <gregor.herburger@linutronix.de>");
+MODULE_DESCRIPTION("Raspberry Pi OTP driver");
+MODULE_LICENSE("GPL");
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
index e1f87fbfe554..ae73c9cd19ba 100644
--- a/include/soc/bcm2835/raspberrypi-firmware.h
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
@@ -92,6 +92,8 @@ enum rpi_firmware_property_tag {
RPI_FIRMWARE_SET_POE_HAT_VAL = 0x00030050,
RPI_FIRMWARE_NOTIFY_XHCI_RESET = 0x00030058,
RPI_FIRMWARE_NOTIFY_DISPLAY_DONE = 0x00030066,
+ RPI_FIRMWARE_GET_PRIVATE_OTP = 0x00030081,
+ RPI_FIRMWARE_SET_PRIVATE_OTP = 0x00038081,
/* Dispmanx TAGS */
RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001,
@@ -174,6 +176,13 @@ struct rpi_firmware_clk_rate_request {
.id = cpu_to_le32(_id), \
}
+struct rpi_otp_driver_data {
+ const char *name;
+ u32 read_tag;
+ u32 write_tag;
+ int size;
+};
+
#if IS_ENABLED(CONFIG_RASPBERRYPI_FIRMWARE)
int rpi_firmware_property(struct rpi_firmware *fw,
u32 tag, void *data, size_t len);
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 3/4] firmware: raspberrypi: register nvmem driver
2026-05-05 7:25 [PATCH v2 0/4] nvmem: Add Raspberry Pi OTP nvmem driver Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 1/4] dt-bindings: raspberrypi,bcm2835-firmware: Add bcm2712-firmware compatible Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 2/4] nvmem: Add the Raspberry Pi OTP driver Gregor Herburger
@ 2026-05-05 7:25 ` Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 4/4] arm64: dts: broadcom: bcm2712: add bcm2712-firmware compatible Gregor Herburger
3 siblings, 0 replies; 9+ messages in thread
From: Gregor Herburger @ 2026-05-05 7:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Ray Jui, Scott Branden, Broadcom internal kernel review list,
Eric Anholt, Stefan Wahren, Srinivas Kandagatla, Kees Cook,
Gustavo A. R. Silva
Cc: devicetree, linux-rpi-kernel, linux-arm-kernel, linux-kernel,
linux-hardening, Gregor Herburger
The Raspberry Pi firmware exposes two regions with otp registers. The
first region called "customer otp" is available on all Raspberry Pi
models. The second is only available on the Raspberry Pi 5 (bcm2712).
Signed-off-by: Gregor Herburger <gregor.herburger@linutronix.de>
---
drivers/firmware/raspberrypi.c | 59 +++++++++++++++++++++++++++++-
include/soc/bcm2835/raspberrypi-firmware.h | 5 +++
2 files changed, 63 insertions(+), 1 deletion(-)
diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c
index 0aa322e9a2e7..b363ec7bc5b4 100644
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -24,12 +24,15 @@
static struct platform_device *rpi_hwmon;
static struct platform_device *rpi_clk;
+static struct platform_device *rpi_otp_customer;
+static struct platform_device *rpi_otp_private;
struct rpi_firmware {
struct mbox_client cl;
struct mbox_chan *chan; /* The property channel. */
struct completion c;
u32 enabled;
+ enum rpi_firmware_soc soc;
struct kref consumers;
};
@@ -231,6 +234,45 @@ static void rpi_register_clk_driver(struct device *dev)
-1, NULL, 0);
}
+static const struct rpi_otp_driver_data rpi_otp_customer_data = {
+ .name = "rpi-otp-customer",
+ .read_tag = RPI_FIRMWARE_GET_CUSTOMER_OTP,
+ .write_tag = RPI_FIRMWARE_SET_CUSTOMER_OTP,
+ .size = 32,
+};
+
+static const struct rpi_otp_driver_data rpi_otp_private_data = {
+ .name = "rpi-otp-private",
+ .read_tag = RPI_FIRMWARE_GET_PRIVATE_OTP,
+ .write_tag = RPI_FIRMWARE_SET_PRIVATE_OTP,
+ .size = 32,
+};
+
+static void rpi_register_otp_driver(struct device *dev)
+{
+ struct rpi_firmware *fw = dev_get_drvdata(dev);
+
+ rpi_otp_customer = platform_device_register_data(dev, "raspberrypi-otp",
+ PLATFORM_DEVID_AUTO,
+ &rpi_otp_customer_data,
+ sizeof(rpi_otp_customer_data));
+
+ if (IS_ERR(rpi_otp_customer))
+ dev_err(dev, "Failed to register customer OTP device: %ld\n",
+ PTR_ERR(rpi_otp_customer));
+
+ if (fw->soc == RPI_FIRMWARE_SOC_BCM2712) {
+ rpi_otp_private = platform_device_register_data(dev, "raspberrypi-otp",
+ PLATFORM_DEVID_AUTO,
+ &rpi_otp_private_data,
+ sizeof(rpi_otp_private_data));
+
+ if (IS_ERR(rpi_otp_private))
+ dev_err(dev, "Failed to register private OTP device: %ld\n",
+ PTR_ERR(rpi_otp_private));
+ }
+}
+
unsigned int rpi_firmware_clk_get_max_rate(struct rpi_firmware *fw, unsigned int id)
{
struct rpi_firmware_clk_rate_request msg =
@@ -299,12 +341,14 @@ static int rpi_firmware_probe(struct platform_device *pdev)
init_completion(&fw->c);
kref_init(&fw->consumers);
+ fw->soc = (uintptr_t)device_get_match_data(dev);
platform_set_drvdata(pdev, fw);
rpi_firmware_print_firmware_revision(fw);
rpi_register_hwmon_driver(dev, fw);
rpi_register_clk_driver(dev);
+ rpi_register_otp_driver(dev);
return 0;
}
@@ -327,12 +371,25 @@ static void rpi_firmware_remove(struct platform_device *pdev)
rpi_hwmon = NULL;
platform_device_unregister(rpi_clk);
rpi_clk = NULL;
+ platform_device_unregister(rpi_otp_customer);
+ rpi_otp_customer = NULL;
+ if (rpi_otp_private)
+ platform_device_unregister(rpi_otp_private);
+
+ rpi_otp_private = NULL;
rpi_firmware_put(fw);
}
static const struct of_device_id rpi_firmware_of_match[] = {
- { .compatible = "raspberrypi,bcm2835-firmware", },
+ {
+ .compatible = "raspberrypi,bcm2835-firmware",
+ .data = (void *)RPI_FIRMWARE_SOC_BCM2835,
+ },
+ {
+ .compatible = "raspberrypi,bcm2712-firmware",
+ .data = (void *)RPI_FIRMWARE_SOC_BCM2712,
+ },
{},
};
MODULE_DEVICE_TABLE(of, rpi_firmware_of_match);
diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
index ae73c9cd19ba..17595a96e90b 100644
--- a/include/soc/bcm2835/raspberrypi-firmware.h
+++ b/include/soc/bcm2835/raspberrypi-firmware.h
@@ -9,6 +9,11 @@
#include <linux/types.h>
#include <linux/of_device.h>
+enum rpi_firmware_soc {
+ RPI_FIRMWARE_SOC_BCM2835,
+ RPI_FIRMWARE_SOC_BCM2712,
+};
+
struct rpi_firmware;
enum rpi_firmware_property_status {
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 4/4] arm64: dts: broadcom: bcm2712: add bcm2712-firmware compatible
2026-05-05 7:25 [PATCH v2 0/4] nvmem: Add Raspberry Pi OTP nvmem driver Gregor Herburger
` (2 preceding siblings ...)
2026-05-05 7:25 ` [PATCH v2 3/4] firmware: raspberrypi: register nvmem driver Gregor Herburger
@ 2026-05-05 7:25 ` Gregor Herburger
2026-05-05 9:21 ` Krzysztof Kozlowski
3 siblings, 1 reply; 9+ messages in thread
From: Gregor Herburger @ 2026-05-05 7:25 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Ray Jui, Scott Branden, Broadcom internal kernel review list,
Eric Anholt, Stefan Wahren, Srinivas Kandagatla, Kees Cook,
Gustavo A. R. Silva
Cc: devicetree, linux-rpi-kernel, linux-arm-kernel, linux-kernel,
linux-hardening, Gregor Herburger
The Raspberry Pi 5 firmware exposes additional features. Update the
compatible to reflect these differences.
Signed-off-by: Gregor Herburger <gregor.herburger@linutronix.de>
---
arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
index b7a6bc34ae1a..7283078fd441 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
@@ -46,7 +46,7 @@ power_button: power-button {
firmware {
firmware: rpi-firmware {
- compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
+ compatible = "raspberrypi,bcm2712-firmware", "simple-mfd";
mboxes = <&mailbox>;
--
2.47.3
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/4] dt-bindings: raspberrypi,bcm2835-firmware: Add bcm2712-firmware compatible
2026-05-05 7:25 ` [PATCH v2 1/4] dt-bindings: raspberrypi,bcm2835-firmware: Add bcm2712-firmware compatible Gregor Herburger
@ 2026-05-05 9:00 ` Rob Herring (Arm)
0 siblings, 0 replies; 9+ messages in thread
From: Rob Herring (Arm) @ 2026-05-05 9:00 UTC (permalink / raw)
To: Gregor Herburger
Cc: Ray Jui, Eric Anholt, Srinivas Kandagatla, devicetree,
linux-arm-kernel, Florian Fainelli, Scott Branden, Stefan Wahren,
Gustavo A. R. Silva, linux-rpi-kernel, Krzysztof Kozlowski,
linux-kernel, Kees Cook, Broadcom internal kernel review list,
Conor Dooley, linux-hardening
On Tue, 05 May 2026 09:25:09 +0200, Gregor Herburger wrote:
> Add a compatible string for the bcm2712 firmware.
>
> Signed-off-by: Gregor Herburger <gregor.herburger@linutronix.de>
> ---
> .../devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
./Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml:26:9: [warning] wrong indentation: expected 10 but found 8 (indentation)
dtschema/dtc warnings/errors:
doc reference errors (make refcheckdocs):
See https://patchwork.kernel.org/project/devicetree/patch/20260505-rpi-otp-driver-v2-1-e9176ec72837@linutronix.de
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 4/4] arm64: dts: broadcom: bcm2712: add bcm2712-firmware compatible
2026-05-05 7:25 ` [PATCH v2 4/4] arm64: dts: broadcom: bcm2712: add bcm2712-firmware compatible Gregor Herburger
@ 2026-05-05 9:21 ` Krzysztof Kozlowski
2026-05-05 9:22 ` Krzysztof Kozlowski
0 siblings, 1 reply; 9+ messages in thread
From: Krzysztof Kozlowski @ 2026-05-05 9:21 UTC (permalink / raw)
To: Gregor Herburger, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Florian Fainelli, Ray Jui, Scott Branden,
Broadcom internal kernel review list, Eric Anholt, Stefan Wahren,
Srinivas Kandagatla, Kees Cook, Gustavo A. R. Silva
Cc: devicetree, linux-rpi-kernel, linux-arm-kernel, linux-kernel,
linux-hardening
On 05/05/2026 09:25, Gregor Herburger wrote:
> The Raspberry Pi 5 firmware exposes additional features. Update the
> compatible to reflect these differences.
>
> Signed-off-by: Gregor Herburger <gregor.herburger@linutronix.de>
> ---
> arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
> index b7a6bc34ae1a..7283078fd441 100644
> --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
> +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
> @@ -46,7 +46,7 @@ power_button: power-button {
>
> firmware {
> firmware: rpi-firmware {
> - compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
> + compatible = "raspberrypi,bcm2712-firmware", "simple-mfd";
This breaks users without mentioning and without proper reason.
"Additional features" is not a reason to break users. At least not
without explaining the actual impact, but even with the impact IMO this
is just wrong.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 4/4] arm64: dts: broadcom: bcm2712: add bcm2712-firmware compatible
2026-05-05 9:21 ` Krzysztof Kozlowski
@ 2026-05-05 9:22 ` Krzysztof Kozlowski
2026-05-05 15:07 ` Gregor Herburger
0 siblings, 1 reply; 9+ messages in thread
From: Krzysztof Kozlowski @ 2026-05-05 9:22 UTC (permalink / raw)
To: Gregor Herburger, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Florian Fainelli, Ray Jui, Scott Branden,
Broadcom internal kernel review list, Eric Anholt, Stefan Wahren,
Srinivas Kandagatla, Kees Cook, Gustavo A. R. Silva
Cc: devicetree, linux-rpi-kernel, linux-arm-kernel, linux-kernel,
linux-hardening
On 05/05/2026 11:21, Krzysztof Kozlowski wrote:
> On 05/05/2026 09:25, Gregor Herburger wrote:
>> The Raspberry Pi 5 firmware exposes additional features. Update the
>> compatible to reflect these differences.
>>
>> Signed-off-by: Gregor Herburger <gregor.herburger@linutronix.de>
>> ---
>> arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
>> index b7a6bc34ae1a..7283078fd441 100644
>> --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
>> +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
>> @@ -46,7 +46,7 @@ power_button: power-button {
>>
>> firmware {
>> firmware: rpi-firmware {
>> - compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
>> + compatible = "raspberrypi,bcm2712-firmware", "simple-mfd";
>
> This breaks users without mentioning and without proper reason.
> "Additional features" is not a reason to break users. At least not
> without explaining the actual impact, but even with the impact IMO this
> is just wrong.
>
Heh, and you ignored completely our final comments in last discussion.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 4/4] arm64: dts: broadcom: bcm2712: add bcm2712-firmware compatible
2026-05-05 9:22 ` Krzysztof Kozlowski
@ 2026-05-05 15:07 ` Gregor Herburger
0 siblings, 0 replies; 9+ messages in thread
From: Gregor Herburger @ 2026-05-05 15:07 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Florian Fainelli,
Ray Jui, Scott Branden, Broadcom internal kernel review list,
Eric Anholt, Stefan Wahren, Srinivas Kandagatla, Kees Cook,
Gustavo A. R. Silva, devicetree, linux-rpi-kernel,
linux-arm-kernel, linux-kernel, linux-hardening
On Tue, May 05, 2026 at 11:22:54AM +0200, Krzysztof Kozlowski wrote:
> On 05/05/2026 11:21, Krzysztof Kozlowski wrote:
> > On 05/05/2026 09:25, Gregor Herburger wrote:
> >> The Raspberry Pi 5 firmware exposes additional features. Update the
> >> compatible to reflect these differences.
> >>
> >> Signed-off-by: Gregor Herburger <gregor.herburger@linutronix.de>
> >> ---
> >> arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
> >> index b7a6bc34ae1a..7283078fd441 100644
> >> --- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
> >> +++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi
> >> @@ -46,7 +46,7 @@ power_button: power-button {
> >>
> >> firmware {
> >> firmware: rpi-firmware {
> >> - compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
> >> + compatible = "raspberrypi,bcm2712-firmware", "simple-mfd";
> >
> > This breaks users without mentioning and without proper reason.
> > "Additional features" is not a reason to break users. At least not
> > without explaining the actual impact, but even with the impact IMO this
> > is just wrong.
> >
>
>
> Heh, and you ignored completely our final comments in last discussion.
Oh. I actually had it in my first draft, but then got schema warnings and
messed it up somehow. Sorry for the noise. Will change it to the fallback in the
next version. Will send a new version with the suggestions from Sashiko.
Regards
--
Gregor Herburger
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-05-05 15:07 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-05 7:25 [PATCH v2 0/4] nvmem: Add Raspberry Pi OTP nvmem driver Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 1/4] dt-bindings: raspberrypi,bcm2835-firmware: Add bcm2712-firmware compatible Gregor Herburger
2026-05-05 9:00 ` Rob Herring (Arm)
2026-05-05 7:25 ` [PATCH v2 2/4] nvmem: Add the Raspberry Pi OTP driver Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 3/4] firmware: raspberrypi: register nvmem driver Gregor Herburger
2026-05-05 7:25 ` [PATCH v2 4/4] arm64: dts: broadcom: bcm2712: add bcm2712-firmware compatible Gregor Herburger
2026-05-05 9:21 ` Krzysztof Kozlowski
2026-05-05 9:22 ` Krzysztof Kozlowski
2026-05-05 15:07 ` Gregor Herburger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox