Re: [PATCH v5 5/8] firmware: raspberrypi: register nvmem driver

From: Thomas Weißschuh

Date: Thu May 21 2026 - 11:16:35 EST


On Wed, May 20, 2026 at 04:27:57PM +0200, Gregor Herburger wrote:
> 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@xxxxxxxxxxxxx>

Reviewed-by: Thomas Weißschuh <thomas.weissschuh@xxxxxxxxxxxxx>

> ---
> drivers/firmware/raspberrypi.c | 59 +++++++++++++++++++++++++++++-
> include/soc/bcm2835/raspberrypi-firmware.h | 5 +++
> 2 files changed, 63 insertions(+), 1 deletion(-)

(...)

> +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));

These should use %pe which will nicely format the error.
This also differs from the other subdevice registrations which do not
print a message on error.

> +
> + 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));
> + }
> +}

(...)