aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/rtc
diff options
context:
space:
mode:
authorAlexander Stein <alexander.stein@ew.tq-group.com>2021-10-13 09:49:54 +0200
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2021-10-15 21:08:45 +0200
commit4c8a7b80d5f3c924fbe08b24634fb67a97f96465 (patch)
tree30e83c9004be8fa99eacc791c2252958ac8e9c7b /Documentation/devicetree/bindings/rtc
parentrtc: rv3032: fix error handling in rv3032_clkout_set_rate() (diff)
downloadlinux-dev-4c8a7b80d5f3c924fbe08b24634fb67a97f96465.tar.xz
linux-dev-4c8a7b80d5f3c924fbe08b24634fb67a97f96465.zip
rtc: pcf85063: add support for fixed clock
TQ-Systems' TQMa8Mx module (SoM) uses a pcf85063 as RTC. The default output is 32768Hz. This is to provide the i.MX8M CKIL clock. Once the RTC driver is probed, the clock is disabled and all i.MX8M functionality depending on the 32 KHz clock will halt. In our case the whole system halts and a power cycle is required. Referencing the pcf85063 directly results in a deadlock. The kernel will see, that i.MX8M system clock needs the RTC clock and do probe deferral. But the i.MX8M I2C module never becomes usable without the i.MX8M CKIL clock and thus the RTC's clock will not be probed. So from the kernel's perspective this is a chicken-and-egg problem. Technically everything is fine by not touching anything, since the RTC clock correctly enables the clock on reset (i.e. on battery backup power loss). A workaround for this issue is describing the square wave pin as fixed-clock, which is registered early and basically how this pin is used on the i.MX8M. This addresses the exact same issue as in commit f765e349c3e1 ("rtc: m41t80: add support for fixed clock"). Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> [Fixed return value 0 -> NULL] Link: https://lore.kernel.org/r/20211013074954.997445-1-alexander.stein@ew.tq-group.com
Diffstat (limited to 'Documentation/devicetree/bindings/rtc')
-rw-r--r--Documentation/devicetree/bindings/rtc/nxp,pcf85063.txt9
1 files changed, 9 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/rtc/nxp,pcf85063.txt b/Documentation/devicetree/bindings/rtc/nxp,pcf85063.txt
index 627bb533eff7..6439682c9319 100644
--- a/Documentation/devicetree/bindings/rtc/nxp,pcf85063.txt
+++ b/Documentation/devicetree/bindings/rtc/nxp,pcf85063.txt
@@ -13,10 +13,19 @@ Optional property:
expressed in femto Farad (fF). Valid values are 7000 and 12500.
Default value (if no value is specified) is 7000fF.
+Optional child node:
+- clock: Provide this if the square wave pin is used as boot-enabled fixed clock.
+
Example:
pcf85063: rtc@51 {
compatible = "nxp,pcf85063";
reg = <0x51>;
quartz-load-femtofarads = <12500>;
+
+ clock {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <32768>;
+ };
};