diff options
author | Chunyan Zhang <zhang.chunyan@linaro.org> | 2019-05-22 09:15:01 +0800 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2019-06-26 11:12:50 -0700 |
commit | 69b39d2503af55e3a2ac3130c95855ac185bb70d (patch) | |
tree | 8fbce83b1fa0c2d46586bfad3ca077ff90d45510 /drivers/clk/sprd | |
parent | a188339ca5a396acc588e5851ed7e19f66b0ebd9 (diff) | |
download | lwn-69b39d2503af55e3a2ac3130c95855ac185bb70d.tar.gz lwn-69b39d2503af55e3a2ac3130c95855ac185bb70d.zip |
clk: sprd: Switch from of_iomap() to devm_ioremap_resource()
devm_ioremap_resources() automatically requests resources and devm_ wrappers
do better error handling and unmapping of the I/O region when needed,
that would make drivers more clean and simple.
Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org>
Reviewed-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'drivers/clk/sprd')
-rw-r--r-- | drivers/clk/sprd/common.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/clk/sprd/common.c b/drivers/clk/sprd/common.c index e038b0447206..9ce690999eaa 100644 --- a/drivers/clk/sprd/common.c +++ b/drivers/clk/sprd/common.c @@ -42,6 +42,7 @@ int sprd_clk_regmap_init(struct platform_device *pdev, void __iomem *base; struct device_node *node = pdev->dev.of_node; struct regmap *regmap; + struct resource *res; if (of_find_property(node, "sprd,syscon", NULL)) { regmap = syscon_regmap_lookup_by_phandle(node, "sprd,syscon"); @@ -50,7 +51,11 @@ int sprd_clk_regmap_init(struct platform_device *pdev, return PTR_ERR(regmap); } } else { - base = of_iomap(node, 0); + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(base)) + return PTR_ERR(base); + regmap = devm_regmap_init_mmio(&pdev->dev, base, &sprdclk_regmap_config); if (IS_ERR_OR_NULL(regmap)) { |