[PATCH] clk: sunxi-ng: sun6i-rtc: Add A523 specifics

Chen-Yu Tsai posted 1 patch 3 weeks, 2 days ago
drivers/clk/sunxi-ng/ccu-sun6i-rtc.c | 11 +++++++++++
1 file changed, 11 insertions(+)
[PATCH] clk: sunxi-ng: sun6i-rtc: Add A523 specifics
Posted by Chen-Yu Tsai 3 weeks, 2 days ago
From: Chen-Yu Tsai <wens@csie.org>

The A523's RTC block is backward compatible with the R329's, but it also
has a calibration function for its internal oscillator, which would
allow it to provide a clock rate closer to the desired 32.768 KHz. This
is useful on the Radxa Cubie A5E, which does not have an external 32.768
KHz crystal.

Add new compatible-specific data for it.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 drivers/clk/sunxi-ng/ccu-sun6i-rtc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c b/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c
index 0536e880b80f..f6bfeba009e8 100644
--- a/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c
+++ b/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c
@@ -325,6 +325,13 @@ static const struct sun6i_rtc_match_data sun50i_r329_rtc_ccu_data = {
 	.osc32k_fanout_nparents	= ARRAY_SIZE(sun50i_r329_osc32k_fanout_parents),
 };
 
+static const struct sun6i_rtc_match_data sun55i_a523_rtc_ccu_data = {
+	.have_ext_osc32k	= true,
+	.have_iosc_calibration	= true,
+	.osc32k_fanout_parents	= sun50i_r329_osc32k_fanout_parents,
+	.osc32k_fanout_nparents	= ARRAY_SIZE(sun50i_r329_osc32k_fanout_parents),
+};
+
 static const struct of_device_id sun6i_rtc_ccu_match[] = {
 	{
 		.compatible	= "allwinner,sun50i-h616-rtc",
@@ -334,6 +341,10 @@ static const struct of_device_id sun6i_rtc_ccu_match[] = {
 		.compatible	= "allwinner,sun50i-r329-rtc",
 		.data		= &sun50i_r329_rtc_ccu_data,
 	},
+	{
+		.compatible	= "allwinner,sun55i-a523-rtc",
+		.data		= &sun55i_a523_rtc_ccu_data,
+	},
 	{},
 };
 MODULE_DEVICE_TABLE(of, sun6i_rtc_ccu_match);
-- 
2.39.5
Re: [PATCH] clk: sunxi-ng: sun6i-rtc: Add A523 specifics
Posted by Chen-Yu Tsai 3 weeks ago
On Wed, 10 Sep 2025 01:09:47 +0800, Chen-Yu Tsai wrote:
> The A523's RTC block is backward compatible with the R329's, but it also
> has a calibration function for its internal oscillator, which would
> allow it to provide a clock rate closer to the desired 32.768 KHz. This
> is useful on the Radxa Cubie A5E, which does not have an external 32.768
> KHz crystal.
> 
> Add new compatible-specific data for it.
> 
> [...]

Applied to sunxi/clk-for-6.18 in local tree, thanks!

[1/1] clk: sunxi-ng: sun6i-rtc: Add A523 specifics
      commit: 7aa8781f379c32c31bd78f1408a31765b2297c43

Best regards,
-- 
Chen-Yu Tsai <wens@csie.org>
Re: [PATCH] clk: sunxi-ng: sun6i-rtc: Add A523 specifics
Posted by Jernej Škrabec 3 weeks, 2 days ago
Dne torek, 9. september 2025 ob 19:09:47 Srednjeevropski poletni čas je Chen-Yu Tsai napisal(a):
> From: Chen-Yu Tsai <wens@csie.org>
> 
> The A523's RTC block is backward compatible with the R329's, but it also
> has a calibration function for its internal oscillator, which would
> allow it to provide a clock rate closer to the desired 32.768 KHz. This
> is useful on the Radxa Cubie A5E, which does not have an external 32.768
> KHz crystal.
> 
> Add new compatible-specific data for it.
> 
> Signed-off-by: Chen-Yu Tsai <wens@csie.org>

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej

> ---
>  drivers/clk/sunxi-ng/ccu-sun6i-rtc.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c b/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c
> index 0536e880b80f..f6bfeba009e8 100644
> --- a/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c
> +++ b/drivers/clk/sunxi-ng/ccu-sun6i-rtc.c
> @@ -325,6 +325,13 @@ static const struct sun6i_rtc_match_data sun50i_r329_rtc_ccu_data = {
>  	.osc32k_fanout_nparents	= ARRAY_SIZE(sun50i_r329_osc32k_fanout_parents),
>  };
>  
> +static const struct sun6i_rtc_match_data sun55i_a523_rtc_ccu_data = {
> +	.have_ext_osc32k	= true,
> +	.have_iosc_calibration	= true,
> +	.osc32k_fanout_parents	= sun50i_r329_osc32k_fanout_parents,
> +	.osc32k_fanout_nparents	= ARRAY_SIZE(sun50i_r329_osc32k_fanout_parents),
> +};
> +
>  static const struct of_device_id sun6i_rtc_ccu_match[] = {
>  	{
>  		.compatible	= "allwinner,sun50i-h616-rtc",
> @@ -334,6 +341,10 @@ static const struct of_device_id sun6i_rtc_ccu_match[] = {
>  		.compatible	= "allwinner,sun50i-r329-rtc",
>  		.data		= &sun50i_r329_rtc_ccu_data,
>  	},
> +	{
> +		.compatible	= "allwinner,sun55i-a523-rtc",
> +		.data		= &sun55i_a523_rtc_ccu_data,
> +	},
>  	{},
>  };
>  MODULE_DEVICE_TABLE(of, sun6i_rtc_ccu_match);
>