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 <[email protected]>
Reviewed-by: Thomas Weißschuh <[email protected]> > --- > 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)); > + } > +} (...)

