Lines Matching refs:pll_data
75 struct clk_pll_data *pll_data; member
84 struct clk_pll_data *pll_data = pll->pll_data; in clk_pllclk_recalc() local
92 if (pll_data->has_pllctrl) { in clk_pllclk_recalc()
93 val = readl(pll_data->pllm); in clk_pllclk_recalc()
94 mult = (val & pll_data->pllm_lower_mask); in clk_pllclk_recalc()
98 val = readl(pll_data->pll_ctl0); in clk_pllclk_recalc()
99 mult |= ((val & pll_data->pllm_upper_mask) in clk_pllclk_recalc()
100 >> pll_data->pllm_upper_shift); in clk_pllclk_recalc()
101 prediv = (val & pll_data->plld_mask); in clk_pllclk_recalc()
103 if (!pll_data->has_pllctrl) in clk_pllclk_recalc()
105 postdiv = ((val & pll_data->clkod_mask) >> in clk_pllclk_recalc()
106 pll_data->clkod_shift) + 1; in clk_pllclk_recalc()
107 else if (pll_data->pllod) { in clk_pllclk_recalc()
108 postdiv = readl(pll_data->pllod); in clk_pllclk_recalc()
109 postdiv = ((postdiv & pll_data->clkod_mask) >> in clk_pllclk_recalc()
110 pll_data->clkod_shift) + 1; in clk_pllclk_recalc()
112 postdiv = pll_data->postdiv; in clk_pllclk_recalc()
128 struct clk_pll_data *pll_data) in clk_register_pll() argument
144 pll->pll_data = pll_data; in clk_register_pll()
165 struct clk_pll_data *pll_data; in _of_pll_clk_init() local
170 pll_data = kzalloc(sizeof(*pll_data), GFP_KERNEL); in _of_pll_clk_init()
171 if (!pll_data) { in _of_pll_clk_init()
177 if (of_property_read_u32(node, "fixed-postdiv", &pll_data->postdiv)) { in _of_pll_clk_init()
179 pll_data->clkod_mask = CLKOD_MASK; in _of_pll_clk_init()
180 pll_data->clkod_shift = CLKOD_SHIFT; in _of_pll_clk_init()
188 pll_data->pllod = of_iomap(node, i); in _of_pll_clk_init()
192 pll_data->pll_ctl0 = of_iomap(node, i); in _of_pll_clk_init()
193 if (!pll_data->pll_ctl0) { in _of_pll_clk_init()
195 iounmap(pll_data->pllod); in _of_pll_clk_init()
199 pll_data->pllm_lower_mask = PLLM_LOW_MASK; in _of_pll_clk_init()
200 pll_data->pllm_upper_shift = PLLM_HIGH_SHIFT; in _of_pll_clk_init()
201 pll_data->plld_mask = PLLD_MASK; in _of_pll_clk_init()
202 pll_data->has_pllctrl = pllctrl; in _of_pll_clk_init()
203 if (!pll_data->has_pllctrl) { in _of_pll_clk_init()
204 pll_data->pllm_upper_mask = PLLM_HIGH_MASK; in _of_pll_clk_init()
206 pll_data->pllm_upper_mask = MAIN_PLLM_HIGH_MASK; in _of_pll_clk_init()
208 pll_data->pllm = of_iomap(node, i); in _of_pll_clk_init()
209 if (!pll_data->pllm) { in _of_pll_clk_init()
210 iounmap(pll_data->pll_ctl0); in _of_pll_clk_init()
211 iounmap(pll_data->pllod); in _of_pll_clk_init()
216 clk = clk_register_pll(NULL, node->name, parent_name, pll_data); in _of_pll_clk_init()
224 kfree(pll_data); in _of_pll_clk_init()