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 v6: - Use %pe in dev_err - Include <linux/slab.h> to fix build on arm - Add arm defconfigs: multi_v7_defconfig and bcm2835_defconfig - Reword commit messages - Link to v5: https://patch.msgid.link/[email protected] Changes in v5: - Move alignment check to nvmem core - Use IS_REACHABLE to simplify Kconfig - use root_only for private driver - Add driver as module to arch64 defconfig - Use MODULE_DEVICE_TABLE - Remove some unused attributes, fix typos, minor fixups - Link to v4: https://patch.msgid.link/[email protected] Changes in v4: - Additional patch to drop unnecessary select schema - fix dt-bindings - use __counted_by_le - additional alignment check in read/write callbacks - Link to v3: https://patch.msgid.link/[email protected] Changes in v3: - dts: add "raspberrypi,bcm2835-firmware" as fallback and fix dt-bindings - Fix Kconfig depends - Changed firmware data fields to __le32 - Add MODULE_ALIAS - Link to v2: https://patch.msgid.link/[email protected] 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/[email protected] --- Gregor Herburger (10): soc: bcm2835: Use IS_REACHABLE for function declaration nvmem: core: Enforce stride and alignment checks for nvmem_device functions 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 raspberrypi,bcm2712-firmware compatible dt-bindings: raspberrypi,bcm2835-firmware: Drop unnecessary select arm64: defconfig: Enable the raspberrypi otp driver as module ARM: bcm2835_defconfig: Enable the raspberrypi otp driver as module ARM: multi_v7_defconfig: Enable the raspberrypi otp driver as module .../arm/bcm/raspberrypi,bcm2835-firmware.yaml | 20 ++-- arch/arm/configs/bcm2835_defconfig | 2 + arch/arm/configs/multi_v7_defconfig | 1 + .../boot/dts/broadcom/bcm2712-rpi-5-b-base.dtsi | 4 +- arch/arm64/configs/defconfig | 1 + drivers/firmware/raspberrypi.c | 59 +++++++++- drivers/nvmem/Kconfig | 11 ++ drivers/nvmem/Makefile | 1 + drivers/nvmem/core.c | 12 ++ drivers/nvmem/raspberrypi-otp.c | 131 +++++++++++++++++++++ include/soc/bcm2835/raspberrypi-firmware.h | 17 ++- 11 files changed, 244 insertions(+), 15 deletions(-) --- base-commit: f3e6330d7fe42b204af05a2dbc68b379e0ad179e change-id: 20260408-rpi-otp-driver-75fce1dcff7d Best regards, -- Gregor Herburger <[email protected]>

