[PATCH 2/2] ARM: i.MX28: define external RTC crystal frequency in DT

Marc Kleine-Budde mkl at pengutronix.de
Fri Nov 8 08:48:41 EST 2013


From: Juergen Beisert <jbe at pengutronix.de>

The RTC in the i.MX28 may be clocked with different crystals. Get the rate of
the connected one from the DT.

Signed-off-by: Juergen Beisert <jbe at pengutronix.de>
Signed-off-by: Steffen Trumtrar <s.trumtrar at pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
---
 Documentation/devicetree/bindings/clock/imx28-clock.txt | 1 +
 arch/arm/boot/dts/imx28.dtsi                            | 5 +++++
 drivers/clk/mxs/clk-imx28.c                             | 4 +++-
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/clock/imx28-clock.txt b/Documentation/devicetree/bindings/clock/imx28-clock.txt
index e6587af..c3a9d94 100644
--- a/Documentation/devicetree/bindings/clock/imx28-clock.txt
+++ b/Documentation/devicetree/bindings/clock/imx28-clock.txt
@@ -76,6 +76,7 @@ clocks and IDs.
 	usb0_phy	62
 	usb1_phy	63
 	enet_out	64
+	rtc_32k		65
 
 Examples:
 
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index 979c37d..6af9094 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -47,6 +47,11 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
+		xtal-32k {
+			compatible = "fsl,mxs-xtal-32k", "fixed-clock";
+			clock-frequency = <0>;
+		};
+
 		xtal-24m {
 			compatible = "fsl,mxs-xtal-24m", "fixed-clock";
 			clock-frequency = <24000000>;
diff --git a/drivers/clk/mxs/clk-imx28.c b/drivers/clk/mxs/clk-imx28.c
index 874ca4e..b6afeb1 100644
--- a/drivers/clk/mxs/clk-imx28.c
+++ b/drivers/clk/mxs/clk-imx28.c
@@ -144,7 +144,7 @@ enum imx28_clk {
 	clk32k_div, rtc, lradc, spdif_div, clk32k, pwm, uart, ssp0,
 	ssp1, ssp2, ssp3, gpmi, spdif, emi, saif0, saif1, lcdif, etm,
 	fec, can0, can1, usb0, usb1, usb0_phy, usb1_phy, enet_out,
-	clk_max
+	rtc_32k, clk_max
 };
 
 static struct clk *clks[clk_max];
@@ -178,6 +178,8 @@ int __init mx28_clocks_init(void)
 
 		if (of_device_is_compatible(np_tmp, "fsl,mxs-xtal-24m"))
 			clks[ref_xtal] = mxs_clk_fixed("ref_xtal", rate);
+		else if (of_device_is_compatible(np_tmp, "fsl,mxs-xtal-32k"))
+			clks[rtc_32k] = mxs_clk_fixed("rtc_32k", rate);
 	}
 
 	/* if not set, use default frequency */
-- 
1.8.4.rc3




More information about the linux-arm-kernel mailing list