diff options
author | Leonard Crestez <leonard.crestez@nxp.com> | 2019-12-09 22:56:28 +0200 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2019-12-11 16:06:10 +0800 |
commit | 249fce6f3ab0dbd98caa9bc8ea4b50fa709e786a (patch) | |
tree | bbdf1a62dd2a21261bf38aa5ca6fcb75b18ef4ff /drivers/clk/imx/clk-imx8qxp-lpcg.c | |
parent | 134d43bb1ff09a696996f16ed8b28d404b770c8a (diff) |
clk: imx8qxp-lpcg: Warn against devm_platform_ioremap_resource
On imx8 the LPCG nodes map entire subsystems and overlap peripherals,
this means that using devm_platform_ioremap_resource will cause many
devices to fail to probe including serial ports.
Well-meaning but boot-breaking patches were posted multiple times so add
a comment explaining this issue.
Suggested-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Diffstat (limited to 'drivers/clk/imx/clk-imx8qxp-lpcg.c')
-rw-r--r-- | drivers/clk/imx/clk-imx8qxp-lpcg.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/clk/imx/clk-imx8qxp-lpcg.c b/drivers/clk/imx/clk-imx8qxp-lpcg.c index c0aff7ca6374..04c8ee35e14c 100644 --- a/drivers/clk/imx/clk-imx8qxp-lpcg.c +++ b/drivers/clk/imx/clk-imx8qxp-lpcg.c @@ -173,6 +173,17 @@ static int imx8qxp_lpcg_clk_probe(struct platform_device *pdev) if (!ss_lpcg) return -ENODEV; + /* + * Please don't replace this with devm_platform_ioremap_resource. + * + * devm_platform_ioremap_resource calls devm_ioremap_resource which + * differs from devm_ioremap by also calling devm_request_mem_region + * and preventing other mappings in the same area. + * + * On imx8 the LPCG nodes map entire subsystems and overlap + * peripherals, this means that using devm_platform_ioremap_resource + * will cause many devices to fail to probe including serial ports. + */ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) return -EINVAL; |