Lines Matching +full:common +full:- +full:mode
1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (C) 2016-2018 Xilinx
9 #include <linux/clk-provider.h>
11 #include "clk-zynqmp.h"
14 * struct zynqmp_pll - PLL clock
15 * @hw: Handle between common and hardware-specific interfaces
43 * zynqmp_pll_get_mode() - Get mode of PLL
44 * @hw: Handle between common and hardware-specific interfaces
46 * Return: Mode of PLL
51 u32 clk_id = clk->clk_id; in zynqmp_pll_get_mode()
58 pr_warn_once("%s() PLL get frac mode failed for %s, ret = %d\n", in zynqmp_pll_get_mode()
65 * zynqmp_pll_set_mode() - Set the PLL mode
66 * @hw: Handle between common and hardware-specific interfaces
67 * @on: Flag to determine the mode
72 u32 clk_id = clk->clk_id; in zynqmp_pll_set_mode()
75 u32 mode; in zynqmp_pll_set_mode() local
78 mode = PLL_MODE_FRAC; in zynqmp_pll_set_mode()
80 mode = PLL_MODE_INT; in zynqmp_pll_set_mode()
82 ret = zynqmp_pm_set_pll_frac_mode(clk_id, mode); in zynqmp_pll_set_mode()
84 pr_warn_once("%s() PLL set frac mode failed for %s, ret = %d\n", in zynqmp_pll_set_mode()
87 clk->set_pll_mode = true; in zynqmp_pll_set_mode()
91 * zynqmp_pll_round_rate() - Round a clock frequency
92 * @hw: Handle between common and hardware-specific interfaces
124 * zynqmp_pll_recalc_rate() - Recalculate clock frequency
125 * @hw: Handle between common and hardware-specific interfaces
134 u32 clk_id = clk->clk_id; in zynqmp_pll_recalc_rate()
158 * zynqmp_pll_set_rate() - Set rate of PLL
159 * @hw: Handle between common and hardware-specific interfaces
171 u32 clk_id = clk->clk_id; in zynqmp_pll_set_rate()
188 if (ret == -EUSERS) in zynqmp_pll_set_rate()
210 * zynqmp_pll_is_enabled() - Check if a clock is enabled
211 * @hw: Handle between common and hardware-specific interfaces
219 u32 clk_id = clk->clk_id; in zynqmp_pll_is_enabled()
227 return -EIO; in zynqmp_pll_is_enabled()
234 * zynqmp_pll_enable() - Enable clock
235 * @hw: Handle between common and hardware-specific interfaces
243 u32 clk_id = clk->clk_id; in zynqmp_pll_enable()
250 if (zynqmp_pll_is_enabled(hw) && (!clk->set_pll_mode)) in zynqmp_pll_enable()
253 clk->set_pll_mode = false; in zynqmp_pll_enable()
264 * zynqmp_pll_disable() - Disable clock
265 * @hw: Handle between common and hardware-specific interfaces
271 u32 clk_id = clk->clk_id; in zynqmp_pll_disable()
293 * zynqmp_clk_register_pll() - Register PLL with the clock framework
314 init.flags = nodes->flag; in zynqmp_clk_register_pll()
320 return ERR_PTR(-ENOMEM); in zynqmp_clk_register_pll()
322 pll->hw.init = &init; in zynqmp_clk_register_pll()
323 pll->clk_id = clk_id; in zynqmp_clk_register_pll()
325 hw = &pll->hw; in zynqmp_clk_register_pll()