* [PATCH 1/3] arm: dts: imx6qdl: add clocks property for ocotp node @ 2016-04-19 8:33 ` Peng Fan 0 siblings, 0 replies; 11+ messages in thread From: Peng Fan @ 2016-04-19 8:33 UTC (permalink / raw) To: linux-arm-kernel Add clocks property for ocotp node. Signed-off-by: Peng Fan <van.freenix@gmail.com> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Rob Herring <robh+dt@kernel.org> --- arch/arm/boot/dts/imx6qdl.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index b42822a..6b2ef6c 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi @@ -1100,6 +1100,7 @@ ocotp: ocotp at 021bc000 { compatible = "fsl,imx6q-ocotp", "syscon"; reg = <0x021bc000 0x4000>; + clocks = <&clks IMX6QDL_CLK_IIM>; }; tzasc at 021d0000 { /* TZASC1 */ -- 1.8.4.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 1/3] arm: dts: imx6qdl: add clocks property for ocotp node @ 2016-04-19 8:33 ` Peng Fan 0 siblings, 0 replies; 11+ messages in thread From: Peng Fan @ 2016-04-19 8:33 UTC (permalink / raw) To: shawnguo, srinivas.kandagatla, maxime.ripard Cc: linux-arm-kernel, devicetree, linux-kernel, van.freenix, Sascha Hauer, Rob Herring Add clocks property for ocotp node. Signed-off-by: Peng Fan <van.freenix@gmail.com> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Rob Herring <robh+dt@kernel.org> --- arch/arm/boot/dts/imx6qdl.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi index b42822a..6b2ef6c 100644 --- a/arch/arm/boot/dts/imx6qdl.dtsi +++ b/arch/arm/boot/dts/imx6qdl.dtsi @@ -1100,6 +1100,7 @@ ocotp: ocotp@021bc000 { compatible = "fsl,imx6q-ocotp", "syscon"; reg = <0x021bc000 0x4000>; + clocks = <&clks IMX6QDL_CLK_IIM>; }; tzasc@021d0000 { /* TZASC1 */ -- 1.8.4.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/3] arm: dts: imx6sl: add clocks property for ocotp node 2016-04-19 8:33 ` Peng Fan @ 2016-04-19 8:33 ` Peng Fan -1 siblings, 0 replies; 11+ messages in thread From: Peng Fan @ 2016-04-19 8:33 UTC (permalink / raw) To: linux-arm-kernel Add clocks property for ocotp node. Signed-off-by: Peng Fan <van.freenix@gmail.com> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Rob Herring <robh+dt@kernel.org> --- arch/arm/boot/dts/imx6sl.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi index d12b250..b37da94 100644 --- a/arch/arm/boot/dts/imx6sl.dtsi +++ b/arch/arm/boot/dts/imx6sl.dtsi @@ -853,6 +853,7 @@ ocotp: ocotp at 021bc000 { compatible = "fsl,imx6sl-ocotp", "syscon"; reg = <0x021bc000 0x4000>; + clocks = <&clks IMX6SL_CLK_OCOTP>; }; audmux: audmux at 021d8000 { -- 1.8.4.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/3] arm: dts: imx6sl: add clocks property for ocotp node @ 2016-04-19 8:33 ` Peng Fan 0 siblings, 0 replies; 11+ messages in thread From: Peng Fan @ 2016-04-19 8:33 UTC (permalink / raw) To: shawnguo, srinivas.kandagatla, maxime.ripard Cc: linux-arm-kernel, devicetree, linux-kernel, van.freenix, Sascha Hauer, Rob Herring Add clocks property for ocotp node. Signed-off-by: Peng Fan <van.freenix@gmail.com> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Sascha Hauer <kernel@pengutronix.de> Cc: Rob Herring <robh+dt@kernel.org> --- arch/arm/boot/dts/imx6sl.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi index d12b250..b37da94 100644 --- a/arch/arm/boot/dts/imx6sl.dtsi +++ b/arch/arm/boot/dts/imx6sl.dtsi @@ -853,6 +853,7 @@ ocotp: ocotp@021bc000 { compatible = "fsl,imx6sl-ocotp", "syscon"; reg = <0x021bc000 0x4000>; + clocks = <&clks IMX6SL_CLK_OCOTP>; }; audmux: audmux@021d8000 { -- 1.8.4.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/3] nvmem: imx-ocotp: handling clock 2016-04-19 8:33 ` Peng Fan @ 2016-04-19 8:33 ` Peng Fan -1 siblings, 0 replies; 11+ messages in thread From: Peng Fan @ 2016-04-19 8:33 UTC (permalink / raw) To: linux-arm-kernel Before access ocotp nvmem area, the clock should be enabled. Or, `hexdump nvmem` will hang the system. So, use such flow: " 1. clock_enable_prepare 2. read nvmem ocotp area 3. clock_disable_unprepare " Signed-off-by: Peng Fan <van.freenix@gmail.com> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Cc: Maxime Ripard <maxime.ripard@free-electrons.com> Cc: Shawn Guo <shawnguo@kernel.org> --- drivers/nvmem/imx-ocotp.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c index d7796eb..55095c0 100644 --- a/drivers/nvmem/imx-ocotp.c +++ b/drivers/nvmem/imx-ocotp.c @@ -15,6 +15,7 @@ * http://www.gnu.org/copyleft/gpl.html */ +#include <linux/clk.h> #include <linux/device.h> #include <linux/io.h> #include <linux/module.h> @@ -27,6 +28,7 @@ struct ocotp_priv { struct device *dev; + struct clk *clk; void __iomem *base; unsigned int nregs; }; @@ -46,11 +48,15 @@ static int imx_ocotp_read(void *context, const void *reg, size_t reg_size, if (count > (priv->nregs - index)) count = priv->nregs - index; + clk_prepare_enable(priv->clk); + for (i = index; i < (index + count); i++) { *(u32 *)val = readl(priv->base + 0x400 + i * 0x10); val += 4; } + clk_disable_unprepare(priv->clk); + return 0; } @@ -112,6 +118,10 @@ static int imx_ocotp_probe(struct platform_device *pdev) if (IS_ERR(priv->base)) return PTR_ERR(priv->base); + priv->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(priv->clk)) + return PTR_ERR(priv->clk); + of_id = of_match_device(imx_ocotp_dt_ids, dev); priv->nregs = (unsigned int)of_id->data; imx_ocotp_regmap_config.max_register = 4 * priv->nregs - 4; -- 1.8.4.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/3] nvmem: imx-ocotp: handling clock @ 2016-04-19 8:33 ` Peng Fan 0 siblings, 0 replies; 11+ messages in thread From: Peng Fan @ 2016-04-19 8:33 UTC (permalink / raw) To: shawnguo, srinivas.kandagatla, maxime.ripard Cc: linux-arm-kernel, devicetree, linux-kernel, van.freenix Before access ocotp nvmem area, the clock should be enabled. Or, `hexdump nvmem` will hang the system. So, use such flow: " 1. clock_enable_prepare 2. read nvmem ocotp area 3. clock_disable_unprepare " Signed-off-by: Peng Fan <van.freenix@gmail.com> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Cc: Maxime Ripard <maxime.ripard@free-electrons.com> Cc: Shawn Guo <shawnguo@kernel.org> --- drivers/nvmem/imx-ocotp.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c index d7796eb..55095c0 100644 --- a/drivers/nvmem/imx-ocotp.c +++ b/drivers/nvmem/imx-ocotp.c @@ -15,6 +15,7 @@ * http://www.gnu.org/copyleft/gpl.html */ +#include <linux/clk.h> #include <linux/device.h> #include <linux/io.h> #include <linux/module.h> @@ -27,6 +28,7 @@ struct ocotp_priv { struct device *dev; + struct clk *clk; void __iomem *base; unsigned int nregs; }; @@ -46,11 +48,15 @@ static int imx_ocotp_read(void *context, const void *reg, size_t reg_size, if (count > (priv->nregs - index)) count = priv->nregs - index; + clk_prepare_enable(priv->clk); + for (i = index; i < (index + count); i++) { *(u32 *)val = readl(priv->base + 0x400 + i * 0x10); val += 4; } + clk_disable_unprepare(priv->clk); + return 0; } @@ -112,6 +118,10 @@ static int imx_ocotp_probe(struct platform_device *pdev) if (IS_ERR(priv->base)) return PTR_ERR(priv->base); + priv->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(priv->clk)) + return PTR_ERR(priv->clk); + of_id = of_match_device(imx_ocotp_dt_ids, dev); priv->nregs = (unsigned int)of_id->data; imx_ocotp_regmap_config.max_register = 4 * priv->nregs - 4; -- 1.8.4.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/3] nvmem: imx-ocotp: handling clock @ 2016-04-19 10:42 ` Fabio Estevam 0 siblings, 0 replies; 11+ messages in thread From: Fabio Estevam @ 2016-04-19 10:42 UTC (permalink / raw) To: linux-arm-kernel Hi Peng, On Tue, Apr 19, 2016 at 5:33 AM, Peng Fan <van.freenix@gmail.com> wrote: > @@ -46,11 +48,15 @@ static int imx_ocotp_read(void *context, const void *reg, size_t reg_size, > if (count > (priv->nregs - index)) > count = priv->nregs - index; > > + clk_prepare_enable(priv->clk); clk_prepare_enable() may fail, so you should better check its return value and propagate it in the case of error. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/3] nvmem: imx-ocotp: handling clock @ 2016-04-19 10:42 ` Fabio Estevam 0 siblings, 0 replies; 11+ messages in thread From: Fabio Estevam @ 2016-04-19 10:42 UTC (permalink / raw) To: Peng Fan Cc: Shawn Guo, Srinivas Kandagatla, Maxime Ripard, devicetree@vger.kernel.org, linux-kernel, linux-arm-kernel@lists.infradead.org Hi Peng, On Tue, Apr 19, 2016 at 5:33 AM, Peng Fan <van.freenix@gmail.com> wrote: > @@ -46,11 +48,15 @@ static int imx_ocotp_read(void *context, const void *reg, size_t reg_size, > if (count > (priv->nregs - index)) > count = priv->nregs - index; > > + clk_prepare_enable(priv->clk); clk_prepare_enable() may fail, so you should better check its return value and propagate it in the case of error. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/3] nvmem: imx-ocotp: handling clock @ 2016-04-19 10:42 ` Fabio Estevam 0 siblings, 0 replies; 11+ messages in thread From: Fabio Estevam @ 2016-04-19 10:42 UTC (permalink / raw) To: Peng Fan Cc: Shawn Guo, Srinivas Kandagatla, Maxime Ripard, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Hi Peng, On Tue, Apr 19, 2016 at 5:33 AM, Peng Fan <van.freenix-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > @@ -46,11 +48,15 @@ static int imx_ocotp_read(void *context, const void *reg, size_t reg_size, > if (count > (priv->nregs - index)) > count = priv->nregs - index; > > + clk_prepare_enable(priv->clk); clk_prepare_enable() may fail, so you should better check its return value and propagate it in the case of error. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 3/3] nvmem: imx-ocotp: handling clock 2016-04-19 10:42 ` Fabio Estevam @ 2016-04-19 13:39 ` Peng Fan -1 siblings, 0 replies; 11+ messages in thread From: Peng Fan @ 2016-04-19 13:39 UTC (permalink / raw) To: linux-arm-kernel Hi Fabio, On Tue, Apr 19, 2016 at 07:42:17AM -0300, Fabio Estevam wrote: >Hi Peng, > >On Tue, Apr 19, 2016 at 5:33 AM, Peng Fan <van.freenix@gmail.com> wrote: > >> @@ -46,11 +48,15 @@ static int imx_ocotp_read(void *context, const void *reg, size_t reg_size, >> if (count > (priv->nregs - index)) >> count = priv->nregs - index; >> >> + clk_prepare_enable(priv->clk); > >clk_prepare_enable() may fail, so you should better check its return >value and propagate it in the case of error. Thanks for correcting me. Will fix it in V2. Thanks, Peng -- ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/3] nvmem: imx-ocotp: handling clock @ 2016-04-19 13:39 ` Peng Fan 0 siblings, 0 replies; 11+ messages in thread From: Peng Fan @ 2016-04-19 13:39 UTC (permalink / raw) To: Fabio Estevam Cc: Shawn Guo, Srinivas Kandagatla, Maxime Ripard, devicetree@vger.kernel.org, linux-kernel, linux-arm-kernel@lists.infradead.org Hi Fabio, On Tue, Apr 19, 2016 at 07:42:17AM -0300, Fabio Estevam wrote: >Hi Peng, > >On Tue, Apr 19, 2016 at 5:33 AM, Peng Fan <van.freenix@gmail.com> wrote: > >> @@ -46,11 +48,15 @@ static int imx_ocotp_read(void *context, const void *reg, size_t reg_size, >> if (count > (priv->nregs - index)) >> count = priv->nregs - index; >> >> + clk_prepare_enable(priv->clk); > >clk_prepare_enable() may fail, so you should better check its return >value and propagate it in the case of error. Thanks for correcting me. Will fix it in V2. Thanks, Peng -- ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2016-04-19 13:39 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-04-19 8:33 [PATCH 1/3] arm: dts: imx6qdl: add clocks property for ocotp node Peng Fan 2016-04-19 8:33 ` Peng Fan 2016-04-19 8:33 ` [PATCH 2/3] arm: dts: imx6sl: " Peng Fan 2016-04-19 8:33 ` Peng Fan 2016-04-19 8:33 ` [PATCH 3/3] nvmem: imx-ocotp: handling clock Peng Fan 2016-04-19 8:33 ` Peng Fan 2016-04-19 10:42 ` Fabio Estevam 2016-04-19 10:42 ` Fabio Estevam 2016-04-19 10:42 ` Fabio Estevam 2016-04-19 13:39 ` Peng Fan 2016-04-19 13:39 ` Peng Fan
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.