Lines Matching refs:div_init
592 struct ccu_div *ccu_div_hw_register(const struct ccu_div_init_data *div_init) in ccu_div_hw_register() argument
599 if (!div_init) in ccu_div_hw_register()
612 div->id = div_init->id; in ccu_div_hw_register()
613 div->reg_ctl = div_init->base + CCU_DIV_CTL; in ccu_div_hw_register()
614 div->sys_regs = div_init->sys_regs; in ccu_div_hw_register()
615 div->flags = div_init->flags; in ccu_div_hw_register()
616 div->features = div_init->features; in ccu_div_hw_register()
619 hw_init.name = div_init->name; in ccu_div_hw_register()
620 hw_init.flags = div_init->flags; in ccu_div_hw_register()
622 if (div_init->type == CCU_DIV_VAR) { in ccu_div_hw_register()
627 div->mask = CCU_DIV_CTL_CLKDIV_MASK(div_init->width); in ccu_div_hw_register()
628 } else if (div_init->type == CCU_DIV_GATE) { in ccu_div_hw_register()
630 div->divider = div_init->divider; in ccu_div_hw_register()
631 } else if (div_init->type == CCU_DIV_BUF) { in ccu_div_hw_register()
633 } else if (div_init->type == CCU_DIV_FIXED) { in ccu_div_hw_register()
635 div->divider = div_init->divider; in ccu_div_hw_register()
641 if (!div_init->parent_name) { in ccu_div_hw_register()
645 parent_data.fw_name = div_init->parent_name; in ccu_div_hw_register()
646 parent_data.name = div_init->parent_name; in ccu_div_hw_register()
650 ret = of_clk_hw_register(div_init->np, &div->hw); in ccu_div_hw_register()