Re: [PATCH v7 10/12] nvmem: s32g2_siul2: add NVMEM driver for SoC information
From: Andrei Stefanescu <hidden>
Date: 2025-08-01 14:36:47
Also in:
imx, linux-arm-kernel, linux-gpio, lkml
Thank you for the review! I've just taken a look over soc_device and I agree, this driver should be a soc_device. I will convert it in the next revision.
Hi Arnd, I took a more in-depth look over soc_device and how to apply it to SIUL2 and I have encountered an issue. Downstream [1], [2], [3] we use SIUL2 nvmem-cells to set the PCIe vendor id partially based on the part number and also to ensure that the SerDes subsystem is present. I don't think we can achieve this with a soc_device driver. I saw that we could export a custom attribute but I don't think we can read it from the PCIe driver. Apart from the proposed NVMEM driver, there is also an option of exporting a syscon regmap for the registers which provide information about the SoC. I have seen that typically NVMEM drivers export information read from fuses but I think having a NVMEM driver is nicer way to access the information instead of using a syscon regmap and manually extracting the needed bits. To provide a bit of context: the SIUL2 IP has two registers called SIUL2 MCU ID Register (MIDR1/2) which export information such as: the part number, major, minor, package, maximum frequency, flash size, SRAM size, SerDes susbsytem presence and so on. S32G2/3 SoCs have two SIUL2 blocks named SIUL2_0 and SIUL2_1. We need to export the MIDR1/2 registers of both SIUL2 hardware blocks. What do you think? Would it be ok to keep the existing NVMEM implementation? Do you have any other suggestions? Best regards, Andrei [1] - https://github.com/nxp-auto-linux/linux/blob/release/bsp44.0-6.6.85-rt/arch/arm64/boot/dts/freescale/s32cc.dtsi#L1036 [2] - https://github.com/nxp-auto-linux/linux/blob/release/bsp44.0-6.6.85-rt/drivers/pci/controller/dwc/pci-s32cc.c#L832 [3] - https://github.com/nxp-auto-linux/linux/blob/release/bsp44.0-6.6.85-rt/drivers/pci/controller/dwc/pci-s32cc.c#L163