Lines Matching full:osc

72 	struct clk_slow_osc *osc = to_clk_slow_osc(hw);  in clk_slow_osc_prepare()  local
73 void __iomem *sckcr = osc->sckcr; in clk_slow_osc_prepare()
76 if (tmp & (osc->bits->cr_osc32byp | osc->bits->cr_osc32en)) in clk_slow_osc_prepare()
79 writel(tmp | osc->bits->cr_osc32en, sckcr); in clk_slow_osc_prepare()
82 udelay(osc->startup_usec); in clk_slow_osc_prepare()
84 usleep_range(osc->startup_usec, osc->startup_usec + 1); in clk_slow_osc_prepare()
91 struct clk_slow_osc *osc = to_clk_slow_osc(hw); in clk_slow_osc_unprepare() local
92 void __iomem *sckcr = osc->sckcr; in clk_slow_osc_unprepare()
95 if (tmp & osc->bits->cr_osc32byp) in clk_slow_osc_unprepare()
98 writel(tmp & ~osc->bits->cr_osc32en, sckcr); in clk_slow_osc_unprepare()
103 struct clk_slow_osc *osc = to_clk_slow_osc(hw); in clk_slow_osc_is_prepared() local
104 void __iomem *sckcr = osc->sckcr; in clk_slow_osc_is_prepared()
107 if (tmp & osc->bits->cr_osc32byp) in clk_slow_osc_is_prepared()
110 return !!(tmp & osc->bits->cr_osc32en); in clk_slow_osc_is_prepared()
127 struct clk_slow_osc *osc; in at91_clk_register_slow_osc() local
135 osc = kzalloc(sizeof(*osc), GFP_KERNEL); in at91_clk_register_slow_osc()
136 if (!osc) in at91_clk_register_slow_osc()
145 osc->hw.init = &init; in at91_clk_register_slow_osc()
146 osc->sckcr = sckcr; in at91_clk_register_slow_osc()
147 osc->startup_usec = startup; in at91_clk_register_slow_osc()
148 osc->bits = bits; in at91_clk_register_slow_osc()
151 writel((readl(sckcr) & ~osc->bits->cr_osc32en) | in at91_clk_register_slow_osc()
152 osc->bits->cr_osc32byp, sckcr); in at91_clk_register_slow_osc()
154 hw = &osc->hw; in at91_clk_register_slow_osc()
155 ret = clk_hw_register(NULL, &osc->hw); in at91_clk_register_slow_osc()
157 kfree(osc); in at91_clk_register_slow_osc()
166 struct clk_slow_osc *osc = to_clk_slow_osc(hw); in at91_clk_unregister_slow_osc() local
169 kfree(osc); in at91_clk_unregister_slow_osc()
175 struct clk_slow_rc_osc *osc = to_clk_slow_rc_osc(hw); in clk_slow_rc_osc_recalc_rate() local
177 return osc->frequency; in clk_slow_rc_osc_recalc_rate()
183 struct clk_slow_rc_osc *osc = to_clk_slow_rc_osc(hw); in clk_slow_rc_osc_recalc_accuracy() local
185 return osc->accuracy; in clk_slow_rc_osc_recalc_accuracy()
190 struct clk_slow_rc_osc *osc = to_clk_slow_rc_osc(hw); in clk_slow_rc_osc_prepare() local
191 void __iomem *sckcr = osc->sckcr; in clk_slow_rc_osc_prepare()
193 writel(readl(sckcr) | osc->bits->cr_rcen, sckcr); in clk_slow_rc_osc_prepare()
196 udelay(osc->startup_usec); in clk_slow_rc_osc_prepare()
198 usleep_range(osc->startup_usec, osc->startup_usec + 1); in clk_slow_rc_osc_prepare()
205 struct clk_slow_rc_osc *osc = to_clk_slow_rc_osc(hw); in clk_slow_rc_osc_unprepare() local
206 void __iomem *sckcr = osc->sckcr; in clk_slow_rc_osc_unprepare()
208 writel(readl(sckcr) & ~osc->bits->cr_rcen, sckcr); in clk_slow_rc_osc_unprepare()
213 struct clk_slow_rc_osc *osc = to_clk_slow_rc_osc(hw); in clk_slow_rc_osc_is_prepared() local
215 return !!(readl(osc->sckcr) & osc->bits->cr_rcen); in clk_slow_rc_osc_is_prepared()
234 struct clk_slow_rc_osc *osc; in at91_clk_register_slow_rc_osc() local
242 osc = kzalloc(sizeof(*osc), GFP_KERNEL); in at91_clk_register_slow_rc_osc()
243 if (!osc) in at91_clk_register_slow_rc_osc()
252 osc->hw.init = &init; in at91_clk_register_slow_rc_osc()
253 osc->sckcr = sckcr; in at91_clk_register_slow_rc_osc()
254 osc->bits = bits; in at91_clk_register_slow_rc_osc()
255 osc->frequency = frequency; in at91_clk_register_slow_rc_osc()
256 osc->accuracy = accuracy; in at91_clk_register_slow_rc_osc()
257 osc->startup_usec = startup; in at91_clk_register_slow_rc_osc()
259 hw = &osc->hw; in at91_clk_register_slow_rc_osc()
260 ret = clk_hw_register(NULL, &osc->hw); in at91_clk_register_slow_rc_osc()
262 kfree(osc); in at91_clk_register_slow_rc_osc()
271 struct clk_slow_rc_osc *osc = to_clk_slow_rc_osc(hw); in at91_clk_unregister_slow_rc_osc() local
274 kfree(osc); in at91_clk_unregister_slow_rc_osc()
395 child = of_get_compatible_child(np, "atmel,at91sam9x5-clk-slow-osc"); in at91sam9x5_sckc_register()
400 bypass = of_property_read_bool(child, "atmel,osc-bypass"); in at91sam9x5_sckc_register()
404 bypass = of_property_read_bool(np, "atmel,osc-bypass"); in at91sam9x5_sckc_register()
498 bypass = of_property_read_bool(np, "atmel,osc-bypass"); in of_sam9x60_sckc_setup()
547 struct clk_sama5d4_slow_osc *osc = to_clk_sama5d4_slow_osc(hw); in clk_sama5d4_slow_osc_prepare() local
549 if (osc->prepared) in clk_sama5d4_slow_osc_prepare()
556 if ((readl(osc->sckcr) & osc->bits->cr_oscsel)) { in clk_sama5d4_slow_osc_prepare()
557 osc->prepared = true; in clk_sama5d4_slow_osc_prepare()
562 udelay(osc->startup_usec); in clk_sama5d4_slow_osc_prepare()
564 usleep_range(osc->startup_usec, osc->startup_usec + 1); in clk_sama5d4_slow_osc_prepare()
565 osc->prepared = true; in clk_sama5d4_slow_osc_prepare()
572 struct clk_sama5d4_slow_osc *osc = to_clk_sama5d4_slow_osc(hw); in clk_sama5d4_slow_osc_is_prepared() local
574 return osc->prepared; in clk_sama5d4_slow_osc_is_prepared()
590 struct clk_sama5d4_slow_osc *osc; in of_sama5d4_sckc_setup() local
614 osc = kzalloc(sizeof(*osc), GFP_KERNEL); in of_sama5d4_sckc_setup()
615 if (!osc) in of_sama5d4_sckc_setup()
624 osc->hw.init = &init; in of_sama5d4_sckc_setup()
625 osc->sckcr = regbase; in of_sama5d4_sckc_setup()
626 osc->startup_usec = 1200000; in of_sama5d4_sckc_setup()
627 osc->bits = &at91sama5d4_bits; in of_sama5d4_sckc_setup()
629 ret = clk_hw_register(NULL, &osc->hw); in of_sama5d4_sckc_setup()
634 parent_hws[1] = &osc->hw; in of_sama5d4_sckc_setup()
650 clk_hw_unregister(&osc->hw); in of_sama5d4_sckc_setup()
652 kfree(osc); in of_sama5d4_sckc_setup()