{
        struct adcx140_priv *adcx140 = snd_soc_component_get_drvdata(component);
        int sleep_cfg_val = ADCX140_WAKE_DEV;
-       u8 bias_source;
-       u8 vref_source;
+       u32 bias_source;
+       u32 vref_source;
+       u8 bias_cfg;
        int ret;
 
-       ret = device_property_read_u8(adcx140->dev, "ti,mic-bias-source",
+       ret = device_property_read_u32(adcx140->dev, "ti,mic-bias-source",
                                      &bias_source);
        if (ret)
                bias_source = ADCX140_MIC_BIAS_VAL_VREF;
                return -EINVAL;
        }
 
-       ret = device_property_read_u8(adcx140->dev, "ti,vref-source",
+       ret = device_property_read_u32(adcx140->dev, "ti,vref-source",
                                      &vref_source);
        if (ret)
                vref_source = ADCX140_MIC_BIAS_VREF_275V;
                return -EINVAL;
        }
 
-       bias_source |= vref_source;
+       bias_cfg = bias_source << ADCX140_MIC_BIAS_SHIFT | vref_source;
 
        ret = adcx140_reset(adcx140);
        if (ret)
 
        ret = regmap_update_bits(adcx140->regmap, ADCX140_BIAS_CFG,
                                ADCX140_MIC_BIAS_VAL_MSK |
-                               ADCX140_MIC_BIAS_VREF_MSK, bias_source);
+                               ADCX140_MIC_BIAS_VREF_MSK, bias_cfg);
        if (ret)
                dev_err(adcx140->dev, "setting MIC bias failed %d\n", ret);
 out:
 
 #define ADCX140_MIC_BIAS_VAL_VREF_1096 1
 #define ADCX140_MIC_BIAS_VAL_AVDD      6
 #define ADCX140_MIC_BIAS_VAL_MSK GENMASK(6, 4)
+#define ADCX140_MIC_BIAS_SHIFT         4
 
 #define ADCX140_MIC_BIAS_VREF_275V     0
 #define ADCX140_MIC_BIAS_VREF_25V      1