Commit e6b84cc2 authored by Chen-Yu Tsai's avatar Chen-Yu Tsai
Browse files

soc: sunxi: sram: register regmap as syscon



If the system controller had a ethernet controller glue layer control
register, a limited access regmap would be registered and tied to the
system controller struct device for the ethernet driver to use.

Until now, for the ethernet driver to acquire this regmap, it had to
do a of_parse_phandle() + find device + dev_get_regmap() sequence.
Since the syscon framework allows a provider to register a custom
regmap for its device node, and the ethernet driver already uses
syscon for one platform, this provides a much more easier way to
pass the regmap.

Use of_syscon_register_regmap() to register our regmap with the
syscon framework so that consumers can retrieve it that way.

Acked-by: default avatarJernej Skrabec <jernej.skrabec@gmail.com>
Link: https://patch.msgid.link/20250908181059.1785605-5-wens@kernel.org


Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
parent 30849ab4
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@

#include <linux/debugfs.h>
#include <linux/io.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_address.h>
@@ -367,6 +368,7 @@ static int __init sunxi_sram_probe(struct platform_device *pdev)
	const struct sunxi_sramc_variant *variant;
	struct device *dev = &pdev->dev;
	struct regmap *regmap;
	int ret;

	sram_dev = &pdev->dev;

@@ -384,6 +386,10 @@ static int __init sunxi_sram_probe(struct platform_device *pdev)
		regmap = devm_regmap_init_mmio(dev, base, &sunxi_sram_regmap_config);
		if (IS_ERR(regmap))
			return PTR_ERR(regmap);

		ret = of_syscon_register_regmap(dev->of_node, regmap);
		if (ret)
			return ret;
	}

	of_platform_populate(dev->of_node, NULL, NULL, dev);