#include <dt-bindings/sound/microchip,pdmc.h>
 
+#include <linux/bitfield.h>
 #include <linux/clk.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #define MCHP_PDMC_MR_OSR256            (3 << 16)
 
 #define MCHP_PDMC_MR_SINCORDER_MASK    GENMASK(23, 20)
-#define MCHP_PDMC_MR_SINCORDER(order)  (((order) << 20) & \
-                                        MCHP_PDMC_MR_SINCORDER_MASK)
 
 #define MCHP_PDMC_MR_SINC_OSR_MASK     GENMASK(27, 24)
 #define MCHP_PDMC_MR_SINC_OSR_DIS      (0 << 24)
 #define MCHP_PDMC_MR_SINC_OSR_256      (6 << 24)
 
 #define MCHP_PDMC_MR_CHUNK_MASK                GENMASK(31, 28)
-#define MCHP_PDMC_MR_CHUNK(chunk)      (((chunk) << 28) & \
-                                        MCHP_PDMC_MR_CHUNK_MASK)
 
 /*
  * ---- Configuration Register (Read/Write) ----
 
        mr_val |= mchp_pdmc_mr_set_osr(dd->audio_filter_en, osr);
 
-       mr_val |= MCHP_PDMC_MR_SINCORDER(dd->sinc_order);
+       mr_val |= FIELD_PREP(MCHP_PDMC_MR_SINCORDER_MASK, dd->sinc_order);
 
        dd->addr.maxburst = mchp_pdmc_period_to_maxburst(snd_pcm_lib_period_bytes(substream));
-       mr_val |= MCHP_PDMC_MR_CHUNK(dd->addr.maxburst);
+       mr_val |= FIELD_PREP(MCHP_PDMC_MR_CHUNK_MASK, dd->addr.maxburst);
        dev_dbg(comp->dev, "maxburst set to %d\n", dd->addr.maxburst);
 
        snd_soc_component_update_bits(comp, MCHP_PDMC_MR,