RE: [PATCH v4 2/4] hwmon: (pmbus/max20830): add VOUT feedback resistor scaling support
"Torreno, Alexis Czezar" <[email protected]> Tue, 28 Jul 2026 05:05:56 +0000
| Newsgroups | org.kernel.vger.linux-hwmon,dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree |
|---|---|
| Message-ID | <PH0PR03MB6351E5F74D16634FA34A081CF1CB2@PH0PR03MB6351.namprd03.prod.outlook.com> |
> >> + switch (reg) {
> >> + case PMBUS_READ_VOUT:
> >> + ret = pmbus_read_word_data(client, page, phase, reg);
> >> + if (ret < 0)
> >> + return ret;
> >> +
> >> + /* Apply voltage divider scaling if resistors are non-zero */
> >> + if (data->vout_rfb1 && data->vout_rfb2) {
> >> + temp = (u64)data->vout_rfb1 + (u64)data->vout_rfb2;
> >> + temp = DIV_ROUND_CLOSEST_ULL((u64)ret * temp,
> data->vout_rfb2);
> >> + ret = clamp_val(temp, 0, 0xFFFF);
> >> + }
> >> + return ret;
> >> + default:
> >> + return -ENODATA;
> >> + }
> >> +}
> >
> > [Severity: High]
> > Does this code introduce a UAPI inconsistency by only scaling
> PMBUS_READ_VOUT?
> >
> > When in1_input is read, it returns the scaled output voltage.
> >
> > However, because this switch returns -ENODATA for limits (like
> > PMBUS_VOUT_OV_WARN_LIMIT or PMBUS_VOUT_OV_FAULT_LIMIT),
> reading limits
> > like in1_max will return the unscaled feedback voltage directly from the chip.
> >
>
> I would suggest to add a comment explaining that this series does not support
> any limit registers. That should "address" the issues raised by Sashiko, and also
> help future readers understand why the limit registers are not scaled.
>
Will try adding this, thanks.
- Alexis