Skip to content

Commit 01874fb

Browse files
larsclausenbebarino
authored andcommitted
clk: vc5: Use regmap_{set,clear}_bits() where appropriate
regmap_set_bits() and regmap_clear_bits() are variations of regmap_update_bits() that can be used if all bits of the mask have to be set to either 1 or 0 respectively. Update the versaclk driver to use regmap_set_bits() and regmap_clear_bits() where appropriate. This results in slightly more compact code and also makes the intention of the code clearer which can help with review. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Link: https://lore.kernel.org/r/20220719094637.844946-2-lars@metafoo.de Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Stephen Boyd <sboyd@kernel.org>
1 parent cc32378 commit 01874fb

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

drivers/clk/clk-versaclock5.c

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -392,9 +392,8 @@ static int vc5_pfd_set_rate(struct clk_hw *hw, unsigned long rate,
392392

393393
/* CLKIN within range of PLL input, feed directly to PLL. */
394394
if (parent_rate <= 50000000) {
395-
ret = regmap_update_bits(vc5->regmap, VC5_VCO_CTRL_AND_PREDIV,
396-
VC5_VCO_CTRL_AND_PREDIV_BYPASS_PREDIV,
397-
VC5_VCO_CTRL_AND_PREDIV_BYPASS_PREDIV);
395+
ret = regmap_set_bits(vc5->regmap, VC5_VCO_CTRL_AND_PREDIV,
396+
VC5_VCO_CTRL_AND_PREDIV_BYPASS_PREDIV);
398397
if (ret)
399398
return ret;
400399

@@ -413,8 +412,8 @@ static int vc5_pfd_set_rate(struct clk_hw *hw, unsigned long rate,
413412
if (ret)
414413
return ret;
415414

416-
return regmap_update_bits(vc5->regmap, VC5_VCO_CTRL_AND_PREDIV,
417-
VC5_VCO_CTRL_AND_PREDIV_BYPASS_PREDIV, 0);
415+
return regmap_clear_bits(vc5->regmap, VC5_VCO_CTRL_AND_PREDIV,
416+
VC5_VCO_CTRL_AND_PREDIV_BYPASS_PREDIV);
418417
}
419418

420419
static const struct clk_ops vc5_pfd_ops = {
@@ -579,14 +578,13 @@ static int vc5_fod_set_rate(struct clk_hw *hw, unsigned long rate,
579578
* datasheet somewhat implies this is needed, but the register
580579
* and the bit is not documented.
581580
*/
582-
ret = regmap_update_bits(vc5->regmap, VC5_GLOBAL_REGISTER,
583-
VC5_GLOBAL_REGISTER_GLOBAL_RESET, 0);
581+
ret = regmap_clear_bits(vc5->regmap, VC5_GLOBAL_REGISTER,
582+
VC5_GLOBAL_REGISTER_GLOBAL_RESET);
584583
if (ret)
585584
return ret;
586585

587-
return regmap_update_bits(vc5->regmap, VC5_GLOBAL_REGISTER,
588-
VC5_GLOBAL_REGISTER_GLOBAL_RESET,
589-
VC5_GLOBAL_REGISTER_GLOBAL_RESET);
586+
return regmap_set_bits(vc5->regmap, VC5_GLOBAL_REGISTER,
587+
VC5_GLOBAL_REGISTER_GLOBAL_RESET);
590588
}
591589

592590
static const struct clk_ops vc5_fod_ops = {
@@ -614,10 +612,9 @@ static int vc5_clk_out_prepare(struct clk_hw *hw)
614612
* registers.
615613
*/
616614
if (vc5->chip_info->flags & VC5_HAS_BYPASS_SYNC_BIT) {
617-
ret = regmap_update_bits(vc5->regmap,
618-
VC5_RESERVED_X0(hwdata->num),
619-
VC5_RESERVED_X0_BYPASS_SYNC,
620-
VC5_RESERVED_X0_BYPASS_SYNC);
615+
ret = regmap_set_bits(vc5->regmap,
616+
VC5_RESERVED_X0(hwdata->num),
617+
VC5_RESERVED_X0_BYPASS_SYNC);
621618
if (ret)
622619
return ret;
623620
}
@@ -640,10 +637,8 @@ static int vc5_clk_out_prepare(struct clk_hw *hw)
640637
}
641638

642639
/* Enable the clock buffer */
643-
ret = regmap_update_bits(vc5->regmap,
644-
VC5_CLK_OUTPUT_CFG(hwdata->num, 1),
645-
VC5_CLK_OUTPUT_CFG1_EN_CLKBUF,
646-
VC5_CLK_OUTPUT_CFG1_EN_CLKBUF);
640+
ret = regmap_set_bits(vc5->regmap, VC5_CLK_OUTPUT_CFG(hwdata->num, 1),
641+
VC5_CLK_OUTPUT_CFG1_EN_CLKBUF);
647642
if (ret)
648643
return ret;
649644

@@ -669,8 +664,8 @@ static void vc5_clk_out_unprepare(struct clk_hw *hw)
669664
struct vc5_driver_data *vc5 = hwdata->vc5;
670665

671666
/* Disable the clock buffer */
672-
regmap_update_bits(vc5->regmap, VC5_CLK_OUTPUT_CFG(hwdata->num, 1),
673-
VC5_CLK_OUTPUT_CFG1_EN_CLKBUF, 0);
667+
regmap_clear_bits(vc5->regmap, VC5_CLK_OUTPUT_CFG(hwdata->num, 1),
668+
VC5_CLK_OUTPUT_CFG1_EN_CLKBUF);
674669
}
675670

676671
static unsigned char vc5_clk_out_get_parent(struct clk_hw *hw)

0 commit comments

Comments
 (0)