[PATCH 3/5] clk: renesas: rzv2h: Simplify BUS_MSTOP macros and field extraction

From: Prabhakar
Date: Wed Dec 18 2024 - 09:21:41 EST


From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>

Replace manual bit manipulation in `BUS_MSTOP` with `FIELD_PREP_CONST` and
`FIELD_GET` macros for better clarity and maintainability. Introduce
explicit masks (`BUS_MSTOP_IDX_MASK`, `BUS_MSTOP_BITS_MASK`) to improve
readability.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
---
drivers/clk/renesas/rzv2h-cpg.c | 4 ++--
drivers/clk/renesas/rzv2h-cpg.h | 5 ++++-
2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/clk/renesas/rzv2h-cpg.c b/drivers/clk/renesas/rzv2h-cpg.c
index 38edddfc42d9..29b1ce003370 100644
--- a/drivers/clk/renesas/rzv2h-cpg.c
+++ b/drivers/clk/renesas/rzv2h-cpg.c
@@ -582,8 +582,8 @@ static struct rzv2h_mstop
if (!mstop)
return NULL;

- mstop->idx = (mstop_data >> 16) & 0xffff;
- mstop->mask = mstop_data & 0xffff;
+ mstop->idx = FIELD_GET(BUS_MSTOP_IDX_MASK, (mstop_data));
+ mstop->mask = FIELD_GET(BUS_MSTOP_BITS_MASK, (mstop_data));
if (rzv2h_mod_clock_is_enabled(&clock->hw))
refcount_set(&mstop->ref_cnt, 1);
else
diff --git a/drivers/clk/renesas/rzv2h-cpg.h b/drivers/clk/renesas/rzv2h-cpg.h
index 810275eba473..f918620c4650 100644
--- a/drivers/clk/renesas/rzv2h-cpg.h
+++ b/drivers/clk/renesas/rzv2h-cpg.h
@@ -46,7 +46,10 @@ struct ddiv {
#define CDDIV4_DIVCTL1 DDIV_PACK(CPG_CDDIV4, 4, 1, 17)
#define CDDIV4_DIVCTL2 DDIV_PACK(CPG_CDDIV4, 8, 1, 18)

-#define BUS_MSTOP(idx, mask) (((idx) & 0xffff) << 16 | (mask))
+#define BUS_MSTOP_IDX_MASK GENMASK(31, 16)
+#define BUS_MSTOP_BITS_MASK GENMASK(15, 0)
+#define BUS_MSTOP(idx, mask) (FIELD_PREP_CONST(BUS_MSTOP_IDX_MASK, (idx)) | \
+ FIELD_PREP_CONST(BUS_MSTOP_BITS_MASK, (mask)))
#define BUS_MSTOP_NONE GENMASK(31, 0)

/**
--
2.43.0