diff mbox series

[linux,dev-5.8,3/4] fsi: Aspeed master: Set clock frequency from devicetree

Message ID 20200824221051.47972-4-eajames@linux.ibm.com
State New
Headers show
Series AST2600 clock and FSI: Add APLL to control FSI clock | expand

Commit Message

Eddie James Aug. 24, 2020, 10:10 p.m. UTC
Set the FSI clock frequency based on the value encoded in the
devicetree, if present.

Signed-off-by: Eddie James <eajames@linux.ibm.com>
---
 drivers/fsi/fsi-master-aspeed.c | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Joel Stanley Sept. 1, 2020, 6:39 a.m. UTC | #1
On Mon, 24 Aug 2020 at 22:11, Eddie James <eajames@linux.ibm.com> wrote:
>
> Set the FSI clock frequency based on the value encoded in the
> devicetree, if present.

Should we default it to 166 if it's not present?

Reviewed-by: Joel Stanley <joel@jms.id.au>

>
> Signed-off-by: Eddie James <eajames@linux.ibm.com>
> ---
>  drivers/fsi/fsi-master-aspeed.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/drivers/fsi/fsi-master-aspeed.c b/drivers/fsi/fsi-master-aspeed.c
> index c006ec008a1a..aedcc9be48ca 100644
> --- a/drivers/fsi/fsi-master-aspeed.c
> +++ b/drivers/fsi/fsi-master-aspeed.c
> @@ -515,6 +515,7 @@ static int fsi_master_aspeed_probe(struct platform_device *pdev)
>         struct fsi_master_aspeed *aspeed;
>         struct resource *res;
>         int rc, links, reg;
> +       u32 clk_freq;
>         __be32 raw;
>
>         rc = tacoma_cabled_fsi_fixup(&pdev->dev);
> @@ -539,6 +540,11 @@ static int fsi_master_aspeed_probe(struct platform_device *pdev)
>                 dev_err(aspeed->dev, "couldn't get clock\n");
>                 return PTR_ERR(aspeed->clk);
>         }
> +
> +       if (!of_property_read_u32(pdev->dev.of_node, "clock-frequency",
> +                                 &clk_freq))
> +               clk_set_rate(aspeed->clk, clk_freq);
> +
>         rc = clk_prepare_enable(aspeed->clk);
>         if (rc) {
>                 dev_err(aspeed->dev, "couldn't enable clock\n");
> --
> 2.26.2
>
diff mbox series

Patch

diff --git a/drivers/fsi/fsi-master-aspeed.c b/drivers/fsi/fsi-master-aspeed.c
index c006ec008a1a..aedcc9be48ca 100644
--- a/drivers/fsi/fsi-master-aspeed.c
+++ b/drivers/fsi/fsi-master-aspeed.c
@@ -515,6 +515,7 @@  static int fsi_master_aspeed_probe(struct platform_device *pdev)
 	struct fsi_master_aspeed *aspeed;
 	struct resource *res;
 	int rc, links, reg;
+	u32 clk_freq;
 	__be32 raw;
 
 	rc = tacoma_cabled_fsi_fixup(&pdev->dev);
@@ -539,6 +540,11 @@  static int fsi_master_aspeed_probe(struct platform_device *pdev)
 		dev_err(aspeed->dev, "couldn't get clock\n");
 		return PTR_ERR(aspeed->clk);
 	}
+
+	if (!of_property_read_u32(pdev->dev.of_node, "clock-frequency",
+				  &clk_freq))
+		clk_set_rate(aspeed->clk, clk_freq);
+
 	rc = clk_prepare_enable(aspeed->clk);
 	if (rc) {
 		dev_err(aspeed->dev, "couldn't enable clock\n");