[PATCH 2/2] soc: nxp: Add a simple NXP LPC32xx socinfo driver

Krzysztof Kozlowski krzk at kernel.org
Fri Jan 2 01:58:47 PST 2026


On 02/01/2026 00:56, Vladimir Zapolskiy wrote:
> Add NXP LPC32xx specific driver to get unique SoC ID from System Control
> Block registers and export it to userspace.
> 
> Signed-off-by: Vladimir Zapolskiy <vz at mleia.com>
> ---
>  drivers/soc/Kconfig           |   1 +
>  drivers/soc/Makefile          |   1 +
>  drivers/soc/nxp/Kconfig       |  16 +++++
>  drivers/soc/nxp/Makefile      |   2 +
>  drivers/soc/nxp/lpc32xx-soc.c | 114 ++++++++++++++++++++++++++++++++++
>  5 files changed, 134 insertions(+)
>  create mode 100644 drivers/soc/nxp/Kconfig
>  create mode 100644 drivers/soc/nxp/Makefile
>  create mode 100644 drivers/soc/nxp/lpc32xx-soc.c
> 
> diff --git a/drivers/soc/Kconfig b/drivers/soc/Kconfig
> index a2d65adffb80..c21b0d2f58fc 100644
> --- a/drivers/soc/Kconfig
> +++ b/drivers/soc/Kconfig
> @@ -18,6 +18,7 @@ source "drivers/soc/loongson/Kconfig"
>  source "drivers/soc/mediatek/Kconfig"
>  source "drivers/soc/microchip/Kconfig"
>  source "drivers/soc/nuvoton/Kconfig"
> +source "drivers/soc/nxp/Kconfig"
>  source "drivers/soc/pxa/Kconfig"
>  source "drivers/soc/qcom/Kconfig"
>  source "drivers/soc/renesas/Kconfig"
> diff --git a/drivers/soc/Makefile b/drivers/soc/Makefile
> index 47a3925ff84c..a04c21a8a5a4 100644
> --- a/drivers/soc/Makefile
> +++ b/drivers/soc/Makefile
> @@ -24,6 +24,7 @@ obj-y				+= loongson/
>  obj-y				+= mediatek/
>  obj-y				+= microchip/
>  obj-y				+= nuvoton/
> +obj-y				+= nxp/
>  obj-y				+= pxa/
>  obj-y				+= qcom/
>  obj-y				+= renesas/

Missing maintainers entry.


> +
> +static int lpc32xx_soc_probe(struct platform_device *pdev)
> +{
> +	struct soc_device_attribute *soc_dev_attr;
> +	struct device *dev = &pdev->dev;
> +	struct soc_device *soc_dev;
> +	struct regmap *scb;
> +	u32 serial_id[4];
> +	int ret;
> +
> +	soc_dev_attr = devm_kzalloc(dev, sizeof(*soc_dev_attr), GFP_KERNEL);
> +	if (!soc_dev_attr)
> +		return -ENOMEM;
> +
> +	soc_dev_attr->family = "NXP LPC32xx";
> +
> +	ret = of_property_read_string(of_root, "model", &soc_dev_attr->machine);
> +	if (ret)
> +		return ret;
> +
> +	scb = syscon_regmap_lookup_by_compatible("nxp,lpc3220-scb");

This is undocumented ABI.

Anyway, you should look up devices via phandles.


Best regards,
Krzysztof



More information about the linux-arm-kernel mailing list