Lines Matching +full:reg +full:- +full:init
1 // SPDX-License-Identifier: GPL-2.0+
8 #include <linux/clk-provider.h>
14 #include "clk-scu.h"
23 * struct clk_lpcg_scu - Description of LPCG clock
26 * @reg: register of this LPCG clock
34 void __iomem *reg; member
45 u32 reg, val; in clk_lpcg_scu_enable() local
49 reg = readl_relaxed(clk->reg); in clk_lpcg_scu_enable()
50 reg &= ~(CLK_GATE_SCU_LPCG_MASK << clk->bit_idx); in clk_lpcg_scu_enable()
53 if (clk->hw_gate) in clk_lpcg_scu_enable()
56 reg |= val << clk->bit_idx; in clk_lpcg_scu_enable()
57 writel(reg, clk->reg); in clk_lpcg_scu_enable()
68 u32 reg; in clk_lpcg_scu_disable() local
72 reg = readl_relaxed(clk->reg); in clk_lpcg_scu_disable()
73 reg &= ~(CLK_GATE_SCU_LPCG_MASK << clk->bit_idx); in clk_lpcg_scu_disable()
74 writel(reg, clk->reg); in clk_lpcg_scu_disable()
85 unsigned long flags, void __iomem *reg, in imx_clk_lpcg_scu() argument
89 struct clk_init_data init; in imx_clk_lpcg_scu() local
95 return ERR_PTR(-ENOMEM); in imx_clk_lpcg_scu()
97 clk->reg = reg; in imx_clk_lpcg_scu()
98 clk->bit_idx = bit_idx; in imx_clk_lpcg_scu()
99 clk->hw_gate = hw_gate; in imx_clk_lpcg_scu()
101 init.name = name; in imx_clk_lpcg_scu()
102 init.ops = &clk_lpcg_scu_ops; in imx_clk_lpcg_scu()
103 init.flags = CLK_SET_RATE_PARENT | flags; in imx_clk_lpcg_scu()
104 init.parent_names = parent_name ? &parent_name : NULL; in imx_clk_lpcg_scu()
105 init.num_parents = parent_name ? 1 : 0; in imx_clk_lpcg_scu()
107 clk->hw.init = &init; in imx_clk_lpcg_scu()
109 hw = &clk->hw; in imx_clk_lpcg_scu()