Lines Matching refs:br
16 static bool clk_branch_in_hwcg_mode(const struct clk_branch *br)
20 if (!br->hwcg_reg)
23 regmap_read(br->clkr.regmap, br->hwcg_reg, &val);
25 return !!(val & BIT(br->hwcg_bit));
28 static bool clk_branch_check_halt(const struct clk_branch *br, bool enabling)
30 bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
33 regmap_read(br->clkr.regmap, br->halt_reg, &val);
35 val &= BIT(br->halt_bit);
42 static bool clk_branch2_check_halt(const struct clk_branch *br, bool enabling)
46 bool invert = (br->halt_check == BRANCH_HALT_ENABLE);
51 regmap_read(br->clkr.regmap, br->halt_reg, &val);
61 static int clk_branch_wait(const struct clk_branch *br, bool enabling,
64 bool voted = br->halt_check & BRANCH_VOTED;
65 const char *name = clk_hw_get_name(&br->clkr.hw);
71 if (br->halt_check == BRANCH_HALT_SKIP || clk_branch_in_hwcg_mode(br))
74 if (br->halt_check == BRANCH_HALT_DELAY || (!enabling && voted)) {
76 } else if (br->halt_check == BRANCH_HALT_ENABLE ||
77 br->halt_check == BRANCH_HALT ||
82 if (check_halt(br, enabling))
96 struct clk_branch *br = to_clk_branch(hw);
107 return clk_branch_wait(br, en, check_halt);