Hi,

On Wed, 05 Mar 2025 21:28:18 +0800 Alice Guo (OSS) wrote:
> From: Peng Fan <peng....@nxp.com>
> 
> This patch adds the command CLOCK_PARENT_SET that can be used to set the
> parent of a clock. ARM SCMI Version 3.2 supports to change the parent of
> a clock device.
> 
> Signed-off-by: Peng Fan <peng....@nxp.com>
> Signed-off-by: Alice Guo <alice....@nxp.com>
> Reviewed-by: Ye Li <ye...@nxp.com>
> ---
>  drivers/clk/clk_scmi.c   | 20 ++++++++++++++++++++
>  include/scmi_protocols.h | 19 +++++++++++++++++++
>  2 files changed, 39 insertions(+)
> 
> diff --git a/drivers/clk/clk_scmi.c b/drivers/clk/clk_scmi.c
> index e42d2032d4..84333cdd0c 100644
> --- a/drivers/clk/clk_scmi.c
> +++ b/drivers/clk/clk_scmi.c
> @@ -178,11 +178,31 @@ static int scmi_clk_probe(struct udevice *dev)
>       return 0;
>  }
>  
> +static int scmi_clk_set_parent(struct clk *clk, struct clk *parent)
> +{
> +     struct scmi_clk_parent_set_in in = {
> +             .clock_id = clk->id,
> +             .parent_clk = parent->id,
> +     };
> +     struct scmi_clk_parent_set_out out;
> +     struct scmi_msg msg = SCMI_MSG_IN(SCMI_PROTOCOL_ID_CLOCK,
> +                                       SCMI_CLOCK_PARENT_SET,
> +                                       in, out);
> +     int ret;
> +
> +     ret = devm_scmi_process_msg(clk->dev, &msg);
> +     if (ret < 0)
> +             return ret;
> +
> +     return scmi_to_linux_errno(out.status);
> +}
> +
>  static const struct clk_ops scmi_clk_ops = {
>       .enable = scmi_clk_enable,
>       .disable = scmi_clk_disable,
>       .get_rate = scmi_clk_get_rate,
>       .set_rate = scmi_clk_set_rate,
> +     .set_parent = scmi_clk_set_parent,
>  };
>  
>  U_BOOT_DRIVER(scmi_clock) = {
> diff --git a/include/scmi_protocols.h b/include/scmi_protocols.h
> index 34f272c448..0d8c177025 100644
> --- a/include/scmi_protocols.h
> +++ b/include/scmi_protocols.h
> @@ -737,6 +737,7 @@ enum scmi_clock_message_id {
>       SCMI_CLOCK_RATE_SET = 0x5,
>       SCMI_CLOCK_RATE_GET = 0x6,
>       SCMI_CLOCK_CONFIG_SET = 0x7,
> +     SCMI_CLOCK_PARENT_SET = 0xD
>
add a comma to facilitate extending the enum definition


Lothar Waßmann

Reply via email to