Lines Matching defs:sel

821 static u8 parent_index(struct bcm_clk_sel *sel, u8 parent_sel)
825 BUG_ON(sel->parent_count > (u32)U8_MAX);
826 for (i = 0; i < sel->parent_count; i++)
827 if (sel->parent_sel[i] == parent_sel)
840 static u8 selector_read_index(struct ccu_data *ccu, struct bcm_clk_sel *sel)
848 if (!selector_exists(sel))
853 reg_val = __ccu_read(ccu, sel->offset);
856 parent_sel = bitfield_extract(reg_val, sel->shift, sel->width);
859 index = parent_index(sel, parent_sel);
862 __func__, parent_sel, ccu->name, sel->offset);
875 struct bcm_clk_sel *sel, struct bcm_clk_trig *trig)
882 BUG_ON(!selector_exists(sel));
889 if (sel->clk_index == BAD_CLK_INDEX) {
892 reg_val = __ccu_read(ccu, sel->offset);
893 parent_sel = bitfield_extract(reg_val, sel->shift, sel->width);
894 index = parent_index(sel, parent_sel);
897 sel->clk_index = index;
902 BUG_ON((u32)sel->clk_index >= sel->parent_count);
903 parent_sel = sel->parent_sel[sel->clk_index];
911 reg_val = __ccu_read(ccu, sel->offset);
912 reg_val = bitfield_replace(reg_val, sel->shift, sel->width, parent_sel);
913 __ccu_write(ccu, sel->offset, reg_val);
932 struct bcm_clk_sel *sel, struct bcm_clk_trig *trig)
934 if (!selector_exists(sel))
936 return !__sel_commit(ccu, gate, sel, trig);
945 struct bcm_clk_sel *sel, struct bcm_clk_trig *trig,
952 previous = sel->clk_index;
956 sel->clk_index = index;
961 ret = __sel_commit(ccu, gate, sel, trig);
967 sel->clk_index = previous; /* Revert the change */
1087 struct bcm_clk_sel *sel = &data->sel;
1091 BUG_ON(index >= sel->parent_count);
1094 if (!selector_exists(sel))
1104 ret = selector_write(bcm_clk->ccu, &data->gate, sel, trig, index);
1124 index = selector_read_index(bcm_clk->ccu, &data->sel);
1235 if (!sel_init(ccu, &peri->gate, &peri->sel, trig)) {