Lines Matching refs:sclk

454 static void syscon_block_reset_enable(struct clk_syscon *sclk)  in syscon_block_reset_enable()  argument
460 if (!sclk->res_reg) in syscon_block_reset_enable()
463 val = readw(sclk->res_reg); in syscon_block_reset_enable()
464 val |= BIT(sclk->res_bit); in syscon_block_reset_enable()
465 writew(val, sclk->res_reg); in syscon_block_reset_enable()
467 sclk->reset = true; in syscon_block_reset_enable()
470 static void syscon_block_reset_disable(struct clk_syscon *sclk) in syscon_block_reset_disable() argument
476 if (!sclk->res_reg) in syscon_block_reset_disable()
479 val = readw(sclk->res_reg); in syscon_block_reset_disable()
480 val &= ~BIT(sclk->res_bit); in syscon_block_reset_disable()
481 writew(val, sclk->res_reg); in syscon_block_reset_disable()
483 sclk->reset = false; in syscon_block_reset_disable()
488 struct clk_syscon *sclk = to_syscon(hw); in syscon_clk_prepare() local
491 if (sclk->reset) in syscon_clk_prepare()
492 syscon_block_reset_disable(sclk); in syscon_clk_prepare()
498 struct clk_syscon *sclk = to_syscon(hw); in syscon_clk_unprepare() local
501 if (sclk->clk_val == U300_SYSCON_SBCER_UART_CLK_EN) in syscon_clk_unprepare()
504 if (!sclk->reset) in syscon_clk_unprepare()
505 syscon_block_reset_enable(sclk); in syscon_clk_unprepare()
510 struct clk_syscon *sclk = to_syscon(hw); in syscon_clk_enable() local
513 if (sclk->hw_ctrld) in syscon_clk_enable()
516 if (sclk->clk_val == 0xFFFFU) in syscon_clk_enable()
519 writew(sclk->clk_val, syscon_vbase + U300_SYSCON_SBCER); in syscon_clk_enable()
525 struct clk_syscon *sclk = to_syscon(hw); in syscon_clk_disable() local
528 if (sclk->hw_ctrld) in syscon_clk_disable()
530 if (sclk->clk_val == 0xFFFFU) in syscon_clk_disable()
533 if (sclk->clk_val == U300_SYSCON_SBCER_UART_CLK_EN) in syscon_clk_disable()
536 writew(sclk->clk_val, syscon_vbase + U300_SYSCON_SBCDR); in syscon_clk_disable()
541 struct clk_syscon *sclk = to_syscon(hw); in syscon_clk_is_enabled() local
545 if (!sclk->en_reg) in syscon_clk_is_enabled()
548 val = readw(sclk->en_reg); in syscon_clk_is_enabled()
549 val &= BIT(sclk->en_bit); in syscon_clk_is_enabled()
567 struct clk_syscon *sclk = to_syscon(hw); in syscon_clk_recalc_rate() local
570 switch(sclk->clk_val) { in syscon_clk_recalc_rate()
635 struct clk_syscon *sclk = to_syscon(hw); in syscon_clk_round_rate() local
637 if (sclk->clk_val != U300_SYSCON_SBCER_CPU_CLK_EN) in syscon_clk_round_rate()
652 struct clk_syscon *sclk = to_syscon(hw); in syscon_clk_set_rate() local
656 if (sclk->clk_val != U300_SYSCON_SBCER_CPU_CLK_EN) in syscon_clk_set_rate()
700 struct clk_syscon *sclk; in syscon_clk_register() local
703 sclk = kzalloc(sizeof(struct clk_syscon), GFP_KERNEL); in syscon_clk_register()
704 if (!sclk) { in syscon_clk_register()
714 sclk->hw.init = &init; in syscon_clk_register()
715 sclk->hw_ctrld = hw_ctrld; in syscon_clk_register()
717 sclk->reset = true; in syscon_clk_register()
718 sclk->res_reg = res_reg; in syscon_clk_register()
719 sclk->res_bit = res_bit; in syscon_clk_register()
720 sclk->en_reg = en_reg; in syscon_clk_register()
721 sclk->en_bit = en_bit; in syscon_clk_register()
722 sclk->clk_val = clk_val; in syscon_clk_register()
724 clk = clk_register(dev, &sclk->hw); in syscon_clk_register()
726 kfree(sclk); in syscon_clk_register()