Lines Matching refs:sel

813 static u8 parent_index(struct bcm_clk_sel *sel, u8 parent_sel)  in parent_index()  argument
817 BUG_ON(sel->parent_count > (u32)U8_MAX); in parent_index()
818 for (i = 0; i < sel->parent_count; i++) in parent_index()
819 if (sel->parent_sel[i] == parent_sel) in parent_index()
832 static u8 selector_read_index(struct ccu_data *ccu, struct bcm_clk_sel *sel) in selector_read_index() argument
840 if (!selector_exists(sel)) in selector_read_index()
845 reg_val = __ccu_read(ccu, sel->offset); in selector_read_index()
848 parent_sel = bitfield_extract(reg_val, sel->shift, sel->width); in selector_read_index()
851 index = parent_index(sel, parent_sel); in selector_read_index()
854 __func__, parent_sel, ccu->name, sel->offset); in selector_read_index()
867 struct bcm_clk_sel *sel, struct bcm_clk_trig *trig) in __sel_commit() argument
874 BUG_ON(!selector_exists(sel)); in __sel_commit()
881 if (sel->clk_index == BAD_CLK_INDEX) { in __sel_commit()
884 reg_val = __ccu_read(ccu, sel->offset); in __sel_commit()
885 parent_sel = bitfield_extract(reg_val, sel->shift, sel->width); in __sel_commit()
886 index = parent_index(sel, parent_sel); in __sel_commit()
889 sel->clk_index = index; in __sel_commit()
894 BUG_ON((u32)sel->clk_index >= sel->parent_count); in __sel_commit()
895 parent_sel = sel->parent_sel[sel->clk_index]; in __sel_commit()
903 reg_val = __ccu_read(ccu, sel->offset); in __sel_commit()
904 reg_val = bitfield_replace(reg_val, sel->shift, sel->width, parent_sel); in __sel_commit()
905 __ccu_write(ccu, sel->offset, reg_val); in __sel_commit()
924 struct bcm_clk_sel *sel, struct bcm_clk_trig *trig) in sel_init() argument
926 if (!selector_exists(sel)) in sel_init()
928 return !__sel_commit(ccu, gate, sel, trig); in sel_init()
937 struct bcm_clk_sel *sel, struct bcm_clk_trig *trig, in selector_write() argument
944 previous = sel->clk_index; in selector_write()
948 sel->clk_index = index; in selector_write()
953 ret = __sel_commit(ccu, gate, sel, trig); in selector_write()
959 sel->clk_index = previous; /* Revert the change */ in selector_write()
1079 struct bcm_clk_sel *sel = &data->sel; in kona_peri_clk_set_parent() local
1083 BUG_ON(index >= sel->parent_count); in kona_peri_clk_set_parent()
1086 if (!selector_exists(sel)) in kona_peri_clk_set_parent()
1096 ret = selector_write(bcm_clk->ccu, &data->gate, sel, trig, index); in kona_peri_clk_set_parent()
1116 index = selector_read_index(bcm_clk->ccu, &data->sel); in kona_peri_clk_get_parent()
1227 if (!sel_init(ccu, &peri->gate, &peri->sel, trig)) { in __peri_clk_init()