Message ID | 55192A48.3070201@fivetechno.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 --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 */