diff mbox

[1/1] ARM: dts: exynos5422-odroidxu3: add 'rtc_src' clock to rtc node

Message ID 55192A48.3070201@fivetechno.de (mailing list archive)
State New, archived
Headers show

Commit Message

Markus Reichl March 30, 2015, 10:49 a.m. UTC
The Exynos5422 SoC has a s3c6410 RTC where the source clock
is now a mandatory property.

This patch fixes probe failure of s3c-rtc on Odroid-XU3 boards.
It is based in v4.0-rc2.

Signed-off-by: Markus Reichl <m.reichl@fivetechno.de>
Tested-by: Anand Moon <linux.amoon@gmail.com>
---
 .../devicetree/bindings/clock/samsung,s2mps11.txt  | 67 ++++++++++++++++++++++
 arch/arm/boot/dts/exynos5422-odroidxu3.dts         | 12 ++--
 include/dt-bindings/clock/samsung,s2mps11.h        | 23 ++++++++
 3 files changed, 98 insertions(+), 4 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
 create mode 100644 include/dt-bindings/clock/samsung,s2mps11.h

Comments

Krzysztof Kozlowski March 30, 2015, 12:17 p.m. UTC | #1
2015-03-30 12:49 GMT+02:00 Markus Reichl <m.reichl@fivetechno.de>:
>
> The Exynos5422 SoC has a s3c6410 RTC where the source clock
> is now a mandatory property.
>
> This patch fixes probe failure of s3c-rtc on Odroid-XU3 boards.
> It is based in v4.0-rc2.


Could you split this into separate patches:
1. Add S2MPS related changes clocks (this is a separate feature),
changes in documentation (if such are needed but I doubt it).
2. Fix S3C RTC.

>
> Signed-off-by: Markus Reichl <m.reichl@fivetechno.de>
> Tested-by: Anand Moon <linux.amoon@gmail.com>
> ---
>  .../devicetree/bindings/clock/samsung,s2mps11.txt  | 67 ++++++++++++++++++++++
>  arch/arm/boot/dts/exynos5422-odroidxu3.dts         | 12 ++--
>  include/dt-bindings/clock/samsung,s2mps11.h        | 23 ++++++++
>  3 files changed, 98 insertions(+), 4 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
>  create mode 100644 include/dt-bindings/clock/samsung,s2mps11.h
>
> diff --git a/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> new file mode 100644
> index 0000000..46c61ce
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> @@ -0,0 +1,67 @@
> +Binding for Samsung S2MPS11 32k clock generator block
> +
> +This is a part of device tree bindings of S2MPS11 multi-function device.
> +More information can be found in bindings/mfd/s2mps11.txt file.

This whole information is already present in bindings/mfd/s2mps11.txt
file. I don't think it is good to duplicate documentation. It will
double the effort of maintaining it and this way we can even introduce
incompatible differences in docs.

> +
> +The S2MPS11 contains three 32.768khz clock outputs that can be controlled
> +(gated/ungated) over I2C.
> +
> +Following properties should be present in main device node of the MFD chip.
> +
> +Required properties:
> +- #clock-cells: From common clock binding; shall be set to 1.
> +
> +Optional properties:
> +- clock-output-names: From common clock binding.
> +
> +Each clock is assigned an identifier and client nodes can use this identifier
> +to specify the clock which they consume. Following indices are allowed:
> +     - 0: 32khz_ap clock,
> +     - 1: 32khz_cp clock.
> +     - 2: 32khz_bt clock
> +
> +Clocks are defined as preprocessor macros in dt-bindings/clock/samsung,s2mps11.h
> +header and can be used in device tree sources.
> +
> +Example: Node of the MFD chip
> +
> +       s2mps11: s2mps11@66 {
> +               compatible = "samsung,s2mps11";
> +               interrupt-parent = <&wakeup_eint>;
> +               interrupts = <26 0>;
> +               reg = <0x66>;
> +               #clock-cells = <1>;
> +
> +               /* ... */
> +       };
> +
> +Example: Clock consumer node
> +
> +       foo@0 {
> +               compatible = "bar,foo";
> +               /* ... */
> +               clock-names = "my-clock";
> +               clocks = <&s2mps11 S2MPS11_CLK_32K_AP>;
> +       };
> +
> +Presently (19.3.2015) the above said is not correct yet.

I don't get it...  You are describing some kind of future here?

