All of lore.kernel.org
 help / color / mirror / Atom feed
From: Biju Das <biju.das.jz@bp.renesas.com>
To: Alessandro Zummo <a.zummo@towertech.it>,
	Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Biju Das <biju.das.jz@bp.renesas.com>,
	linux-rtc@vger.kernel.org, Trent Piepho <tpiepho@gmail.com>,
	Wolfram Sang <wsa@kernel.org>, Mark Brown <broonie@kernel.org>,
	Geert Uytterhoeven <geert+renesas@glider.be>,
	Fabrizio Castro <fabrizio.castro.jz@renesas.com>,
	linux-renesas-soc@vger.kernel.org
Subject: [PATCH v7 10/10] rtc: isl1208: Add support for the built-in RTC on the PMIC RAA215300
Date: Fri, 23 Jun 2023 15:09:48 +0100	[thread overview]
Message-ID: <20230623140948.384762-11-biju.das.jz@bp.renesas.com> (raw)
In-Reply-To: <20230623140948.384762-1-biju.das.jz@bp.renesas.com>

The built-in RTC found on PMIC RAA215300 is the same as ISL1208.
However, the external oscillator bit is inverted on PMIC version
0x11. The PMIC driver detects PMIC version and instantiates the
RTC device based on i2c_device_id.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v6->v7:
 * Dropped Rb tag from Geert as there is new changes.
 * Dropped parsing the parent node for retrieving clk details as
   clk_dev is registered in sibling PMIC driver. So same info available
   here.
v5->v6:
 * Added Rb tag from Geert.
 * Parsing of parent node is moved from probe->isl1208_clk_present()
 * Added comment for parsing parent node for getting clock resource.
 * Replaced XOR->NOT to make the operation more clear for the inverted case.
v4->v5:
 * Updated commit description.
 * Replaced "unsigned long"->"kernel_ulong_t" in isl1208_id[].
 * -ENOENT means clock not present, so any other errors are propagated.
 * Dropped bool inverted parameter from isl1208_set_xtoscb() instead
   using xor to compute the value of xtoscb.
v3->v4:
 * Added support for internal oscillator enable/disable.
v2->v3:
 * RTC device is instantiated by PMIC driver and dropped isl1208_probe_helper().
 * Added "TYPE_RAA215300_RTC_A0" to handle inverted oscillator bit case.
RFC->v2:
 * Dropped compatible "renesas,raa215300-isl1208" and "renesas,raa215300-pmic" property.
 * Updated the comment polarity->bit for External Oscillator.
 * Added raa215300_rtc_probe_helper() for registering raa215300_rtc device and
   added the helper function isl1208_probe_helper() to share the code.
---
 drivers/rtc/rtc-isl1208.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c
index e9ec5675e27c..b0712b4e3648 100644
--- a/drivers/rtc/rtc-isl1208.c
+++ b/drivers/rtc/rtc-isl1208.c
@@ -74,6 +74,7 @@ struct isl1208_config {
 	unsigned int	nvmem_length;
 	unsigned	has_tamper:1;
 	unsigned	has_timestamp:1;
+	unsigned	has_inverted_osc_bit:1;
 };
 
 static const struct isl1208_config config_isl1208 = {
@@ -100,11 +101,19 @@ static const struct isl1208_config config_isl1219 = {
 	.has_timestamp = true
 };
 
+static const struct isl1208_config config_raa215300_a0 = {
+	.nvmem_length = 2,
+	.has_tamper = false,
+	.has_timestamp = false,
+	.has_inverted_osc_bit = true
+};
+
 static const struct i2c_device_id isl1208_id[] = {
 	{ "isl1208", .driver_data = (kernel_ulong_t)&config_isl1208 },
 	{ "isl1209", .driver_data = (kernel_ulong_t)&config_isl1209 },
 	{ "isl1218", .driver_data = (kernel_ulong_t)&config_isl1218 },
 	{ "isl1219", .driver_data = (kernel_ulong_t)&config_isl1219 },
+	{ "raa215300_a0", .driver_data = (kernel_ulong_t)&config_raa215300_a0 },
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, isl1208_id);
@@ -895,6 +904,9 @@ isl1208_probe(struct i2c_client *client)
 		return sr;
 	}
 
+	if (isl1208->config->has_inverted_osc_bit)
+		xtosb_val = !xtosb_val;
+
 	rc = isl1208_set_xtoscb(client, sr, xtosb_val);
 	if (rc)
 		return rc;
-- 
2.25.1


  parent reply	other threads:[~2023-06-23 14:10 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-23 14:09 [PATCH v7 00/10] Add Renesas PMIC RAA215300 and built-in RTC support Biju Das
2023-06-23 14:09 ` [PATCH v7 01/10] regulator: dt-bindings: Add Renesas RAA215300 PMIC bindings Biju Das
2023-06-23 14:09 ` [PATCH v7 02/10] regulator: Add Renesas PMIC RAA215300 driver Biju Das
2023-06-23 14:09 ` [PATCH v7 03/10] arm64: dts: renesas: rzg2l-smarc-som: Enable PMIC and built-in RTC Biju Das
2023-07-05 10:21   ` Geert Uytterhoeven
2023-06-23 14:09 ` [PATCH v7 04/10] dt-bindings: rtc: isl1208: Convert to json-schema Biju Das
2023-06-23 14:09 ` [PATCH v7 05/10] dt-bindings: rtc: isil,isl1208: Document clock and clock-names properties Biju Das
2023-06-23 14:09 ` [PATCH v7 06/10] rtc: isl1208: Drop name variable Biju Das
2023-06-23 14:09 ` [PATCH v7 07/10] rtc: isl1208: Make similar I2C and DT-based matching table Biju Das
2023-06-23 14:09 ` [PATCH v7 08/10] rtc: isl1208: Drop enum isl1208_id and split isl1208_configs[] Biju Das
2023-06-23 14:09 ` [PATCH v7 09/10] rtc: isl1208: Add isl1208_set_xtoscb() Biju Das
2023-06-23 14:09 ` Biju Das [this message]
2023-06-23 15:06 ` [PATCH v7 00/10] Add Renesas PMIC RAA215300 and built-in RTC support Mark Brown
2023-06-23 15:08   ` Biju Das
2023-06-24  0:59 ` (subset) " Mark Brown
2023-06-25 22:59 ` Alexandre Belloni

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=20230623140948.384762-11-biju.das.jz@bp.renesas.com \
    --to=biju.das.jz@bp.renesas.com \
    --cc=a.zummo@towertech.it \
    --cc=alexandre.belloni@bootlin.com \
    --cc=broonie@kernel.org \
    --cc=fabrizio.castro.jz@renesas.com \
    --cc=geert+renesas@glider.be \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=tpiepho@gmail.com \
    --cc=wsa@kernel.org \
    /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.