* [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-15 22:35 ` Philippe Reynes
0 siblings, 0 replies; 41+ messages in thread
From: Philippe Reynes @ 2015-05-15 22:35 UTC (permalink / raw)
To: linux-arm-kernel
The mxc RTC needs two clocks, one for the input
reference, and one for the IP. But this driver
was only using one clock (for the reference).
This patch add the second clock (for the IP).
Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
---
arch/arm/mach-imx/clk-imx31.c | 3 ++-
drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
index 286ef42..480c54f 100644
--- a/arch/arm/mach-imx/clk-imx31.c
+++ b/arch/arm/mach-imx/clk-imx31.c
@@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
- clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
+ clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
+ clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
clk_register_clkdev(clk[epit1_gate], "epit", NULL);
clk_register_clkdev(clk[epit2_gate], "epit", NULL);
clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
index 09d422b..e916a91 100644
--- a/drivers/rtc/rtc-mxc.c
+++ b/drivers/rtc/rtc-mxc.c
@@ -79,7 +79,8 @@ struct rtc_plat_data {
struct rtc_device *rtc;
void __iomem *ioaddr;
int irq;
- struct clk *clk;
+ struct clk *clk_rtc;
+ struct clk *clk_ipg;
struct rtc_time g_rtc_alarm;
enum imx_rtc_type devtype;
};
@@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
if (IS_ERR(pdata->ioaddr))
return PTR_ERR(pdata->ioaddr);
- pdata->clk = devm_clk_get(&pdev->dev, NULL);
- if (IS_ERR(pdata->clk)) {
- dev_err(&pdev->dev, "unable to get clock!\n");
- return PTR_ERR(pdata->clk);
+ pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
+ if (IS_ERR(pdata->clk_ipg)) {
+ dev_err(&pdev->dev, "unable to get ipg clock!\n");
+ return PTR_ERR(pdata->clk_ipg);
}
- ret = clk_prepare_enable(pdata->clk);
+ ret = clk_prepare_enable(pdata->clk_ipg);
if (ret)
return ret;
- rate = clk_get_rate(pdata->clk);
+ pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
+ if (IS_ERR(pdata->clk_rtc)) {
+ dev_err(&pdev->dev, "unable to get rtc clock!\n");
+ ret = PTR_ERR(pdata->clk_rtc);
+ goto exit_put_clk;
+ }
+
+ rate = clk_get_rate(pdata->clk_rtc);
if (rate == 32768)
reg = RTC_INPUT_CLK_32768HZ;
@@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
return 0;
exit_put_clk:
- clk_disable_unprepare(pdata->clk);
+ clk_disable_unprepare(pdata->clk_ipg);
return ret;
}
@@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
{
struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
- clk_disable_unprepare(pdata->clk);
+ clk_disable_unprepare(pdata->clk_ipg);
return 0;
}
--
1.7.4.4
^ permalink raw reply related [flat|nested] 41+ messages in thread
* [rtc-linux] [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-15 22:35 ` Philippe Reynes
0 siblings, 0 replies; 41+ messages in thread
From: Philippe Reynes @ 2015-05-15 22:35 UTC (permalink / raw)
To: shawn.guo, kernel, linux, a.zummo, alexandre.belloni, robh+dt,
pawel.moll, mark.rutland, ijc+devicetree, galak, rtc-linux
Cc: linux-arm-kernel, linux-kernel, devicetree, fabio.estevam,
Philippe Reynes
The mxc RTC needs two clocks, one for the input
reference, and one for the IP. But this driver
was only using one clock (for the reference).
This patch add the second clock (for the IP).
Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
---
arch/arm/mach-imx/clk-imx31.c | 3 ++-
drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
index 286ef42..480c54f 100644
--- a/arch/arm/mach-imx/clk-imx31.c
+++ b/arch/arm/mach-imx/clk-imx31.c
@@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
- clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
+ clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
+ clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
clk_register_clkdev(clk[epit1_gate], "epit", NULL);
clk_register_clkdev(clk[epit2_gate], "epit", NULL);
clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
index 09d422b..e916a91 100644
--- a/drivers/rtc/rtc-mxc.c
+++ b/drivers/rtc/rtc-mxc.c
@@ -79,7 +79,8 @@ struct rtc_plat_data {
struct rtc_device *rtc;
void __iomem *ioaddr;
int irq;
- struct clk *clk;
+ struct clk *clk_rtc;
+ struct clk *clk_ipg;
struct rtc_time g_rtc_alarm;
enum imx_rtc_type devtype;
};
@@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
if (IS_ERR(pdata->ioaddr))
return PTR_ERR(pdata->ioaddr);
- pdata->clk = devm_clk_get(&pdev->dev, NULL);
- if (IS_ERR(pdata->clk)) {
- dev_err(&pdev->dev, "unable to get clock!\n");
- return PTR_ERR(pdata->clk);
+ pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
+ if (IS_ERR(pdata->clk_ipg)) {
+ dev_err(&pdev->dev, "unable to get ipg clock!\n");
+ return PTR_ERR(pdata->clk_ipg);
}
- ret = clk_prepare_enable(pdata->clk);
+ ret = clk_prepare_enable(pdata->clk_ipg);
if (ret)
return ret;
- rate = clk_get_rate(pdata->clk);
+ pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
+ if (IS_ERR(pdata->clk_rtc)) {
+ dev_err(&pdev->dev, "unable to get rtc clock!\n");
+ ret = PTR_ERR(pdata->clk_rtc);
+ goto exit_put_clk;
+ }
+
+ rate = clk_get_rate(pdata->clk_rtc);
if (rate == 32768)
reg = RTC_INPUT_CLK_32768HZ;
@@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
return 0;
exit_put_clk:
- clk_disable_unprepare(pdata->clk);
+ clk_disable_unprepare(pdata->clk_ipg);
return ret;
}
@@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
{
struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
- clk_disable_unprepare(pdata->clk);
+ clk_disable_unprepare(pdata->clk_ipg);
return 0;
}
--
1.7.4.4
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
2015-05-15 22:35 ` [rtc-linux] " Philippe Reynes
(?)
(?)
@ 2015-05-18 11:27 ` Enrico Weigelt, metux IT consult
-1 siblings, 0 replies; 41+ messages in thread
From: Enrico Weigelt, metux IT consult @ 2015-05-18 11:27 UTC (permalink / raw)
To: Philippe Reynes, shawn.guo, kernel, linux, a.zummo,
alexandre.belloni, robh+dt, pawel.moll, mark.rutland,
ijc+devicetree, galak, rtc-linux
Cc: linux-arm-kernel, linux-kernel, devicetree, fabio.estevam
Am 16.05.2015 um 00:35 schrieb Philippe Reynes:
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
Does this also apply to MX53, or just MX21 ?
greetings,
--
Enrico Weigelt, metux IT consult
+49-151-27565287
MELAG Medizintechnik oHG Sitz Berlin Registergericht AG Charlottenburg HRA 21333 B
Wichtiger Hinweis: Diese Nachricht kann vertrauliche oder nur für einen begrenzten Personenkreis bestimmte Informationen enthalten. Sie ist ausschließlich für denjenigen bestimmt, an den sie gerichtet worden ist. Wenn Sie nicht der Adressat dieser E-Mail sind, dürfen Sie diese nicht kopieren, weiterleiten, weitergeben oder sie ganz oder teilweise in irgendeiner Weise nutzen. Sollten Sie diese E-Mail irrtümlich erhalten haben, so benachrichtigen Sie bitte den Absender, indem Sie auf diese Nachricht antworten. Bitte löschen Sie in diesem Fall diese Nachricht und alle Anhänge, ohne eine Kopie zu behalten.
Important Notice: This message may contain confidential or privileged information. It is intended only for the person it was addressed to. If you are not the intended recipient of this email you may not copy, forward, disclose or otherwise use it or any part of it in any form whatsoever. If you received this email in error please notify the sender by replying and delete this message and any attachments without retaining a copy.
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-18 11:27 ` Enrico Weigelt, metux IT consult
0 siblings, 0 replies; 41+ messages in thread
From: Enrico Weigelt, metux IT consult @ 2015-05-18 11:27 UTC (permalink / raw)
To: linux-arm-kernel
Am 16.05.2015 um 00:35 schrieb Philippe Reynes:
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
Does this also apply to MX53, or just MX21 ?
greetings,
--
Enrico Weigelt, metux IT consult
+49-151-27565287
MELAG Medizintechnik oHG Sitz Berlin Registergericht AG Charlottenburg HRA 21333 B
Wichtiger Hinweis: Diese Nachricht kann vertrauliche oder nur f?r einen begrenzten Personenkreis bestimmte Informationen enthalten. Sie ist ausschlie?lich f?r denjenigen bestimmt, an den sie gerichtet worden ist. Wenn Sie nicht der Adressat dieser E-Mail sind, d?rfen Sie diese nicht kopieren, weiterleiten, weitergeben oder sie ganz oder teilweise in irgendeiner Weise nutzen. Sollten Sie diese E-Mail irrt?mlich erhalten haben, so benachrichtigen Sie bitte den Absender, indem Sie auf diese Nachricht antworten. Bitte l?schen Sie in diesem Fall diese Nachricht und alle Anh?nge, ohne eine Kopie zu behalten.
Important Notice: This message may contain confidential or privileged information. It is intended only for the person it was addressed to. If you are not the intended recipient of this email you may not copy, forward, disclose or otherwise use it or any part of it in any form whatsoever. If you received this email in error please notify the sender by replying and delete this message and any attachments without retaining a copy.
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-18 11:27 ` Enrico Weigelt, metux IT consult
0 siblings, 0 replies; 41+ messages in thread
From: Enrico Weigelt, metux IT consult @ 2015-05-18 11:27 UTC (permalink / raw)
To: Philippe Reynes, shawn.guo, kernel, linux, a.zummo,
alexandre.belloni, robh+dt, pawel.moll, mark.rutland,
ijc+devicetree, galak, rtc-linux
Cc: fabio.estevam, devicetree, linux-kernel, linux-arm-kernel
Am 16.05.2015 um 00:35 schrieb Philippe Reynes:
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
Does this also apply to MX53, or just MX21 ?
greetings,
--
Enrico Weigelt, metux IT consult
+49-151-27565287
MELAG Medizintechnik oHG Sitz Berlin Registergericht AG Charlottenburg HRA 21333 B
Wichtiger Hinweis: Diese Nachricht kann vertrauliche oder nur für einen begrenzten Personenkreis bestimmte Informationen enthalten. Sie ist ausschließlich für denjenigen bestimmt, an den sie gerichtet worden ist. Wenn Sie nicht der Adressat dieser E-Mail sind, dürfen Sie diese nicht kopieren, weiterleiten, weitergeben oder sie ganz oder teilweise in irgendeiner Weise nutzen. Sollten Sie diese E-Mail irrtümlich erhalten haben, so benachrichtigen Sie bitte den Absender, indem Sie auf diese Nachricht antworten. Bitte löschen Sie in diesem Fall diese Nachricht und alle Anhänge, ohne eine Kopie zu behalten.
Important Notice: This message may contain confidential or privileged information. It is intended only for the person it was addressed to. If you are not the intended recipient of this email you may not copy, forward, disclose or otherwise use it or any part of it in any form whatsoever. If you received this email in error please notify the sender by replying and delete this message and any attachments without retaining a copy.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 41+ messages in thread
* [rtc-linux] Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-18 11:27 ` Enrico Weigelt, metux IT consult
0 siblings, 0 replies; 41+ messages in thread
From: Enrico Weigelt, metux IT consult @ 2015-05-18 11:27 UTC (permalink / raw)
To: Philippe Reynes, shawn.guo, kernel, linux, a.zummo,
alexandre.belloni, robh+dt, pawel.moll, mark.rutland,
ijc+devicetree, galak, rtc-linux
Cc: linux-arm-kernel, linux-kernel, devicetree, fabio.estevam
Am 16.05.2015 um 00:35 schrieb Philippe Reynes:
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
Does this also apply to MX53, or just MX21 ?
greetings,
--
Enrico Weigelt, metux IT consult
+49-151-27565287
MELAG Medizintechnik oHG Sitz Berlin Registergericht AG Charlottenburg HRA =
21333 B
Wichtiger Hinweis: Diese Nachricht kann vertrauliche oder nur f=C3=BCr eine=
n begrenzten Personenkreis bestimmte Informationen enthalten. Sie ist aussc=
hlie=C3=9Flich f=C3=BCr denjenigen bestimmt, an den sie gerichtet worden is=
t. Wenn Sie nicht der Adressat dieser E-Mail sind, d=C3=BCrfen Sie diese ni=
cht kopieren, weiterleiten, weitergeben oder sie ganz oder teilweise in irg=
endeiner Weise nutzen. Sollten Sie diese E-Mail irrt=C3=BCmlich erhalten ha=
ben, so benachrichtigen Sie bitte den Absender, indem Sie auf diese Nachric=
ht antworten. Bitte l=C3=B6schen Sie in diesem Fall diese Nachricht und all=
e Anh=C3=A4nge, ohne eine Kopie zu behalten.
Important Notice: This message may contain confidential or privileged infor=
mation. It is intended only for the person it was addressed to. If you are =
not the intended recipient of this email you may not copy, forward, disclos=
e or otherwise use it or any part of it in any form whatsoever. If you rece=
ived this email in error please notify the sender by replying and delete th=
is message and any attachments without retaining a copy.
--=20
--=20
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---=20
You received this message because you are subscribed to the Google Groups "=
rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
2015-05-18 11:27 ` [rtc-linux] " Enrico Weigelt, metux IT consult
(?)
(?)
@ 2015-05-18 21:57 ` Philippe Reynes
-1 siblings, 0 replies; 41+ messages in thread
From: Philippe Reynes @ 2015-05-18 21:57 UTC (permalink / raw)
To: Enrico Weigelt, metux IT consult
Cc: shawn.guo, kernel, linux, a.zummo, alexandre.belloni, robh+dt,
pawel.moll, mark.rutland, ijc+devicetree, galak, rtc-linux,
linux-arm-kernel, linux-kernel, devicetree, fabio.estevam
Hi Enrico,
On 18/05/15 13:27, Enrico Weigelt, metux IT consult wrote:
> Am 16.05.2015 um 00:35 schrieb Philippe Reynes:
>> The mxc RTC needs two clocks, one for the input
>> reference, and one for the IP. But this driver
>> was only using one clock (for the reference).
>> This patch add the second clock (for the IP).
>
>
> Does this also apply to MX53, or just MX21 ?
I don't found this rtc on mx53 manual. The mx53 seems to use rtc-imxdi.c.
So, I think it's just for mx21.
Regards,
Philippe
> greetings,
> --
> Enrico Weigelt, metux IT consult
> +49-151-27565287
> MELAG Medizintechnik oHG Sitz Berlin Registergericht AG Charlottenburg HRA 21333 B
>
> Wichtiger Hinweis: Diese Nachricht kann vertrauliche oder nur für einen begrenzten Personenkreis bestimmte Informationen enthalten. Sie ist ausschließlich für denjenigen bestimmt, an den sie gerichtet worden ist. Wenn Sie nicht der Adressat dieser E-Mail sind, dürfen Sie diese nicht kopieren, weiterleiten, weitergeben oder sie ganz oder teilweise in irgendeiner Weise nutzen. Sollten Sie diese E-Mail irrtümlich erhalten haben, so benachrichtigen Sie bitte den Absender, indem Sie auf diese Nachricht antworten. Bitte löschen Sie in diesem Fall diese Nachricht und alle Anhänge, ohne eine Kopie zu behalten.
> Important Notice: This message may contain confidential or privileged information. It is intended only for the person it was addressed to. If you are not the intended recipient of this email you may not copy, forward, disclose or otherwise use it or any part of it in any form whatsoever. If you received this email in error please notify the sender by replying and delete this message and any attachments without retaining a copy.
s
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-18 21:57 ` Philippe Reynes
0 siblings, 0 replies; 41+ messages in thread
From: Philippe Reynes @ 2015-05-18 21:57 UTC (permalink / raw)
To: linux-arm-kernel
Hi Enrico,
On 18/05/15 13:27, Enrico Weigelt, metux IT consult wrote:
> Am 16.05.2015 um 00:35 schrieb Philippe Reynes:
>> The mxc RTC needs two clocks, one for the input
>> reference, and one for the IP. But this driver
>> was only using one clock (for the reference).
>> This patch add the second clock (for the IP).
>
>
> Does this also apply to MX53, or just MX21 ?
I don't found this rtc on mx53 manual. The mx53 seems to use rtc-imxdi.c.
So, I think it's just for mx21.
Regards,
Philippe
> greetings,
> --
> Enrico Weigelt, metux IT consult
> +49-151-27565287
> MELAG Medizintechnik oHG Sitz Berlin Registergericht AG Charlottenburg HRA 21333 B
>
> Wichtiger Hinweis: Diese Nachricht kann vertrauliche oder nur f?r einen begrenzten Personenkreis bestimmte Informationen enthalten. Sie ist ausschlie?lich f?r denjenigen bestimmt, an den sie gerichtet worden ist. Wenn Sie nicht der Adressat dieser E-Mail sind, d?rfen Sie diese nicht kopieren, weiterleiten, weitergeben oder sie ganz oder teilweise in irgendeiner Weise nutzen. Sollten Sie diese E-Mail irrt?mlich erhalten haben, so benachrichtigen Sie bitte den Absender, indem Sie auf diese Nachricht antworten. Bitte l?schen Sie in diesem Fall diese Nachricht und alle Anh?nge, ohne eine Kopie zu behalten.
> Important Notice: This message may contain confidential or privileged information. It is intended only for the person it was addressed to. If you are not the intended recipient of this email you may not copy, forward, disclose or otherwise use it or any part of it in any form whatsoever. If you received this email in error please notify the sender by replying and delete this message and any attachments without retaining a copy.
s
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-18 21:57 ` Philippe Reynes
0 siblings, 0 replies; 41+ messages in thread
From: Philippe Reynes @ 2015-05-18 21:57 UTC (permalink / raw)
To: Enrico Weigelt, metux IT consult
Cc: shawn.guo-QSEj5FYQhm4dnm+yROfE0A, kernel-bIcnvbaLZ9MEGnE8C9+IrQ,
linux-lFZ/pmaqli7XmaaqVzeoHQ, a.zummo-BfzFCNDTiLLj+vYz1yj4TQ,
alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8,
mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg,
galak-sgV2jX0FEOL9JmXXK+q4OQ, rtc-linux-/JYPxA39Uh5TLH3MbocFFw,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
fabio.estevam-KZfg59tc24xl57MIdRCFDg
Hi Enrico,
On 18/05/15 13:27, Enrico Weigelt, metux IT consult wrote:
> Am 16.05.2015 um 00:35 schrieb Philippe Reynes:
>> The mxc RTC needs two clocks, one for the input
>> reference, and one for the IP. But this driver
>> was only using one clock (for the reference).
>> This patch add the second clock (for the IP).
>
>
> Does this also apply to MX53, or just MX21 ?
I don't found this rtc on mx53 manual. The mx53 seems to use rtc-imxdi.c.
So, I think it's just for mx21.
Regards,
Philippe
> greetings,
> --
> Enrico Weigelt, metux IT consult
> +49-151-27565287
> MELAG Medizintechnik oHG Sitz Berlin Registergericht AG Charlottenburg HRA 21333 B
>
> Wichtiger Hinweis: Diese Nachricht kann vertrauliche oder nur für einen begrenzten Personenkreis bestimmte Informationen enthalten. Sie ist ausschließlich für denjenigen bestimmt, an den sie gerichtet worden ist. Wenn Sie nicht der Adressat dieser E-Mail sind, dürfen Sie diese nicht kopieren, weiterleiten, weitergeben oder sie ganz oder teilweise in irgendeiner Weise nutzen. Sollten Sie diese E-Mail irrtümlich erhalten haben, so benachrichtigen Sie bitte den Absender, indem Sie auf diese Nachricht antworten. Bitte löschen Sie in diesem Fall diese Nachricht und alle Anhänge, ohne eine Kopie zu behalten.
> Important Notice: This message may contain confidential or privileged information. It is intended only for the person it was addressed to. If you are not the intended recipient of this email you may not copy, forward, disclose or otherwise use it or any part of it in any form whatsoever. If you received this email in error please notify the sender by replying and delete this message and any attachments without retaining a copy.
s
--
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] 41+ messages in thread
* [rtc-linux] Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-18 21:57 ` Philippe Reynes
0 siblings, 0 replies; 41+ messages in thread
From: Philippe Reynes @ 2015-05-18 21:57 UTC (permalink / raw)
To: Enrico Weigelt, metux IT consult
Cc: shawn.guo, kernel, linux, a.zummo, alexandre.belloni, robh+dt,
pawel.moll, mark.rutland, ijc+devicetree, galak, rtc-linux,
linux-arm-kernel, linux-kernel, devicetree, fabio.estevam
Hi Enrico,
On 18/05/15 13:27, Enrico Weigelt, metux IT consult wrote:
> Am 16.05.2015 um 00:35 schrieb Philippe Reynes:
>> The mxc RTC needs two clocks, one for the input
>> reference, and one for the IP. But this driver
>> was only using one clock (for the reference).
>> This patch add the second clock (for the IP).
>
>
> Does this also apply to MX53, or just MX21 ?
I don't found this rtc on mx53 manual. The mx53 seems to use rtc-imxdi.c.
So, I think it's just for mx21.
Regards,
Philippe
=20
> greetings,
> --
> Enrico Weigelt, metux IT consult
> +49-151-27565287
> MELAG Medizintechnik oHG Sitz Berlin Registergericht AG Charlottenburg HR=
A 21333 B
>
> Wichtiger Hinweis: Diese Nachricht kann vertrauliche oder nur f=C3=BCr ei=
nen begrenzten Personenkreis bestimmte Informationen enthalten. Sie ist aus=
schlie=C3=9Flich f=C3=BCr denjenigen bestimmt, an den sie gerichtet worden =
ist. Wenn Sie nicht der Adressat dieser E-Mail sind, d=C3=BCrfen Sie diese =
nicht kopieren, weiterleiten, weitergeben oder sie ganz oder teilweise in i=
rgendeiner Weise nutzen. Sollten Sie diese E-Mail irrt=C3=BCmlich erhalten =
haben, so benachrichtigen Sie bitte den Absender, indem Sie auf diese Nachr=
icht antworten. Bitte l=C3=B6schen Sie in diesem Fall diese Nachricht und a=
lle Anh=C3=A4nge, ohne eine Kopie zu behalten.
> Important Notice: This message may contain confidential or privileged inf=
ormation. It is intended only for the person it was addressed to. If you ar=
e not the intended recipient of this email you may not copy, forward, discl=
ose or otherwise use it or any part of it in any form whatsoever. If you re=
ceived this email in error please notify the sender by replying and delete =
this message and any attachments without retaining a copy.
s
--=20
--=20
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---=20
You received this message because you are subscribed to the Google Groups "=
rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
2015-05-15 22:35 ` [rtc-linux] " Philippe Reynes
(?)
(?)
@ 2015-05-19 5:27 ` Shawn Guo
-1 siblings, 0 replies; 41+ messages in thread
From: Shawn Guo @ 2015-05-19 5:27 UTC (permalink / raw)
To: Philippe Reynes
Cc: shawn.guo, kernel, linux, a.zummo, alexandre.belloni, robh+dt,
pawel.moll, mark.rutland, ijc+devicetree, galak, rtc-linux,
linux-arm-kernel, linux-kernel, devicetree, fabio.estevam
On Sat, May 16, 2015 at 12:35:29AM +0200, Philippe Reynes wrote:
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
>
> Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
> ---
> arch/arm/mach-imx/clk-imx31.c | 3 ++-
We're moving the clock driver into drivers/clk/imx folder during this
development cycle. I suggest you patch the file from there, and update
driver code in the next development cycle.
Shawn
> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
> 2 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
> index 286ef42..480c54f 100644
> --- a/arch/arm/mach-imx/clk-imx31.c
> +++ b/arch/arm/mach-imx/clk-imx31.c
> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
> index 09d422b..e916a91 100644
> --- a/drivers/rtc/rtc-mxc.c
> +++ b/drivers/rtc/rtc-mxc.c
> @@ -79,7 +79,8 @@ struct rtc_plat_data {
> struct rtc_device *rtc;
> void __iomem *ioaddr;
> int irq;
> - struct clk *clk;
> + struct clk *clk_rtc;
> + struct clk *clk_ipg;
> struct rtc_time g_rtc_alarm;
> enum imx_rtc_type devtype;
> };
> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> if (IS_ERR(pdata->ioaddr))
> return PTR_ERR(pdata->ioaddr);
>
> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
> - if (IS_ERR(pdata->clk)) {
> - dev_err(&pdev->dev, "unable to get clock!\n");
> - return PTR_ERR(pdata->clk);
> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
> + if (IS_ERR(pdata->clk_ipg)) {
> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
> + return PTR_ERR(pdata->clk_ipg);
> }
>
> - ret = clk_prepare_enable(pdata->clk);
> + ret = clk_prepare_enable(pdata->clk_ipg);
> if (ret)
> return ret;
>
> - rate = clk_get_rate(pdata->clk);
> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
> + if (IS_ERR(pdata->clk_rtc)) {
> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
> + ret = PTR_ERR(pdata->clk_rtc);
> + goto exit_put_clk;
> + }
> +
> + rate = clk_get_rate(pdata->clk_rtc);
>
> if (rate == 32768)
> reg = RTC_INPUT_CLK_32768HZ;
> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> return 0;
>
> exit_put_clk:
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return ret;
> }
> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
> {
> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return 0;
> }
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-19 5:27 ` Shawn Guo
0 siblings, 0 replies; 41+ messages in thread
From: Shawn Guo @ 2015-05-19 5:27 UTC (permalink / raw)
To: linux-arm-kernel
On Sat, May 16, 2015 at 12:35:29AM +0200, Philippe Reynes wrote:
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
>
> Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
> ---
> arch/arm/mach-imx/clk-imx31.c | 3 ++-
We're moving the clock driver into drivers/clk/imx folder during this
development cycle. I suggest you patch the file from there, and update
driver code in the next development cycle.
Shawn
> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
> 2 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
> index 286ef42..480c54f 100644
> --- a/arch/arm/mach-imx/clk-imx31.c
> +++ b/arch/arm/mach-imx/clk-imx31.c
> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
> index 09d422b..e916a91 100644
> --- a/drivers/rtc/rtc-mxc.c
> +++ b/drivers/rtc/rtc-mxc.c
> @@ -79,7 +79,8 @@ struct rtc_plat_data {
> struct rtc_device *rtc;
> void __iomem *ioaddr;
> int irq;
> - struct clk *clk;
> + struct clk *clk_rtc;
> + struct clk *clk_ipg;
> struct rtc_time g_rtc_alarm;
> enum imx_rtc_type devtype;
> };
> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> if (IS_ERR(pdata->ioaddr))
> return PTR_ERR(pdata->ioaddr);
>
> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
> - if (IS_ERR(pdata->clk)) {
> - dev_err(&pdev->dev, "unable to get clock!\n");
> - return PTR_ERR(pdata->clk);
> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
> + if (IS_ERR(pdata->clk_ipg)) {
> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
> + return PTR_ERR(pdata->clk_ipg);
> }
>
> - ret = clk_prepare_enable(pdata->clk);
> + ret = clk_prepare_enable(pdata->clk_ipg);
> if (ret)
> return ret;
>
> - rate = clk_get_rate(pdata->clk);
> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
> + if (IS_ERR(pdata->clk_rtc)) {
> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
> + ret = PTR_ERR(pdata->clk_rtc);
> + goto exit_put_clk;
> + }
> +
> + rate = clk_get_rate(pdata->clk_rtc);
>
> if (rate == 32768)
> reg = RTC_INPUT_CLK_32768HZ;
> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> return 0;
>
> exit_put_clk:
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return ret;
> }
> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
> {
> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return 0;
> }
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-19 5:27 ` Shawn Guo
0 siblings, 0 replies; 41+ messages in thread
From: Shawn Guo @ 2015-05-19 5:27 UTC (permalink / raw)
To: Philippe Reynes
Cc: shawn.guo-QSEj5FYQhm4dnm+yROfE0A, kernel-bIcnvbaLZ9MEGnE8C9+IrQ,
linux-lFZ/pmaqli7XmaaqVzeoHQ, a.zummo-BfzFCNDTiLLj+vYz1yj4TQ,
alexandre.belloni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8,
mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg,
galak-sgV2jX0FEOL9JmXXK+q4OQ, rtc-linux-/JYPxA39Uh5TLH3MbocFFw,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
fabio.estevam-KZfg59tc24xl57MIdRCFDg
On Sat, May 16, 2015 at 12:35:29AM +0200, Philippe Reynes wrote:
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
>
> Signed-off-by: Philippe Reynes <tremyfr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> arch/arm/mach-imx/clk-imx31.c | 3 ++-
We're moving the clock driver into drivers/clk/imx folder during this
development cycle. I suggest you patch the file from there, and update
driver code in the next development cycle.
Shawn
> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
> 2 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
> index 286ef42..480c54f 100644
> --- a/arch/arm/mach-imx/clk-imx31.c
> +++ b/arch/arm/mach-imx/clk-imx31.c
> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
> index 09d422b..e916a91 100644
> --- a/drivers/rtc/rtc-mxc.c
> +++ b/drivers/rtc/rtc-mxc.c
> @@ -79,7 +79,8 @@ struct rtc_plat_data {
> struct rtc_device *rtc;
> void __iomem *ioaddr;
> int irq;
> - struct clk *clk;
> + struct clk *clk_rtc;
> + struct clk *clk_ipg;
> struct rtc_time g_rtc_alarm;
> enum imx_rtc_type devtype;
> };
> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> if (IS_ERR(pdata->ioaddr))
> return PTR_ERR(pdata->ioaddr);
>
> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
> - if (IS_ERR(pdata->clk)) {
> - dev_err(&pdev->dev, "unable to get clock!\n");
> - return PTR_ERR(pdata->clk);
> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
> + if (IS_ERR(pdata->clk_ipg)) {
> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
> + return PTR_ERR(pdata->clk_ipg);
> }
>
> - ret = clk_prepare_enable(pdata->clk);
> + ret = clk_prepare_enable(pdata->clk_ipg);
> if (ret)
> return ret;
>
> - rate = clk_get_rate(pdata->clk);
> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
> + if (IS_ERR(pdata->clk_rtc)) {
> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
> + ret = PTR_ERR(pdata->clk_rtc);
> + goto exit_put_clk;
> + }
> +
> + rate = clk_get_rate(pdata->clk_rtc);
>
> if (rate == 32768)
> reg = RTC_INPUT_CLK_32768HZ;
> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> return 0;
>
> exit_put_clk:
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return ret;
> }
> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
> {
> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return 0;
> }
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
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] 41+ messages in thread
* [rtc-linux] Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-19 5:27 ` Shawn Guo
0 siblings, 0 replies; 41+ messages in thread
From: Shawn Guo @ 2015-05-19 5:27 UTC (permalink / raw)
To: Philippe Reynes
Cc: shawn.guo, kernel, linux, a.zummo, alexandre.belloni, robh+dt,
pawel.moll, mark.rutland, ijc+devicetree, galak, rtc-linux,
linux-arm-kernel, linux-kernel, devicetree, fabio.estevam
On Sat, May 16, 2015 at 12:35:29AM +0200, Philippe Reynes wrote:
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
>
> Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
> ---
> arch/arm/mach-imx/clk-imx31.c | 3 ++-
We're moving the clock driver into drivers/clk/imx folder during this
development cycle. I suggest you patch the file from there, and update
driver code in the next development cycle.
Shawn
> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
> 2 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
> index 286ef42..480c54f 100644
> --- a/arch/arm/mach-imx/clk-imx31.c
> +++ b/arch/arm/mach-imx/clk-imx31.c
> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
> index 09d422b..e916a91 100644
> --- a/drivers/rtc/rtc-mxc.c
> +++ b/drivers/rtc/rtc-mxc.c
> @@ -79,7 +79,8 @@ struct rtc_plat_data {
> struct rtc_device *rtc;
> void __iomem *ioaddr;
> int irq;
> - struct clk *clk;
> + struct clk *clk_rtc;
> + struct clk *clk_ipg;
> struct rtc_time g_rtc_alarm;
> enum imx_rtc_type devtype;
> };
> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> if (IS_ERR(pdata->ioaddr))
> return PTR_ERR(pdata->ioaddr);
>
> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
> - if (IS_ERR(pdata->clk)) {
> - dev_err(&pdev->dev, "unable to get clock!\n");
> - return PTR_ERR(pdata->clk);
> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
> + if (IS_ERR(pdata->clk_ipg)) {
> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
> + return PTR_ERR(pdata->clk_ipg);
> }
>
> - ret = clk_prepare_enable(pdata->clk);
> + ret = clk_prepare_enable(pdata->clk_ipg);
> if (ret)
> return ret;
>
> - rate = clk_get_rate(pdata->clk);
> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
> + if (IS_ERR(pdata->clk_rtc)) {
> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
> + ret = PTR_ERR(pdata->clk_rtc);
> + goto exit_put_clk;
> + }
> +
> + rate = clk_get_rate(pdata->clk_rtc);
>
> if (rate == 32768)
> reg = RTC_INPUT_CLK_32768HZ;
> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> return 0;
>
> exit_put_clk:
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return ret;
> }
> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
> {
> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return 0;
> }
> --
> 1.7.4.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
2015-05-15 22:35 ` [rtc-linux] " Philippe Reynes
(?)
(?)
@ 2015-05-28 11:57 ` Alexandre Belloni
-1 siblings, 0 replies; 41+ messages in thread
From: Alexandre Belloni @ 2015-05-28 11:57 UTC (permalink / raw)
To: Philippe Reynes
Cc: shawn.guo, kernel, linux, a.zummo, robh+dt, pawel.moll,
mark.rutland, ijc+devicetree, galak, rtc-linux, linux-arm-kernel,
linux-kernel, devicetree, fabio.estevam
Hi,
On 16/05/2015 at 00:35:29 +0200, Philippe Reynes wrote :
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
>
> Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
> ---
> arch/arm/mach-imx/clk-imx31.c | 3 ++-
> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
> 2 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
> index 286ef42..480c54f 100644
> --- a/arch/arm/mach-imx/clk-imx31.c
> +++ b/arch/arm/mach-imx/clk-imx31.c
> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
This should probably go in a separate patch so that Shawn can apply it.
> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
> index 09d422b..e916a91 100644
> --- a/drivers/rtc/rtc-mxc.c
> +++ b/drivers/rtc/rtc-mxc.c
> @@ -79,7 +79,8 @@ struct rtc_plat_data {
> struct rtc_device *rtc;
> void __iomem *ioaddr;
> int irq;
> - struct clk *clk;
> + struct clk *clk_rtc;
> + struct clk *clk_ipg;
> struct rtc_time g_rtc_alarm;
> enum imx_rtc_type devtype;
> };
> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> if (IS_ERR(pdata->ioaddr))
> return PTR_ERR(pdata->ioaddr);
>
> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
> - if (IS_ERR(pdata->clk)) {
> - dev_err(&pdev->dev, "unable to get clock!\n");
> - return PTR_ERR(pdata->clk);
> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
> + if (IS_ERR(pdata->clk_ipg)) {
> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
> + return PTR_ERR(pdata->clk_ipg);
> }
>
> - ret = clk_prepare_enable(pdata->clk);
> + ret = clk_prepare_enable(pdata->clk_ipg);
> if (ret)
> return ret;
>
> - rate = clk_get_rate(pdata->clk);
> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
> + if (IS_ERR(pdata->clk_rtc)) {
> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
> + ret = PTR_ERR(pdata->clk_rtc);
> + goto exit_put_clk;
> + }
> +
> + rate = clk_get_rate(pdata->clk_rtc);
You are getting the rate but don't you need to clk_prepare_enable()?
Also, aren't those devm_clk_get now failing on i.mx35? Maybe it was
already failing before that patch as I don't see any rtc clock being
registeres in clk-imx35.c
>
> if (rate == 32768)
> reg = RTC_INPUT_CLK_32768HZ;
> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> return 0;
>
> exit_put_clk:
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return ret;
> }
> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
> {
> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return 0;
> }
> --
> 1.7.4.4
>
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-28 11:57 ` Alexandre Belloni
0 siblings, 0 replies; 41+ messages in thread
From: Alexandre Belloni @ 2015-05-28 11:57 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On 16/05/2015 at 00:35:29 +0200, Philippe Reynes wrote :
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
>
> Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
> ---
> arch/arm/mach-imx/clk-imx31.c | 3 ++-
> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
> 2 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
> index 286ef42..480c54f 100644
> --- a/arch/arm/mach-imx/clk-imx31.c
> +++ b/arch/arm/mach-imx/clk-imx31.c
> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
This should probably go in a separate patch so that Shawn can apply it.
> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
> index 09d422b..e916a91 100644
> --- a/drivers/rtc/rtc-mxc.c
> +++ b/drivers/rtc/rtc-mxc.c
> @@ -79,7 +79,8 @@ struct rtc_plat_data {
> struct rtc_device *rtc;
> void __iomem *ioaddr;
> int irq;
> - struct clk *clk;
> + struct clk *clk_rtc;
> + struct clk *clk_ipg;
> struct rtc_time g_rtc_alarm;
> enum imx_rtc_type devtype;
> };
> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> if (IS_ERR(pdata->ioaddr))
> return PTR_ERR(pdata->ioaddr);
>
> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
> - if (IS_ERR(pdata->clk)) {
> - dev_err(&pdev->dev, "unable to get clock!\n");
> - return PTR_ERR(pdata->clk);
> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
> + if (IS_ERR(pdata->clk_ipg)) {
> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
> + return PTR_ERR(pdata->clk_ipg);
> }
>
> - ret = clk_prepare_enable(pdata->clk);
> + ret = clk_prepare_enable(pdata->clk_ipg);
> if (ret)
> return ret;
>
> - rate = clk_get_rate(pdata->clk);
> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
> + if (IS_ERR(pdata->clk_rtc)) {
> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
> + ret = PTR_ERR(pdata->clk_rtc);
> + goto exit_put_clk;
> + }
> +
> + rate = clk_get_rate(pdata->clk_rtc);
You are getting the rate but don't you need to clk_prepare_enable()?
Also, aren't those devm_clk_get now failing on i.mx35? Maybe it was
already failing before that patch as I don't see any rtc clock being
registeres in clk-imx35.c
>
> if (rate == 32768)
> reg = RTC_INPUT_CLK_32768HZ;
> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> return 0;
>
> exit_put_clk:
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return ret;
> }
> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
> {
> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return 0;
> }
> --
> 1.7.4.4
>
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-28 11:57 ` Alexandre Belloni
0 siblings, 0 replies; 41+ messages in thread
From: Alexandre Belloni @ 2015-05-28 11:57 UTC (permalink / raw)
To: Philippe Reynes
Cc: shawn.guo-QSEj5FYQhm4dnm+yROfE0A, kernel-bIcnvbaLZ9MEGnE8C9+IrQ,
linux-lFZ/pmaqli7XmaaqVzeoHQ, a.zummo-BfzFCNDTiLLj+vYz1yj4TQ,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A, pawel.moll-5wv7dgnIgG8,
mark.rutland-5wv7dgnIgG8, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg,
galak-sgV2jX0FEOL9JmXXK+q4OQ, rtc-linux-/JYPxA39Uh5TLH3MbocFFw,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
fabio.estevam-KZfg59tc24xl57MIdRCFDg
Hi,
On 16/05/2015 at 00:35:29 +0200, Philippe Reynes wrote :
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
>
> Signed-off-by: Philippe Reynes <tremyfr-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> arch/arm/mach-imx/clk-imx31.c | 3 ++-
> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
> 2 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
> index 286ef42..480c54f 100644
> --- a/arch/arm/mach-imx/clk-imx31.c
> +++ b/arch/arm/mach-imx/clk-imx31.c
> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
This should probably go in a separate patch so that Shawn can apply it.
> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
> index 09d422b..e916a91 100644
> --- a/drivers/rtc/rtc-mxc.c
> +++ b/drivers/rtc/rtc-mxc.c
> @@ -79,7 +79,8 @@ struct rtc_plat_data {
> struct rtc_device *rtc;
> void __iomem *ioaddr;
> int irq;
> - struct clk *clk;
> + struct clk *clk_rtc;
> + struct clk *clk_ipg;
> struct rtc_time g_rtc_alarm;
> enum imx_rtc_type devtype;
> };
> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> if (IS_ERR(pdata->ioaddr))
> return PTR_ERR(pdata->ioaddr);
>
> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
> - if (IS_ERR(pdata->clk)) {
> - dev_err(&pdev->dev, "unable to get clock!\n");
> - return PTR_ERR(pdata->clk);
> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
> + if (IS_ERR(pdata->clk_ipg)) {
> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
> + return PTR_ERR(pdata->clk_ipg);
> }
>
> - ret = clk_prepare_enable(pdata->clk);
> + ret = clk_prepare_enable(pdata->clk_ipg);
> if (ret)
> return ret;
>
> - rate = clk_get_rate(pdata->clk);
> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
> + if (IS_ERR(pdata->clk_rtc)) {
> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
> + ret = PTR_ERR(pdata->clk_rtc);
> + goto exit_put_clk;
> + }
> +
> + rate = clk_get_rate(pdata->clk_rtc);
You are getting the rate but don't you need to clk_prepare_enable()?
Also, aren't those devm_clk_get now failing on i.mx35? Maybe it was
already failing before that patch as I don't see any rtc clock being
registeres in clk-imx35.c
>
> if (rate == 32768)
> reg = RTC_INPUT_CLK_32768HZ;
> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> return 0;
>
> exit_put_clk:
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return ret;
> }
> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
> {
> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return 0;
> }
> --
> 1.7.4.4
>
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
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] 41+ messages in thread
* [rtc-linux] Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-05-28 11:57 ` Alexandre Belloni
0 siblings, 0 replies; 41+ messages in thread
From: Alexandre Belloni @ 2015-05-28 11:57 UTC (permalink / raw)
To: Philippe Reynes
Cc: shawn.guo, kernel, linux, a.zummo, robh+dt, pawel.moll,
mark.rutland, ijc+devicetree, galak, rtc-linux, linux-arm-kernel,
linux-kernel, devicetree, fabio.estevam
Hi,
On 16/05/2015 at 00:35:29 +0200, Philippe Reynes wrote :
> The mxc RTC needs two clocks, one for the input
> reference, and one for the IP. But this driver
> was only using one clock (for the reference).
> This patch add the second clock (for the IP).
>
> Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
> ---
> arch/arm/mach-imx/clk-imx31.c | 3 ++-
> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
> 2 files changed, 19 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
> index 286ef42..480c54f 100644
> --- a/arch/arm/mach-imx/clk-imx31.c
> +++ b/arch/arm/mach-imx/clk-imx31.c
> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
This should probably go in a separate patch so that Shawn can apply it.
> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
> index 09d422b..e916a91 100644
> --- a/drivers/rtc/rtc-mxc.c
> +++ b/drivers/rtc/rtc-mxc.c
> @@ -79,7 +79,8 @@ struct rtc_plat_data {
> struct rtc_device *rtc;
> void __iomem *ioaddr;
> int irq;
> - struct clk *clk;
> + struct clk *clk_rtc;
> + struct clk *clk_ipg;
> struct rtc_time g_rtc_alarm;
> enum imx_rtc_type devtype;
> };
> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> if (IS_ERR(pdata->ioaddr))
> return PTR_ERR(pdata->ioaddr);
>
> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
> - if (IS_ERR(pdata->clk)) {
> - dev_err(&pdev->dev, "unable to get clock!\n");
> - return PTR_ERR(pdata->clk);
> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
> + if (IS_ERR(pdata->clk_ipg)) {
> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
> + return PTR_ERR(pdata->clk_ipg);
> }
>
> - ret = clk_prepare_enable(pdata->clk);
> + ret = clk_prepare_enable(pdata->clk_ipg);
> if (ret)
> return ret;
>
> - rate = clk_get_rate(pdata->clk);
> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
> + if (IS_ERR(pdata->clk_rtc)) {
> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
> + ret = PTR_ERR(pdata->clk_rtc);
> + goto exit_put_clk;
> + }
> +
> + rate = clk_get_rate(pdata->clk_rtc);
You are getting the rate but don't you need to clk_prepare_enable()?
Also, aren't those devm_clk_get now failing on i.mx35? Maybe it was
already failing before that patch as I don't see any rtc clock being
registeres in clk-imx35.c
>
> if (rate == 32768)
> reg = RTC_INPUT_CLK_32768HZ;
> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
> return 0;
>
> exit_put_clk:
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return ret;
> }
> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
> {
> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>
> - clk_disable_unprepare(pdata->clk);
> + clk_disable_unprepare(pdata->clk_ipg);
>
> return 0;
> }
> --
> 1.7.4.4
>
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
2015-05-28 11:57 ` [rtc-linux] " Alexandre Belloni
(?)
@ 2015-06-04 21:08 ` Philippe Reynes
-1 siblings, 0 replies; 41+ messages in thread
From: Philippe Reynes @ 2015-06-04 21:08 UTC (permalink / raw)
To: Alexandre Belloni
Cc: shawn.guo, kernel, linux, a.zummo, robh+dt, pawel.moll,
mark.rutland, ijc+devicetree, galak, rtc-linux, linux-arm-kernel,
linux-kernel, devicetree, fabio.estevam
Hi Alexandre,
On 28/05/15 13:57, Alexandre Belloni wrote:
> Hi,
>
> On 16/05/2015 at 00:35:29 +0200, Philippe Reynes wrote :
>> The mxc RTC needs two clocks, one for the input
>> reference, and one for the IP. But this driver
>> was only using one clock (for the reference).
>> This patch add the second clock (for the IP).
>>
>> Signed-off-by: Philippe Reynes<tremyfr@gmail.com>
>> ---
>> arch/arm/mach-imx/clk-imx31.c | 3 ++-
>> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
>> 2 files changed, 19 insertions(+), 10 deletions(-)
>>
>> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
>> index 286ef42..480c54f 100644
>> --- a/arch/arm/mach-imx/clk-imx31.c
>> +++ b/arch/arm/mach-imx/clk-imx31.c
>> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
>> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
>> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
>> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
>> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
>> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
>> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
>> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
>> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
>> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
>
> This should probably go in a separate patch so that Shawn can apply it.
Yes, I will do a patch and send it on the mailling list.
>> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
>> index 09d422b..e916a91 100644
>> --- a/drivers/rtc/rtc-mxc.c
>> +++ b/drivers/rtc/rtc-mxc.c
>> @@ -79,7 +79,8 @@ struct rtc_plat_data {
>> struct rtc_device *rtc;
>> void __iomem *ioaddr;
>> int irq;
>> - struct clk *clk;
>> + struct clk *clk_rtc;
>> + struct clk *clk_ipg;
>> struct rtc_time g_rtc_alarm;
>> enum imx_rtc_type devtype;
>> };
>> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
>> if (IS_ERR(pdata->ioaddr))
>> return PTR_ERR(pdata->ioaddr);
>>
>> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
>> - if (IS_ERR(pdata->clk)) {
>> - dev_err(&pdev->dev, "unable to get clock!\n");
>> - return PTR_ERR(pdata->clk);
>> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
>> + if (IS_ERR(pdata->clk_ipg)) {
>> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
>> + return PTR_ERR(pdata->clk_ipg);
>> }
>>
>> - ret = clk_prepare_enable(pdata->clk);
>> + ret = clk_prepare_enable(pdata->clk_ipg);
>> if (ret)
>> return ret;
>>
>> - rate = clk_get_rate(pdata->clk);
>> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
>> + if (IS_ERR(pdata->clk_rtc)) {
>> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
>> + ret = PTR_ERR(pdata->clk_rtc);
>> + goto exit_put_clk;
>> + }
>> +
>> + rate = clk_get_rate(pdata->clk_rtc);
>
> You are getting the rate but don't you need to clk_prepare_enable()?
This IP needs the clock reference rate for his configuration,
so I think that I only need the rate.
> Also, aren't those devm_clk_get now failing on i.mx35? Maybe it was
> already failing before that patch as I don't see any rtc clock being
> registeres in clk-imx35.c
Yes, I don't see this clock on clk-imx35.c too.So I don't understand how
this driver could work on imx35. The board MX35PDK use this driver,
but in my understanding, it should be broken. If someone has this board
and have some time to test the rtc, I would be pleased to get the result.
>>
>> if (rate == 32768)
>> reg = RTC_INPUT_CLK_32768HZ;
>> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
>> return 0;
>>
>> exit_put_clk:
>> - clk_disable_unprepare(pdata->clk);
>> + clk_disable_unprepare(pdata->clk_ipg);
>>
>> return ret;
>> }
>> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
>> {
>> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>>
>> - clk_disable_unprepare(pdata->clk);
>> + clk_disable_unprepare(pdata->clk_ipg);
>>
>> return 0;
>> }
>> --
>> 1.7.4.4
>>
>
Regards,
Philippe
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-06-04 21:08 ` Philippe Reynes
0 siblings, 0 replies; 41+ messages in thread
From: Philippe Reynes @ 2015-06-04 21:08 UTC (permalink / raw)
To: linux-arm-kernel
Hi Alexandre,
On 28/05/15 13:57, Alexandre Belloni wrote:
> Hi,
>
> On 16/05/2015 at 00:35:29 +0200, Philippe Reynes wrote :
>> The mxc RTC needs two clocks, one for the input
>> reference, and one for the IP. But this driver
>> was only using one clock (for the reference).
>> This patch add the second clock (for the IP).
>>
>> Signed-off-by: Philippe Reynes<tremyfr@gmail.com>
>> ---
>> arch/arm/mach-imx/clk-imx31.c | 3 ++-
>> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
>> 2 files changed, 19 insertions(+), 10 deletions(-)
>>
>> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
>> index 286ef42..480c54f 100644
>> --- a/arch/arm/mach-imx/clk-imx31.c
>> +++ b/arch/arm/mach-imx/clk-imx31.c
>> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
>> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
>> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
>> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
>> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
>> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
>> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
>> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
>> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
>> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
>
> This should probably go in a separate patch so that Shawn can apply it.
Yes, I will do a patch and send it on the mailling list.
>> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
>> index 09d422b..e916a91 100644
>> --- a/drivers/rtc/rtc-mxc.c
>> +++ b/drivers/rtc/rtc-mxc.c
>> @@ -79,7 +79,8 @@ struct rtc_plat_data {
>> struct rtc_device *rtc;
>> void __iomem *ioaddr;
>> int irq;
>> - struct clk *clk;
>> + struct clk *clk_rtc;
>> + struct clk *clk_ipg;
>> struct rtc_time g_rtc_alarm;
>> enum imx_rtc_type devtype;
>> };
>> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
>> if (IS_ERR(pdata->ioaddr))
>> return PTR_ERR(pdata->ioaddr);
>>
>> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
>> - if (IS_ERR(pdata->clk)) {
>> - dev_err(&pdev->dev, "unable to get clock!\n");
>> - return PTR_ERR(pdata->clk);
>> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
>> + if (IS_ERR(pdata->clk_ipg)) {
>> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
>> + return PTR_ERR(pdata->clk_ipg);
>> }
>>
>> - ret = clk_prepare_enable(pdata->clk);
>> + ret = clk_prepare_enable(pdata->clk_ipg);
>> if (ret)
>> return ret;
>>
>> - rate = clk_get_rate(pdata->clk);
>> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
>> + if (IS_ERR(pdata->clk_rtc)) {
>> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
>> + ret = PTR_ERR(pdata->clk_rtc);
>> + goto exit_put_clk;
>> + }
>> +
>> + rate = clk_get_rate(pdata->clk_rtc);
>
> You are getting the rate but don't you need to clk_prepare_enable()?
This IP needs the clock reference rate for his configuration,
so I think that I only need the rate.
> Also, aren't those devm_clk_get now failing on i.mx35? Maybe it was
> already failing before that patch as I don't see any rtc clock being
> registeres in clk-imx35.c
Yes, I don't see this clock on clk-imx35.c too.So I don't understand how
this driver could work on imx35. The board MX35PDK use this driver,
but in my understanding, it should be broken. If someone has this board
and have some time to test the rtc, I would be pleased to get the result.
>>
>> if (rate == 32768)
>> reg = RTC_INPUT_CLK_32768HZ;
>> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
>> return 0;
>>
>> exit_put_clk:
>> - clk_disable_unprepare(pdata->clk);
>> + clk_disable_unprepare(pdata->clk_ipg);
>>
>> return ret;
>> }
>> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
>> {
>> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>>
>> - clk_disable_unprepare(pdata->clk);
>> + clk_disable_unprepare(pdata->clk_ipg);
>>
>> return 0;
>> }
>> --
>> 1.7.4.4
>>
>
Regards,
Philippe
^ permalink raw reply [flat|nested] 41+ messages in thread
* [rtc-linux] Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-06-04 21:08 ` Philippe Reynes
0 siblings, 0 replies; 41+ messages in thread
From: Philippe Reynes @ 2015-06-04 21:08 UTC (permalink / raw)
To: Alexandre Belloni
Cc: shawn.guo, kernel, linux, a.zummo, robh+dt, pawel.moll,
mark.rutland, ijc+devicetree, galak, rtc-linux, linux-arm-kernel,
linux-kernel, devicetree, fabio.estevam
Hi Alexandre,
On 28/05/15 13:57, Alexandre Belloni wrote:
> Hi,
>
> On 16/05/2015 at 00:35:29 +0200, Philippe Reynes wrote :
>> The mxc RTC needs two clocks, one for the input
>> reference, and one for the IP. But this driver
>> was only using one clock (for the reference).
>> This patch add the second clock (for the IP).
>>
>> Signed-off-by: Philippe Reynes<tremyfr@gmail.com>
>> ---
>> arch/arm/mach-imx/clk-imx31.c | 3 ++-
>> drivers/rtc/rtc-mxc.c | 26 +++++++++++++++++---------
>> 2 files changed, 19 insertions(+), 10 deletions(-)
>>
>> diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c
>> index 286ef42..480c54f 100644
>> --- a/arch/arm/mach-imx/clk-imx31.c
>> +++ b/arch/arm/mach-imx/clk-imx31.c
>> @@ -130,7 +130,8 @@ int __init mx31_clocks_init(unsigned long fref)
>> clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2");
>> clk_register_clkdev(clk[pwm_gate], "pwm", NULL);
>> clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0");
>> - clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc");
>> + clk_register_clkdev(clk[ckil], "rtc", "imx21-rtc");
>> + clk_register_clkdev(clk[rtc_gate], "ipg", "imx21-rtc");
>> clk_register_clkdev(clk[epit1_gate], "epit", NULL);
>> clk_register_clkdev(clk[epit2_gate], "epit", NULL);
>> clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0");
>
> This should probably go in a separate patch so that Shawn can apply it.
Yes, I will do a patch and send it on the mailling list.
>> diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
>> index 09d422b..e916a91 100644
>> --- a/drivers/rtc/rtc-mxc.c
>> +++ b/drivers/rtc/rtc-mxc.c
>> @@ -79,7 +79,8 @@ struct rtc_plat_data {
>> struct rtc_device *rtc;
>> void __iomem *ioaddr;
>> int irq;
>> - struct clk *clk;
>> + struct clk *clk_rtc;
>> + struct clk *clk_ipg;
>> struct rtc_time g_rtc_alarm;
>> enum imx_rtc_type devtype;
>> };
>> @@ -373,17 +374,24 @@ static int mxc_rtc_probe(struct platform_device *pdev)
>> if (IS_ERR(pdata->ioaddr))
>> return PTR_ERR(pdata->ioaddr);
>>
>> - pdata->clk = devm_clk_get(&pdev->dev, NULL);
>> - if (IS_ERR(pdata->clk)) {
>> - dev_err(&pdev->dev, "unable to get clock!\n");
>> - return PTR_ERR(pdata->clk);
>> + pdata->clk_ipg = devm_clk_get(&pdev->dev, "ipg");
>> + if (IS_ERR(pdata->clk_ipg)) {
>> + dev_err(&pdev->dev, "unable to get ipg clock!\n");
>> + return PTR_ERR(pdata->clk_ipg);
>> }
>>
>> - ret = clk_prepare_enable(pdata->clk);
>> + ret = clk_prepare_enable(pdata->clk_ipg);
>> if (ret)
>> return ret;
>>
>> - rate = clk_get_rate(pdata->clk);
>> + pdata->clk_rtc = devm_clk_get(&pdev->dev, "rtc");
>> + if (IS_ERR(pdata->clk_rtc)) {
>> + dev_err(&pdev->dev, "unable to get rtc clock!\n");
>> + ret = PTR_ERR(pdata->clk_rtc);
>> + goto exit_put_clk;
>> + }
>> +
>> + rate = clk_get_rate(pdata->clk_rtc);
>
> You are getting the rate but don't you need to clk_prepare_enable()?
This IP needs the clock reference rate for his configuration,
so I think that I only need the rate.
> Also, aren't those devm_clk_get now failing on i.mx35? Maybe it was
> already failing before that patch as I don't see any rtc clock being
> registeres in clk-imx35.c
Yes, I don't see this clock on clk-imx35.c too.So I don't understand how
this driver could work on imx35. The board MX35PDK use this driver,
but in my understanding, it should be broken. If someone has this board
and have some time to test the rtc, I would be pleased to get the result.
>>
>> if (rate == 32768)
>> reg = RTC_INPUT_CLK_32768HZ;
>> @@ -432,7 +440,7 @@ static int mxc_rtc_probe(struct platform_device *pdev)
>> return 0;
>>
>> exit_put_clk:
>> - clk_disable_unprepare(pdata->clk);
>> + clk_disable_unprepare(pdata->clk_ipg);
>>
>> return ret;
>> }
>> @@ -441,7 +449,7 @@ static int mxc_rtc_remove(struct platform_device *pdev)
>> {
>> struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
>>
>> - clk_disable_unprepare(pdata->clk);
>> + clk_disable_unprepare(pdata->clk_ipg);
>>
>> return 0;
>> }
>> --
>> 1.7.4.4
>>
>
Regards,
Philippe
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 41+ messages in thread
* Re: [PATCH 1/2] rtc: mxc: add a second clock
2015-06-04 21:08 ` [rtc-linux] " Philippe Reynes
(?)
@ 2015-06-04 22:17 ` Alexandre Belloni
-1 siblings, 0 replies; 41+ messages in thread
From: Alexandre Belloni @ 2015-06-04 22:17 UTC (permalink / raw)
To: Philippe Reynes
Cc: shawn.guo, kernel, linux, a.zummo, robh+dt, pawel.moll,
mark.rutland, ijc+devicetree, galak, rtc-linux, linux-arm-kernel,
linux-kernel, devicetree, fabio.estevam
On 04/06/2015 at 23:08:03 +0200, Philippe Reynes wrote :
> >You are getting the rate but don't you need to clk_prepare_enable()?
>
> This IP needs the clock reference rate for his configuration,
> so I think that I only need the rate.
>
I think we need to check whether we are guaranteed to get a result from
get_rate even if the clock is not enabled.
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 41+ messages in thread
* [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-06-04 22:17 ` Alexandre Belloni
0 siblings, 0 replies; 41+ messages in thread
From: Alexandre Belloni @ 2015-06-04 22:17 UTC (permalink / raw)
To: linux-arm-kernel
On 04/06/2015 at 23:08:03 +0200, Philippe Reynes wrote :
> >You are getting the rate but don't you need to clk_prepare_enable()?
>
> This IP needs the clock reference rate for his configuration,
> so I think that I only need the rate.
>
I think we need to check whether we are guaranteed to get a result from
get_rate even if the clock is not enabled.
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 41+ messages in thread
* [rtc-linux] Re: [PATCH 1/2] rtc: mxc: add a second clock
@ 2015-06-04 22:17 ` Alexandre Belloni
0 siblings, 0 replies; 41+ messages in thread
From: Alexandre Belloni @ 2015-06-04 22:17 UTC (permalink / raw)
To: Philippe Reynes
Cc: shawn.guo, kernel, linux, a.zummo, robh+dt, pawel.moll,
mark.rutland, ijc+devicetree, galak, rtc-linux, linux-arm-kernel,
linux-kernel, devicetree, fabio.estevam
On 04/06/2015 at 23:08:03 +0200, Philippe Reynes wrote :
> >You are getting the rate but don't you need to clk_prepare_enable()?
>
> This IP needs the clock reference rate for his configuration,
> so I think that I only need the rate.
>
I think we need to check whether we are guaranteed to get a result from
get_rate even if the clock is not enabled.
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
--
--
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
---
You received this message because you are subscribed to the Google Groups "rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 41+ messages in thread