From: Devang Tailor <dev.tailor@samsung.com>
To: alexandre.belloni@bootlin.com, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, alim.akhtar@samsung.com,
linux-rtc@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org,
henrik@grimler.se, faraz.ata@samsung.com
Cc: Devang Tailor <dev.tailor@samsung.com>
Subject: [PATCH v3 2/3] rtc: s3c: support for exynosautov9 on-chip RTC
Date: Fri, 5 Sep 2025 16:35:53 +0530 [thread overview]
Message-ID: <20250905110554.2212304-3-dev.tailor@samsung.com> (raw)
In-Reply-To: <20250905110554.2212304-1-dev.tailor@samsung.com>
The on-chip RTC of this SoC is almost similar to the previous version of
SoCs except for S3C2410_TICNT tick time counter, which is used in this
driver but not applicable for exynosautov9. So re-use the existing driver
skipping disablement of S3C2410_TICNT in s3c24xx_rtc_disable() callback
via a new boolean member of s3c_rtc_data.
This has been tested with 'hwclock' & 'date' utilities
Suggested-by: Henrik Grimler <henrik@grimler.se>
Signed-off-by: Devang Tailor <dev.tailor@samsung.com>
---
drivers/rtc/rtc-s3c.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
index 79b2a16f15ad..8fc5b4582b6d 100644
--- a/drivers/rtc/rtc-s3c.c
+++ b/drivers/rtc/rtc-s3c.c
@@ -48,6 +48,7 @@ struct s3c_rtc {
struct s3c_rtc_data {
bool needs_src_clk;
+ bool use_s3c2410_ticnt;
void (*irq_handler) (struct s3c_rtc *info, int mask);
void (*enable) (struct s3c_rtc *info);
@@ -369,9 +370,11 @@ static void s3c24xx_rtc_disable(struct s3c_rtc *info)
con &= ~S3C2410_RTCCON_RTCEN;
writew(con, info->base + S3C2410_RTCCON);
- con = readb(info->base + S3C2410_TICNT);
- con &= ~S3C2410_TICNT_ENABLE;
- writeb(con, info->base + S3C2410_TICNT);
+ if (info->data->use_s3c2410_ticnt) {
+ con = readb(info->base + S3C2410_TICNT);
+ con &= ~S3C2410_TICNT_ENABLE;
+ writeb(con, info->base + S3C2410_TICNT);
+ }
}
static void s3c6410_rtc_disable(struct s3c_rtc *info)
@@ -550,18 +553,21 @@ static void s3c6410_rtc_irq(struct s3c_rtc *info, int mask)
}
static const struct s3c_rtc_data s3c2410_rtc_data = {
+ .use_s3c2410_ticnt = true,
.irq_handler = s3c24xx_rtc_irq,
.enable = s3c24xx_rtc_enable,
.disable = s3c24xx_rtc_disable,
};
static const struct s3c_rtc_data s3c2416_rtc_data = {
+ .use_s3c2410_ticnt = true,
.irq_handler = s3c24xx_rtc_irq,
.enable = s3c24xx_rtc_enable,
.disable = s3c24xx_rtc_disable,
};
static const struct s3c_rtc_data s3c2443_rtc_data = {
+ .use_s3c2410_ticnt = true,
.irq_handler = s3c24xx_rtc_irq,
.enable = s3c24xx_rtc_enable,
.disable = s3c24xx_rtc_disable,
@@ -574,6 +580,12 @@ static const struct s3c_rtc_data s3c6410_rtc_data = {
.disable = s3c6410_rtc_disable,
};
+static const struct s3c_rtc_data exynosautov9_rtc_data = {
+ .irq_handler = s3c6410_rtc_irq,
+ .enable = s3c24xx_rtc_enable,
+ .disable = s3c24xx_rtc_disable,
+};
+
static const __maybe_unused struct of_device_id s3c_rtc_dt_match[] = {
{
.compatible = "samsung,s3c2410-rtc",
@@ -590,6 +602,9 @@ static const __maybe_unused struct of_device_id s3c_rtc_dt_match[] = {
}, {
.compatible = "samsung,exynos3250-rtc",
.data = &s3c6410_rtc_data,
+ }, {
+ .compatible = "samsung,exynosautov9-rtc",
+ .data = &exynosautov9_rtc_data,
},
{ /* sentinel */ },
};
--
2.34.1
next prev parent reply other threads:[~2025-09-05 14:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20250905105708epcas5p159281b73f87fae88e824b97889908649@epcas5p1.samsung.com>
2025-09-05 11:05 ` [PATCH v3 0/3] On-chip RTC support for ExynosAutov9 Devang Tailor
2025-09-05 11:05 ` [PATCH v3 1/3] dt-bindings: rtc: s3c-rtc: add compatible for exynosautov9 Devang Tailor
2025-09-05 11:05 ` Devang Tailor [this message]
2025-09-05 14:03 ` [PATCH v3 2/3] rtc: s3c: support for exynosautov9 on-chip RTC Henrik Grimler
2025-09-05 11:05 ` [PATCH v3 3/3] arm64: dts: exynosautov9: add RTC DT node Devang Tailor
2025-10-05 21:42 ` [PATCH v3 0/3] On-chip RTC support for ExynosAutov9 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=20250905110554.2212304-3-dev.tailor@samsung.com \
--to=dev.tailor@samsung.com \
--cc=alexandre.belloni@bootlin.com \
--cc=alim.akhtar@samsung.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=faraz.ata@samsung.com \
--cc=henrik@grimler.se \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=robh@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.