Best regards,
Krzysztof
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
new file mode 100644
index 0000000..46c61ce
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
@@ -0,0 +1,67 @@ 
+Binding for Samsung S2MPS11 32k clock generator block
+
+This is a part of device tree bindings of S2MPS11 multi-function device.
+More information can be found in bindings/mfd/s2mps11.txt file.
+
+The S2MPS11 contains three 32.768khz clock outputs that can be controlled
+(gated/ungated) over I2C.
+
+Following properties should be present in main device node of the MFD chip.
+
+Required properties:
+- #clock-cells: From common clock binding; shall be set to 1.
+
+Optional properties:
+- clock-output-names: From common clock binding.
+
+Each clock is assigned an identifier and client nodes can use this identifier
+to specify the clock which they consume. Following indices are allowed:
+     - 0: 32khz_ap clock,
+     - 1: 32khz_cp clock.
+     - 2: 32khz_bt clock
+
+Clocks are defined as preprocessor macros in dt-bindings/clock/samsung,s2mps11.h
+header and can be used in device tree sources.
+
+Example: Node of the MFD chip
+
+	s2mps11: s2mps11@66 {
+		compatible = "samsung,s2mps11";
+		interrupt-parent = <&wakeup_eint>;
+		interrupts = <26 0>;
+		reg = <0x66>;
+		#clock-cells = <1>;
+
+		/* ... */
+	};
+
+Example: Clock consumer node
+
+	foo@0 {
+		compatible = "bar,foo";
+		/* ... */
+		clock-names = "my-clock";
+		clocks = <&s2mps11 S2MPS11_CLK_32K_AP>;
+	};
+
+Presently (19.3.2015) the above said is not correct yet.
+Until s2mps11 mfd driver is updated you still need to specify like that:
+
+	s2mps11: s2mps11@66 {
+		compatible = "samsung,s2mps11-pmic";
+		reg = <0x66>;
+		s2mps11_osc: clocks {
+			#clock-cells = <1>;
+			clock-output-names = "s2mps11_ap",
+				"s2mps11_cp", "s2mps11_bt";
+                        };
+		/* ... */
+	}
+
+	foo@0 {
+		compatible = "bar,foo";
+		/* ... */
+		clock-names = "my-clock";
+	        clocks = <&s2mps11_osc S2MPS11_CLK_AP>;
+
+};
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index a519c86..7f1bb31 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -11,6 +11,7 @@ 
 */
 
 /dts-v1/;
+#include <dt-bindings/clock/samsung,s2mps11.h>
 #include "exynos5800.dtsi"
 
 / {
@@ -44,7 +45,7 @@ 
 	hsi2c_4: i2c@12CA0000 {
 		status = "okay";
 
-		s2mps11_pmic@66 {
+		s2mps11: s2mps11_pmic@66 {
 			compatible = "samsung,s2mps11-pmic";
 			reg = <0x66>;
 			s2mps11,buck2-ramp-delay = <12>;
@@ -275,9 +276,6 @@ 
 		};
 	};
 
-	rtc@101E0000 {
-		status = "okay";
-	};
 };
 
 &hdmi {
@@ -369,3 +367,9 @@ 
 		shunt-resistor = <10000>;
 	};
 };
+
+&rtc {
+	status = "okay";
+	clocks = <&clock CLK_RTC>, <&s2mps11_osc S2MPS11_CLK_AP>;
+	clock-names = "rtc", "rtc_src";
+};
diff --git a/include/dt-bindings/clock/samsung,s2mps11.h b/include/dt-bindings/clock/samsung,s2mps11.h
new file mode 100644
index 0000000..b903d7d
--- /dev/null
+++ b/include/dt-bindings/clock/samsung,s2mps11.h
@@ -0,0 +1,23 @@ 
+/*
+ * Copyright (C) 2015 Markus Reichl
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Device Tree binding constants clocks for the Samsung S2MPS11 PMIC.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_SAMSUNG_S2MPS11_CLOCK_H
+#define _DT_BINDINGS_CLOCK_SAMSUNG_S2MPS11_CLOCK_H
+
+/* Fixed rate clocks. */
+
+#define S2MPS11_CLK_AP		0
+#define S2MPS11_CLK_CP		1
+#define S2MPS11_CLK_BT		2
+
+/* Total number of clocks. */
+#define S2MPS11_CLKS_NUM		(S2MPS11_CLK_BT + 1)
+
+#endif /* _DT_BINDINGS_CLOCK_SAMSUNG_S2MPS11_CLOCK_H */