All of lore.kernel.org
 help / color / mirror / Atom feed
From: Philipp Rosenberger <p.rosenberger@kunbus.com>
To: unlisted-recipients:; (no To-header on input)
Cc: p.rosenberger@kunbus.com, dan.carpenter@oracle.com,
	u.kleine-koenig@pengutronix.de, biwen.li@nxp.com, lvb@xiphos.com,
	bruno.thomsen@gmail.com, l.sanfilippo@kunbus.com,
	Alessandro Zummo <a.zummo@towertech.it>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>,
	linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v2 1/2] rtc: pcf2127: Disable Power-On Reset Override
Date: Wed, 13 Jan 2021 12:27:41 +0100	[thread overview]
Message-ID: <20210113112742.7354-2-p.rosenberger@kunbus.com> (raw)
In-Reply-To: <20210113112742.7354-1-p.rosenberger@kunbus.com>

To resume normal operation after a total power loss (no or empty
battery) the "Power-On Reset Override (PORO)" facility needs to be
disabled.

As the oscillator may take a long time (200 ms to 2 s) to resume normal
operation. The default behaviour is to use the PORO facility. But with
the PORO active no interrupts are generated on the interrupt pin (INT).

Signed-off-by: Philipp Rosenberger <p.rosenberger@kunbus.com>
---
 drivers/rtc/rtc-pcf2127.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/rtc/rtc-pcf2127.c b/drivers/rtc/rtc-pcf2127.c
index 39a7b5116aa4..378b1ce812d6 100644
--- a/drivers/rtc/rtc-pcf2127.c
+++ b/drivers/rtc/rtc-pcf2127.c
@@ -26,6 +26,7 @@
 
 /* Control register 1 */
 #define PCF2127_REG_CTRL1		0x00
+#define PCF2127_BIT_CTRL1_POR_OVRD		BIT(3)
 #define PCF2127_BIT_CTRL1_TSF1			BIT(4)
 /* Control register 2 */
 #define PCF2127_REG_CTRL2		0x01
@@ -612,6 +613,23 @@ static int pcf2127_probe(struct device *dev, struct regmap *regmap,
 		ret = devm_rtc_nvmem_register(pcf2127->rtc, &nvmem_cfg);
 	}
 
+	/*
+	 * The "Power-On Reset Override" facility prevents the RTC to do a reset
+	 * after power on. For normal operation the PORO must be disabled.
+	 */
+	regmap_clear_bits(pcf2127->regmap, PCF2127_REG_CTRL1,
+				PCF2127_BIT_CTRL1_POR_OVRD);
+	/*
+	 * If the PORO can't be disabled, just move on. The RTC should
+	 * work fine, but functions like watchdog and alarm interrupts might
+	 * not work. There will be no interrupt generated on the interrupt pin.
+	 */
+	ret = regmap_test_bits(pcf2127->regmap, PCF2127_REG_CTRL1, PCF2127_BIT_CTRL1_POR_OVRD);
+	if (ret <= 0) {
+		dev_err(dev, "%s: can't disable PORO (ctrl1).\n", __func__);
+		dev_warn(dev, "Watchdog and alarm functions might not work properly\n");
+	}
+
 	/*
 	 * Watchdog timer enabled and reset pin /RST activated when timed out.
 	 * Select 1Hz clock source for watchdog timer.
-- 
2.29.2


  reply	other threads:[~2021-01-13 11:30 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-13 11:27 [PATCH v2 0/2] rtc: pcf2127: proper initialization after power loss Philipp Rosenberger
2021-01-13 11:27 ` Philipp Rosenberger [this message]
2021-01-14  8:05   ` [PATCH v2 1/2] rtc: pcf2127: Disable Power-On Reset Override Uwe Kleine-König
2021-01-14  9:10     ` Philipp Rosenberger
2021-01-14  9:33       ` Alexandre Belloni
2021-01-14 10:43         ` Philipp Rosenberger
2021-01-14 10:53           ` Alexandre Belloni
2021-01-14 11:11             ` Philipp Rosenberger
2021-01-13 11:27 ` [PATCH v2 2/2] rtc: pcf2127: Run a OTP refresh if not done before Philipp Rosenberger
2021-01-14  8:06   ` Uwe Kleine-König
2021-01-14  9:15     ` Philipp Rosenberger
2021-01-14  9:50   ` Alexandre Belloni
2021-01-14 10:30     ` Philipp Rosenberger
2021-01-14 11:11       ` Alexandre Belloni
2021-01-14 11:18         ` Philipp Rosenberger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210113112742.7354-2-p.rosenberger@kunbus.com \
    --to=p.rosenberger@kunbus.com \
    --cc=a.zummo@towertech.it \
    --cc=alexandre.belloni@bootlin.com \
    --cc=biwen.li@nxp.com \
    --cc=bruno.thomsen@gmail.com \
    --cc=dan.carpenter@oracle.com \
    --cc=l.sanfilippo@kunbus.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=lvb@xiphos.com \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.