Lines Matching +full:zynqmp +full:- +full:clk

1 // SPDX-License-Identifier: GPL-2.0+
3 * ZynqMP clock driver
10 #include <clk-uclass.h>
11 #include <clk.h>
241 debug("Invalid clk id%d\n", id); in zynqmp_clk_get_register()
323 return priv->video_clk; in zynqmp_clk_get_pll_src()
325 return priv->pss_alt_ref_clk; in zynqmp_clk_get_pll_src()
327 return priv->aux_ref_clk; in zynqmp_clk_get_pll_src()
329 return priv->gt_crx_ref_clk; in zynqmp_clk_get_pll_src()
332 return priv->ps_clk_freq; in zynqmp_clk_get_pll_src()
346 return -EIO; in zynqmp_clk_get_pll_rate()
379 return -EIO; in zynqmp_clk_get_cpu_rate()
402 return -EIO; in zynqmp_clk_get_ddr_rate()
427 return -EIO; in zynqmp_clk_get_peripheral_rate()
462 return -EIO; in zynqmp_clk_get_wdt_rate()
474 return -EIO; in zynqmp_clk_get_wdt_rate()
505 new_err = abs(new_rate - rate); in zynqmp_clk_calc_peripheral_two_divs()
534 return -EIO; in zynqmp_clk_set_peripheral_rate()
562 return -EIO; in zynqmp_clk_set_peripheral_rate()
568 static ulong zynqmp_clk_get_rate(struct clk *clk) in zynqmp_clk_get_rate() argument
570 struct zynqmp_clk_priv *priv = dev_get_priv(clk->dev); in zynqmp_clk_get_rate()
571 enum zynqmp_clk id = clk->id; in zynqmp_clk_get_rate()
590 return -ENXIO; in zynqmp_clk_get_rate()
594 static ulong zynqmp_clk_set_rate(struct clk *clk, ulong rate) in zynqmp_clk_set_rate() argument
596 struct zynqmp_clk_priv *priv = dev_get_priv(clk->dev); in zynqmp_clk_set_rate()
597 enum zynqmp_clk id = clk->id; in zynqmp_clk_set_rate()
606 return -ENXIO; in zynqmp_clk_set_rate()
620 printf("clk\t\tfrequency\n"); in soc_clk_dump()
624 struct clk clk; in soc_clk_dump() local
627 clk.id = i; in soc_clk_dump()
628 ret = clk_request(dev, &clk); in soc_clk_dump()
632 rate = clk_get_rate(&clk); in soc_clk_dump()
634 clk_free(&clk); in soc_clk_dump()
636 if ((rate == (unsigned long)-ENOSYS) || in soc_clk_dump()
637 (rate == (unsigned long)-ENXIO) || in soc_clk_dump()
638 (rate == (unsigned long)-EIO)) in soc_clk_dump()
650 struct clk clk; in zynqmp_get_freq_by_name() local
653 ret = clk_get_by_name(dev, name, &clk); in zynqmp_get_freq_by_name()
659 *freq = clk_get_rate(&clk); in zynqmp_get_freq_by_name()
662 return -EINVAL; in zynqmp_get_freq_by_name()
673 ret = zynqmp_get_freq_by_name("pss_ref_clk", dev, &priv->ps_clk_freq); in zynqmp_clk_probe()
675 return -EINVAL; in zynqmp_clk_probe()
677 ret = zynqmp_get_freq_by_name("video_clk", dev, &priv->video_clk); in zynqmp_clk_probe()
679 return -EINVAL; in zynqmp_clk_probe()
682 &priv->pss_alt_ref_clk); in zynqmp_clk_probe()
684 return -EINVAL; in zynqmp_clk_probe()
686 ret = zynqmp_get_freq_by_name("aux_ref_clk", dev, &priv->aux_ref_clk); in zynqmp_clk_probe()
688 return -EINVAL; in zynqmp_clk_probe()
691 &priv->gt_crx_ref_clk); in zynqmp_clk_probe()
693 return -EINVAL; in zynqmp_clk_probe()
704 { .compatible = "xlnx,zynqmp-clk" },
705 { .compatible = "xlnx,zynqmp-clkc" },
710 .name = "zynqmp-clk",