return ret;
regval = ((regval & ADP5061_TERM_SET_VTRM_MSK) >> 2) - 0x0F;
- if (regval > ARRAY_SIZE(adp5061_vmax))
- regval = ARRAY_SIZE(adp5061_vmax);
+ if (regval >= ARRAY_SIZE(adp5061_vmax))
+ regval = ARRAY_SIZE(adp5061_vmax) - 1;
val->intval = adp5061_vmax[regval] * 1000;
return ret;
regval = ((regval & ADP5061_CHG_CURR_ICHG_MSK) >> 2);
- if (regval > ARRAY_SIZE(adp5061_const_ichg))
- regval = ARRAY_SIZE(adp5061_const_ichg);
+ if (regval >= ARRAY_SIZE(adp5061_const_ichg))
+ regval = ARRAY_SIZE(adp5061_const_ichg) - 1;
val->intval = adp5061_const_ichg[regval] * 1000;