65;5402;1c
On Wed, Nov 28, 2018 at 05:30:06PM +0800, Chen-Yu Tsai wrote:
> The bindings have been updated to expose the RTC's internal oscillator,
> for some SoCs that have it directly feeding the PRCM block. The changes
> include the index 2 for the clock outputs, as well as the clock output
> names.
> 
> This patch adds the internal oscillator to the list of clocks exposed
> through of_clk_add_hw_provider(), and also have the driver optionally
> fetch the name of the clock from the device tree if it's available.
> 
> Signed-off-by: Chen-Yu Tsai <[email protected]>
> ---
>  drivers/rtc/rtc-sun6i.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
> index 62ed9ce53d8c..273ab7fbbbe3 100644
> --- a/drivers/rtc/rtc-sun6i.c
> +++ b/drivers/rtc/rtc-sun6i.c
> @@ -220,6 +220,7 @@ static void __init sun6i_rtc_clk_init(struct device_node 
> *node,
>               .ops            = &sun6i_rtc_osc_ops,
>               .name           = "losc",
>       };
> +     const char *iosc_name = "rtc-int-osc";
>       const char *clkout_name = "osc32k-out";
>       const char *parents[2];
>  
> @@ -228,7 +229,7 @@ static void __init sun6i_rtc_clk_init(struct device_node 
> *node,
>               return;
>  
>       rtc->data = data;
> -     clk_data = kzalloc(struct_size(clk_data, hws, 2), GFP_KERNEL);
> +     clk_data = kzalloc(struct_size(clk_data, hws, 3), GFP_KERNEL);
>       if (!clk_data) {
>               kfree(rtc);
>               return;
> @@ -253,8 +254,10 @@ static void __init sun6i_rtc_clk_init(struct device_node 
> *node,
>       if (!of_get_property(node, "clocks", NULL))
>               goto err;
>  
> +     of_property_read_string_index(node, "clock-output-names", 2,
> +                                   &iosc_name);
>       rtc->int_osc = clk_hw_register_fixed_rate_with_accuracy(NULL,
> -                                                             "rtc-int-osc",
> +                                                             iosc_name,
>                                                               NULL, 0,
>                                                               
> rtc->data->rc_osc_rate,
>                                                               300000000);
> @@ -290,9 +293,10 @@ static void __init sun6i_rtc_clk_init(struct device_node 
> *node,
>               return;
>       }
>  
> -     clk_data->num = 2;
> +     clk_data->num = 3;
>       clk_data->hws[0] = &rtc->hw;
>       clk_data->hws[1] = __clk_get_hw(rtc->ext_losc);
> +     clk_data->hws[2] = rtc->int_osc;

Shouldn't we add a check on either the compatible on the number of
clock-output-names?

Maxime

-- 
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Attachment: signature.asc
Description: PGP signature

Reply via email to