Lines Matching refs:s3c24xx_dclk
126 struct s3c24xx_dclk { struct
137 container_of(x, struct s3c24xx_dclk, dclk0_div_change_nb) argument
140 container_of(x, struct s3c24xx_dclk, dclk1_div_change_nb)
170 static void s3c24xx_dclk_update_cmp(struct s3c24xx_dclk *s3c24xx_dclk, in s3c24xx_dclk_update_cmp() argument
176 spin_lock_irqsave(&s3c24xx_dclk->dclk_lock, flags); in s3c24xx_dclk_update_cmp()
178 dclk_con = readl_relaxed(s3c24xx_dclk->base); in s3c24xx_dclk_update_cmp()
186 writel_relaxed(dclk_con, s3c24xx_dclk->base); in s3c24xx_dclk_update_cmp()
188 spin_unlock_irqrestore(&s3c24xx_dclk->dclk_lock, flags); in s3c24xx_dclk_update_cmp()
194 struct s3c24xx_dclk *s3c24xx_dclk = to_s3c24xx_dclk0(nb); in s3c24xx_dclk0_div_notify() local
197 s3c24xx_dclk_update_cmp(s3c24xx_dclk, in s3c24xx_dclk0_div_notify()
207 struct s3c24xx_dclk *s3c24xx_dclk = to_s3c24xx_dclk1(nb); in s3c24xx_dclk1_div_notify() local
210 s3c24xx_dclk_update_cmp(s3c24xx_dclk, in s3c24xx_dclk1_div_notify()
221 struct s3c24xx_dclk *s3c24xx_dclk = platform_get_drvdata(pdev); in s3c24xx_dclk_suspend() local
223 s3c24xx_dclk->reg_save = readl_relaxed(s3c24xx_dclk->base); in s3c24xx_dclk_suspend()
230 struct s3c24xx_dclk *s3c24xx_dclk = platform_get_drvdata(pdev); in s3c24xx_dclk_resume() local
232 writel_relaxed(s3c24xx_dclk->reg_save, s3c24xx_dclk->base); in s3c24xx_dclk_resume()
242 struct s3c24xx_dclk *s3c24xx_dclk; in s3c24xx_dclk_probe() local
248 s3c24xx_dclk = devm_kzalloc(&pdev->dev, sizeof(*s3c24xx_dclk), in s3c24xx_dclk_probe()
250 if (!s3c24xx_dclk) in s3c24xx_dclk_probe()
253 s3c24xx_dclk->dev = &pdev->dev; in s3c24xx_dclk_probe()
254 platform_set_drvdata(pdev, s3c24xx_dclk); in s3c24xx_dclk_probe()
255 spin_lock_init(&s3c24xx_dclk->dclk_lock); in s3c24xx_dclk_probe()
263 s3c24xx_dclk->clk_data.clks = clk_table; in s3c24xx_dclk_probe()
264 s3c24xx_dclk->clk_data.clk_num = DCLK_MAX_CLKS; in s3c24xx_dclk_probe()
267 s3c24xx_dclk->base = devm_ioremap_resource(&pdev->dev, mem); in s3c24xx_dclk_probe()
268 if (IS_ERR(s3c24xx_dclk->base)) in s3c24xx_dclk_probe()
269 return PTR_ERR(s3c24xx_dclk->base); in s3c24xx_dclk_probe()
278 s3c24xx_dclk->base, 1, 1, 0, in s3c24xx_dclk_probe()
279 &s3c24xx_dclk->dclk_lock); in s3c24xx_dclk_probe()
283 s3c24xx_dclk->base, 17, 1, 0, in s3c24xx_dclk_probe()
284 &s3c24xx_dclk->dclk_lock); in s3c24xx_dclk_probe()
287 "mux_dclk0", 0, s3c24xx_dclk->base, in s3c24xx_dclk_probe()
288 4, 4, 0, &s3c24xx_dclk->dclk_lock); in s3c24xx_dclk_probe()
290 "mux_dclk1", 0, s3c24xx_dclk->base, in s3c24xx_dclk_probe()
291 20, 4, 0, &s3c24xx_dclk->dclk_lock); in s3c24xx_dclk_probe()
295 s3c24xx_dclk->base, 0, 0, in s3c24xx_dclk_probe()
296 &s3c24xx_dclk->dclk_lock); in s3c24xx_dclk_probe()
299 s3c24xx_dclk->base, 16, 0, in s3c24xx_dclk_probe()
300 &s3c24xx_dclk->dclk_lock); in s3c24xx_dclk_probe()
330 s3c24xx_dclk->dclk0_div_change_nb.notifier_call = in s3c24xx_dclk_probe()
333 s3c24xx_dclk->dclk1_div_change_nb.notifier_call = in s3c24xx_dclk_probe()
337 &s3c24xx_dclk->dclk0_div_change_nb); in s3c24xx_dclk_probe()
342 &s3c24xx_dclk->dclk1_div_change_nb); in s3c24xx_dclk_probe()
350 &s3c24xx_dclk->dclk0_div_change_nb); in s3c24xx_dclk_probe()
361 struct s3c24xx_dclk *s3c24xx_dclk = platform_get_drvdata(pdev); in s3c24xx_dclk_remove() local
362 struct clk **clk_table = s3c24xx_dclk->clk_data.clks; in s3c24xx_dclk_remove()
366 &s3c24xx_dclk->dclk1_div_change_nb); in s3c24xx_dclk_remove()
368 &s3c24xx_dclk->dclk0_div_change_nb); in s3c24xx_dclk_remove()