Lines Matching defs:pll_data

66  * @pll_data: PLL driver specific data
70 struct clk_pll_data *pll_data;
79 struct clk_pll_data *pll_data = pll->pll_data;
87 if (pll_data->has_pllctrl) {
88 val = readl(pll_data->pllm);
89 mult = (val & pll_data->pllm_lower_mask);
93 val = readl(pll_data->pll_ctl0);
94 mult |= ((val & pll_data->pllm_upper_mask)
95 >> pll_data->pllm_upper_shift);
96 prediv = (val & pll_data->plld_mask);
98 if (!pll_data->has_pllctrl)
100 postdiv = ((val & pll_data->clkod_mask) >>
101 pll_data->clkod_shift) + 1;
102 else if (pll_data->pllod) {
103 postdiv = readl(pll_data->pllod);
104 postdiv = ((postdiv & pll_data->clkod_mask) >>
105 pll_data->clkod_shift) + 1;
107 postdiv = pll_data->postdiv;
123 struct clk_pll_data *pll_data)
139 pll->pll_data = pll_data;
160 struct clk_pll_data *pll_data;
165 pll_data = kzalloc(sizeof(*pll_data), GFP_KERNEL);
166 if (!pll_data) {
172 if (of_property_read_u32(node, "fixed-postdiv", &pll_data->postdiv)) {
174 pll_data->clkod_mask = CLKOD_MASK;
175 pll_data->clkod_shift = CLKOD_SHIFT;
183 pll_data->pllod = of_iomap(node, i);
187 pll_data->pll_ctl0 = of_iomap(node, i);
188 if (!pll_data->pll_ctl0) {
190 iounmap(pll_data->pllod);
194 pll_data->pllm_lower_mask = PLLM_LOW_MASK;
195 pll_data->pllm_upper_shift = PLLM_HIGH_SHIFT;
196 pll_data->plld_mask = PLLD_MASK;
197 pll_data->has_pllctrl = pllctrl;
198 if (!pll_data->has_pllctrl) {
199 pll_data->pllm_upper_mask = PLLM_HIGH_MASK;
201 pll_data->pllm_upper_mask = MAIN_PLLM_HIGH_MASK;
203 pll_data->pllm = of_iomap(node, i);
204 if (!pll_data->pllm) {
205 iounmap(pll_data->pll_ctl0);
206 iounmap(pll_data->pllod);
211 clk = clk_register_pll(NULL, node->name, parent_name, pll_data);
219 kfree(pll_data);