[clkmgr/dif] Align DIF to use mubi type
Signed-off-by: Michael Schaffner <msf@google.com>
diff --git a/sw/device/lib/dif/dif_clkmgr.c b/sw/device/lib/dif/dif_clkmgr.c
index 04200a3..5052ea4 100644
--- a/sw/device/lib/dif/dif_clkmgr.c
+++ b/sw/device/lib/dif/dif_clkmgr.c
@@ -8,6 +8,7 @@
#include "sw/device/lib/base/bitfield.h"
#include "sw/device/lib/base/mmio.h"
+#include "sw/device/lib/base/multibits.h"
#include "sw/device/lib/dif/dif_base.h"
#include "clkmgr_regs.h" // Generated
@@ -33,6 +34,13 @@
return val ? kDifToggleEnabled : kDifToggleDisabled;
}
+/**
+ * Converts a `multi_bit_bool_t` to `dif_toggle_t`.
+ */
+static dif_toggle_t mubi4_to_toggle(multi_bit_bool_t val) {
+ return (val == kMultiBitBool4True) ? kDifToggleEnabled : kDifToggleDisabled;
+}
+
static bool clkmgr_valid_gateable_clock(dif_clkmgr_gateable_clock_t clock) {
return clock < CLKMGR_PARAM_NUM_SW_GATEABLE_CLOCKS;
}
@@ -47,27 +55,26 @@
return kDifBadArg;
}
- uint32_t clk_jitter_val =
+ multi_bit_bool_t clk_jitter_val =
mmio_region_read32(clkmgr->base_addr, CLKMGR_JITTER_ENABLE_REG_OFFSET);
- *state = bool_to_toggle(
- bitfield_bit32_read(clk_jitter_val, CLKMGR_JITTER_ENABLE_VAL_BIT));
+ *state = mubi4_to_toggle(clk_jitter_val);
return kDifOk;
}
dif_result_t dif_clkmgr_jitter_set_enabled(const dif_clkmgr_t *clkmgr,
dif_toggle_t new_state) {
- uint32_t new_jitter_enable_val;
+ multi_bit_bool_t new_jitter_enable_val;
if (clkmgr == NULL) {
return kDifBadArg;
}
switch (new_state) {
case kDifToggleEnabled:
- new_jitter_enable_val = 1U;
+ new_jitter_enable_val = kMultiBitBool4True;
break;
case kDifToggleDisabled:
- new_jitter_enable_val = 0U;
+ new_jitter_enable_val = kMultiBitBool4False;
break;
default:
return kDifBadArg;
diff --git a/sw/device/lib/dif/dif_clkmgr_unittest.cc b/sw/device/lib/dif/dif_clkmgr_unittest.cc
index 690419a..7c0432a 100644
--- a/sw/device/lib/dif/dif_clkmgr_unittest.cc
+++ b/sw/device/lib/dif/dif_clkmgr_unittest.cc
@@ -6,6 +6,7 @@
#include "gtest/gtest.h"
#include "sw/device/lib/base/mmio.h"
+#include "sw/device/lib/base/multibits.h"
#include "sw/device/lib/base/testing/mock_mmio.h"
// Generated.
@@ -28,12 +29,12 @@
// dif_clkmgr_jitter_set_enabled doesn't perform a read, just a write.
TEST_F(JitterEnableTest, SetEnabled) {
// Disable jitter.
- EXPECT_WRITE32(CLKMGR_JITTER_ENABLE_REG_OFFSET, 0);
+ EXPECT_WRITE32(CLKMGR_JITTER_ENABLE_REG_OFFSET, kMultiBitBool4False);
EXPECT_EQ(dif_clkmgr_jitter_set_enabled(&clkmgr_, kDifToggleDisabled),
kDifOk);
// Enable jitter.
- EXPECT_WRITE32(CLKMGR_JITTER_ENABLE_REG_OFFSET, 1);
+ EXPECT_WRITE32(CLKMGR_JITTER_ENABLE_REG_OFFSET, kMultiBitBool4True);
EXPECT_EQ(dif_clkmgr_jitter_set_enabled(&clkmgr_, kDifToggleEnabled), kDifOk);
}
@@ -47,8 +48,7 @@
// Get jitter (enabled).
{
dif_toggle_t state = kDifToggleDisabled;
- EXPECT_READ32(CLKMGR_JITTER_ENABLE_REG_OFFSET,
- {{CLKMGR_JITTER_ENABLE_VAL_BIT, true}});
+ EXPECT_READ32(CLKMGR_JITTER_ENABLE_REG_OFFSET, kMultiBitBool4True);
EXPECT_EQ(dif_clkmgr_jitter_get_enabled(&clkmgr_, &state), kDifOk);
EXPECT_EQ(state, kDifToggleEnabled);
}
@@ -56,8 +56,7 @@
// Get jitter (disabled).
{
dif_toggle_t state = kDifToggleEnabled;
- EXPECT_READ32(CLKMGR_JITTER_ENABLE_REG_OFFSET,
- {{CLKMGR_JITTER_ENABLE_VAL_BIT, false}});
+ EXPECT_READ32(CLKMGR_JITTER_ENABLE_REG_OFFSET, kMultiBitBool4False);
EXPECT_EQ(dif_clkmgr_jitter_get_enabled(&clkmgr_, &state), kDifOk);
EXPECT_EQ(state, kDifToggleDisabled);
}