[PATCH v2 2/3] rtc: s3c: support for exynosautov9 on-chip RTC
Henrik Grimler
henrik at grimler.se
Wed Sep 3 12:20:46 PDT 2025
Hi Devang,
On Thu, Jul 10, 2025 at 02:04:33PM +0530, Devang Tailor wrote:
> The on-chip RTC of this SoC is almost similar to the previous
> versions of SoC. Hence re-use the existing driver with platform specific
> change to enable RTC.
Could you please describe what the differences are to previous SoCs?
You write almost similar, please elaborate in what way in commit
message.
> This has been tested with 'hwclock' & 'date' utilities
>
> Signed-off-by: Devang Tailor <dev.tailor at samsung.com>
> ---
>
> drivers/rtc/rtc-s3c.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
> index 5dd575865adf..8db24b6360b8 100644
> --- a/drivers/rtc/rtc-s3c.c
> +++ b/drivers/rtc/rtc-s3c.c
> @@ -384,6 +384,15 @@ static void s3c6410_rtc_disable(struct s3c_rtc *info)
> writew(con, info->base + S3C2410_RTCCON);
> }
>
> +static void exynosautov9_rtc_disable(struct s3c_rtc *info)
> +{
> + unsigned int con;
> +
> + con = readb(info->base + S3C2410_RTCCON);
> + con &= ~S3C2410_RTCCON_RTCEN;
> + writeb(con, info->base + S3C2410_RTCCON);
> +}
Rather than adding a new rtc_disable variant I think this could be
handled in existing s3c24xx_rtc_disable (and I think that is what
Krzysztof meant). How about adding a new bool to rtc_data that
describes if S3C2410_TICNT reg is supported or not, and checking it in
s3c24xx_rtc_disable?
Best regards,
Henrik Grimler
> static void s3c_rtc_remove(struct platform_device *pdev)
> {
> struct s3c_rtc *info = platform_get_drvdata(pdev);
> @@ -574,6 +583,12 @@ static struct s3c_rtc_data const 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 = exynosautov9_rtc_disable,
> +};
> +
> static const __maybe_unused struct of_device_id s3c_rtc_dt_match[] = {
> {
> .compatible = "samsung,s3c2410-rtc",
> @@ -590,6 +605,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
>
>
More information about the linux-arm-kernel
mailing list