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 <[email protected]>
Tested-by: Anand Moon <[email protected]>
---
 .../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.
+
+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 */
-- 
1.9.1



--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to