[PATCH v5 5/8] firmware: raspberrypi: register nvmem driver
Thomas Weißschuh
thomas.weissschuh at linutronix.de
Thu May 21 07:38:19 PDT 2026
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 at linutronix.de>
Reviewed-by: Thomas Weißschuh <thomas.weissschuh at linutronix.de>
> ---
> 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));
> + }
> +}
(...)
More information about the linux-arm-kernel
mailing list