Lines Matching +full:imx53 +full:- +full:iim
1 // SPDX-License-Identifier: GPL-2.0-only
3 * i.MX IIM driver
7 * Based on the barebox iim driver,
15 #include <linux/nvmem-provider.h>
36 struct iim_priv *iim = context; in imx_iim_read() local
40 ret = clk_prepare_enable(iim->clk); in imx_iim_read()
48 *buf8++ = readl(iim->base + IIM_BANK_BASE(bank) + reg * 4); in imx_iim_read()
51 clk_disable_unprepare(iim->clk); in imx_iim_read()
74 .compatible = "fsl,imx25-iim",
77 .compatible = "fsl,imx27-iim",
80 .compatible = "fsl,imx31-iim",
83 .compatible = "fsl,imx35-iim",
86 .compatible = "fsl,imx51-iim",
89 .compatible = "fsl,imx53-iim",
100 struct device *dev = &pdev->dev; in imx_iim_probe()
101 struct iim_priv *iim; in imx_iim_probe() local
106 iim = devm_kzalloc(dev, sizeof(*iim), GFP_KERNEL); in imx_iim_probe()
107 if (!iim) in imx_iim_probe()
108 return -ENOMEM; in imx_iim_probe()
110 iim->base = devm_platform_ioremap_resource(pdev, 0); in imx_iim_probe()
111 if (IS_ERR(iim->base)) in imx_iim_probe()
112 return PTR_ERR(iim->base); in imx_iim_probe()
116 return -ENODEV; in imx_iim_probe()
118 drvdata = of_id->data; in imx_iim_probe()
120 iim->clk = devm_clk_get(dev, NULL); in imx_iim_probe()
121 if (IS_ERR(iim->clk)) in imx_iim_probe()
122 return PTR_ERR(iim->clk); in imx_iim_probe()
124 cfg.name = "imx-iim", in imx_iim_probe()
130 cfg.size = drvdata->nregs; in imx_iim_probe()
131 cfg.priv = iim; in imx_iim_probe()
141 .name = "imx-iim",
148 MODULE_DESCRIPTION("i.MX IIM driver");