2019-10-29 22:07:55

by Tao Ren

[permalink] [raw]
Subject: [PATCH v2 0/2] hwmon: (pmbus) add driver for BEL PFE1100 and PFE3000

From: Tao Ren <[email protected]>

The patch series adds "bel-pfe" pmbus driver which supports hardware
monitoring for BEL PFE1100 and PFE3000 power supplies.

There are total 2 patches:
- patch #1 adds bel-pfe pmbus driver for BEL PFE1100 and PFE3000 power
supplies.
- patch #2 adds documentation for the bel-pfe pmbus driver.

The driver has been tested on Facebook Wedge40 BMC (with PFE1100) and
Facebook CMM BMC (with PFE3000).

Tao Ren (2):
hwmon: (pmbus) add driver for BEL PFE1100 and PFE3000
docs: hwmon: Document bel-pfe pmbus driver

Documentation/hwmon/bel-pfe.rst | 112 +++++++++++++++++++++++++++
drivers/hwmon/pmbus/Kconfig | 9 +++
drivers/hwmon/pmbus/Makefile | 1 +
drivers/hwmon/pmbus/bel-pfe.c | 131 ++++++++++++++++++++++++++++++++
4 files changed, 253 insertions(+)
create mode 100644 Documentation/hwmon/bel-pfe.rst
create mode 100644 drivers/hwmon/pmbus/bel-pfe.c

--
2.17.1


2019-10-29 22:07:58

by Tao Ren

[permalink] [raw]
Subject: [PATCH v2 2/2] docs: hwmon: Document bel-pfe pmbus driver

From: Tao Ren <[email protected]>

Add documentation for bel-pfe pmbus driver which supports BEL PFE1100 and
PFE3000 power supplies.

Signed-off-by: Tao Ren <[email protected]>
---
No change in v2.

Documentation/hwmon/bel-pfe.rst | 112 ++++++++++++++++++++++++++++++++
1 file changed, 112 insertions(+)
create mode 100644 Documentation/hwmon/bel-pfe.rst

diff --git a/Documentation/hwmon/bel-pfe.rst b/Documentation/hwmon/bel-pfe.rst
new file mode 100644
index 000000000000..4b4a7d67854c
--- /dev/null
+++ b/Documentation/hwmon/bel-pfe.rst
@@ -0,0 +1,112 @@
+Kernel driver bel-pfe
+======================
+
+Supported chips:
+
+ * BEL PFE1100
+
+ Prefixes: 'pfe1100'
+
+ Addresses scanned: -
+
+ Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe1100-12-054xa.pdf
+
+ * BEL PFE3000
+
+ Prefixes: 'pfe3000'
+
+ Addresses scanned: -
+
+ Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe3000-series.pdf
+
+Author: Tao Ren <[email protected]>
+
+
+Description
+-----------
+
+This driver supports hardware monitoring for below power supply devices
+which support PMBus Protocol:
+
+ * BEL PFE1100
+
+ 1100 Watt AC to DC power-factor-corrected (PFC) power supply.
+ PMBus Communication Manual is not publicly available.
+
+ * BEL PFE3000
+
+ 3000 Watt AC/DC power-factor-corrected (PFC) and DC-DC power supply.
+ PMBus Communication Manual is not publicly available.
+
+The driver is a client driver to the core PMBus driver. Please see
+Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
+
+
+Usage Notes
+-----------
+
+This driver does not auto-detect devices. You will have to instantiate the
+devices explicitly. Please see Documentation/i2c/instantiating-devices.rst for
+details.
+
+Example: the following will load the driver for an PFE3000 at address 0x20
+on I2C bus #1::
+
+ $ modprobe bel-pfe
+ $ echo pfe3000 0x20 > /sys/bus/i2c/devices/i2c-1/new_device
+
+
+Platform data support
+---------------------
+
+The driver supports standard PMBus driver platform data.
+
+
+Sysfs entries
+-------------
+
+======================= =======================================================
+curr1_label "iin"
+curr1_input Measured input current
+curr1_max Input current max value
+curr1_max_alarm Input current max alarm
+
+curr[2-3]_label "iout[1-2]"
+curr[2-3]_input Measured output current
+curr[2-3]_max Output current max value
+curr[2-3]_max_alarm Output current max alarm
+
+fan[1-2]_input Fan 1 and 2 speed in RPM
+fan1_target Set fan speed reference for both fans
+
+in1_label "vin"
+in1_input Measured input voltage
+in1_crit Input voltage critical max value
+in1_crit_alarm Input voltage critical max alarm
+in1_lcrit Input voltage critical min value
+in1_lcrit_alarm Input voltage critical min alarm
+in1_max Input voltage max value
+in1_max_alarm Input voltage max alarm
+
+in2_label "vcap"
+in2_input Hold up capacitor voltage
+
+in[3-8]_label "vout[1-3,5-7]"
+in[3-8]_input Measured output voltage
+in[3-4]_alarm vout[1-2] output voltage alarm
+
+power[1-2]_label "pin[1-2]"
+power[1-2]_input Measured input power
+power[1-2]_alarm Input power high alarm
+
+power[3-4]_label "pout[1-2]"
+power[3-4]_input Measured output power
+
+temp[1-3]_input Measured temperature
+temp[1-3]_alarm Temperature alarm
+======================= =======================================================
+
+.. note::
+
+ - curr3, fan2, vout[2-7], vcap, pin2, pout2 and temp3 attributes only
+ exist for PFE3000.
--
2.17.1

2019-11-02 15:32:24

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] docs: hwmon: Document bel-pfe pmbus driver

On Tue, Oct 29, 2019 at 11:20:54AM -0700, [email protected] wrote:
> From: Tao Ren <[email protected]>
>
> Add documentation for bel-pfe pmbus driver which supports BEL PFE1100 and
> PFE3000 power supplies.
>
> Signed-off-by: Tao Ren <[email protected]>

Applied after adding bel-pfe to index.rst.

Thanks,
Guenter

> ---
> No change in v2.
>
> Documentation/hwmon/bel-pfe.rst | 112 ++++++++++++++++++++++++++++++++
> 1 file changed, 112 insertions(+)
> create mode 100644 Documentation/hwmon/bel-pfe.rst
>
> diff --git a/Documentation/hwmon/bel-pfe.rst b/Documentation/hwmon/bel-pfe.rst
> new file mode 100644
> index 000000000000..4b4a7d67854c
> --- /dev/null
> +++ b/Documentation/hwmon/bel-pfe.rst
> @@ -0,0 +1,112 @@
> +Kernel driver bel-pfe
> +======================
> +
> +Supported chips:
> +
> + * BEL PFE1100
> +
> + Prefixes: 'pfe1100'
> +
> + Addresses scanned: -
> +
> + Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe1100-12-054xa.pdf
> +
> + * BEL PFE3000
> +
> + Prefixes: 'pfe3000'
> +
> + Addresses scanned: -
> +
> + Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe3000-series.pdf
> +
> +Author: Tao Ren <[email protected]>
> +
> +
> +Description
> +-----------
> +
> +This driver supports hardware monitoring for below power supply devices
> +which support PMBus Protocol:
> +
> + * BEL PFE1100
> +
> + 1100 Watt AC to DC power-factor-corrected (PFC) power supply.
> + PMBus Communication Manual is not publicly available.
> +
> + * BEL PFE3000
> +
> + 3000 Watt AC/DC power-factor-corrected (PFC) and DC-DC power supply.
> + PMBus Communication Manual is not publicly available.
> +
> +The driver is a client driver to the core PMBus driver. Please see
> +Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
> +
> +
> +Usage Notes
> +-----------
> +
> +This driver does not auto-detect devices. You will have to instantiate the
> +devices explicitly. Please see Documentation/i2c/instantiating-devices.rst for
> +details.
> +
> +Example: the following will load the driver for an PFE3000 at address 0x20
> +on I2C bus #1::
> +
> + $ modprobe bel-pfe
> + $ echo pfe3000 0x20 > /sys/bus/i2c/devices/i2c-1/new_device
> +
> +
> +Platform data support
> +---------------------
> +
> +The driver supports standard PMBus driver platform data.
> +
> +
> +Sysfs entries
> +-------------
> +
> +======================= =======================================================
> +curr1_label "iin"
> +curr1_input Measured input current
> +curr1_max Input current max value
> +curr1_max_alarm Input current max alarm
> +
> +curr[2-3]_label "iout[1-2]"
> +curr[2-3]_input Measured output current
> +curr[2-3]_max Output current max value
> +curr[2-3]_max_alarm Output current max alarm
> +
> +fan[1-2]_input Fan 1 and 2 speed in RPM
> +fan1_target Set fan speed reference for both fans
> +
> +in1_label "vin"
> +in1_input Measured input voltage
> +in1_crit Input voltage critical max value
> +in1_crit_alarm Input voltage critical max alarm
> +in1_lcrit Input voltage critical min value
> +in1_lcrit_alarm Input voltage critical min alarm
> +in1_max Input voltage max value
> +in1_max_alarm Input voltage max alarm
> +
> +in2_label "vcap"
> +in2_input Hold up capacitor voltage
> +
> +in[3-8]_label "vout[1-3,5-7]"
> +in[3-8]_input Measured output voltage
> +in[3-4]_alarm vout[1-2] output voltage alarm
> +
> +power[1-2]_label "pin[1-2]"
> +power[1-2]_input Measured input power
> +power[1-2]_alarm Input power high alarm
> +
> +power[3-4]_label "pout[1-2]"
> +power[3-4]_input Measured output power
> +
> +temp[1-3]_input Measured temperature
> +temp[1-3]_alarm Temperature alarm
> +======================= =======================================================
> +
> +.. note::
> +
> + - curr3, fan2, vout[2-7], vcap, pin2, pout2 and temp3 attributes only
> + exist for PFE3000.

2019-11-03 04:48:18

by Tao Ren

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] docs: hwmon: Document bel-pfe pmbus driver

On Sat, Nov 02, 2019 at 08:31:15AM -0700, Guenter Roeck wrote:
> On Tue, Oct 29, 2019 at 11:20:54AM -0700, [email protected] wrote:
> > From: Tao Ren <[email protected]>
> >
> > Add documentation for bel-pfe pmbus driver which supports BEL PFE1100 and
> > PFE3000 power supplies.
> >
> > Signed-off-by: Tao Ren <[email protected]>
>
> Applied after adding bel-pfe to index.rst.
>
> Thanks,
> Guenter

Thank you Guenter. I didn't know index.rst needs to be updated; will
do it for my future doc patches.


Cheers,

Tao

> > ---
> > No change in v2.
> >
> > Documentation/hwmon/bel-pfe.rst | 112 ++++++++++++++++++++++++++++++++
> > 1 file changed, 112 insertions(+)
> > create mode 100644 Documentation/hwmon/bel-pfe.rst
> >
> > diff --git a/Documentation/hwmon/bel-pfe.rst b/Documentation/hwmon/bel-pfe.rst
> > new file mode 100644
> > index 000000000000..4b4a7d67854c
> > --- /dev/null
> > +++ b/Documentation/hwmon/bel-pfe.rst
> > @@ -0,0 +1,112 @@
> > +Kernel driver bel-pfe
> > +======================
> > +
> > +Supported chips:
> > +
> > + * BEL PFE1100
> > +
> > + Prefixes: 'pfe1100'
> > +
> > + Addresses scanned: -
> > +
> > + Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe1100-12-054xa.pdf
> > +
> > + * BEL PFE3000
> > +
> > + Prefixes: 'pfe3000'
> > +
> > + Addresses scanned: -
> > +
> > + Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe3000-series.pdf
> > +
> > +Author: Tao Ren <[email protected]>
> > +
> > +
> > +Description
> > +-----------
> > +
> > +This driver supports hardware monitoring for below power supply devices
> > +which support PMBus Protocol:
> > +
> > + * BEL PFE1100
> > +
> > + 1100 Watt AC to DC power-factor-corrected (PFC) power supply.
> > + PMBus Communication Manual is not publicly available.
> > +
> > + * BEL PFE3000
> > +
> > + 3000 Watt AC/DC power-factor-corrected (PFC) and DC-DC power supply.
> > + PMBus Communication Manual is not publicly available.
> > +
> > +The driver is a client driver to the core PMBus driver. Please see
> > +Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
> > +
> > +
> > +Usage Notes
> > +-----------
> > +
> > +This driver does not auto-detect devices. You will have to instantiate the
> > +devices explicitly. Please see Documentation/i2c/instantiating-devices.rst for
> > +details.
> > +
> > +Example: the following will load the driver for an PFE3000 at address 0x20
> > +on I2C bus #1::
> > +
> > + $ modprobe bel-pfe
> > + $ echo pfe3000 0x20 > /sys/bus/i2c/devices/i2c-1/new_device
> > +
> > +
> > +Platform data support
> > +---------------------
> > +
> > +The driver supports standard PMBus driver platform data.
> > +
> > +
> > +Sysfs entries
> > +-------------
> > +
> > +======================= =======================================================
> > +curr1_label "iin"
> > +curr1_input Measured input current
> > +curr1_max Input current max value
> > +curr1_max_alarm Input current max alarm
> > +
> > +curr[2-3]_label "iout[1-2]"
> > +curr[2-3]_input Measured output current
> > +curr[2-3]_max Output current max value
> > +curr[2-3]_max_alarm Output current max alarm
> > +
> > +fan[1-2]_input Fan 1 and 2 speed in RPM
> > +fan1_target Set fan speed reference for both fans
> > +
> > +in1_label "vin"
> > +in1_input Measured input voltage
> > +in1_crit Input voltage critical max value
> > +in1_crit_alarm Input voltage critical max alarm
> > +in1_lcrit Input voltage critical min value
> > +in1_lcrit_alarm Input voltage critical min alarm
> > +in1_max Input voltage max value
> > +in1_max_alarm Input voltage max alarm
> > +
> > +in2_label "vcap"
> > +in2_input Hold up capacitor voltage
> > +
> > +in[3-8]_label "vout[1-3,5-7]"
> > +in[3-8]_input Measured output voltage
> > +in[3-4]_alarm vout[1-2] output voltage alarm
> > +
> > +power[1-2]_label "pin[1-2]"
> > +power[1-2]_input Measured input power
> > +power[1-2]_alarm Input power high alarm
> > +
> > +power[3-4]_label "pout[1-2]"
> > +power[3-4]_input Measured output power
> > +
> > +temp[1-3]_input Measured temperature
> > +temp[1-3]_alarm Temperature alarm
> > +======================= =======================================================
> > +
> > +.. note::
> > +
> > + - curr3, fan2, vout[2-7], vcap, pin2, pout2 and temp3 attributes only
> > + exist for PFE3000.

2019-11-03 04:54:36

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] docs: hwmon: Document bel-pfe pmbus driver

On 11/2/19 9:44 PM, Tao Ren wrote:
> On Sat, Nov 02, 2019 at 08:31:15AM -0700, Guenter Roeck wrote:
>> On Tue, Oct 29, 2019 at 11:20:54AM -0700, [email protected] wrote:
>>> From: Tao Ren <[email protected]>
>>>
>>> Add documentation for bel-pfe pmbus driver which supports BEL PFE1100 and
>>> PFE3000 power supplies.
>>>
>>> Signed-off-by: Tao Ren <[email protected]>
>>
>> Applied after adding bel-pfe to index.rst.
>>
>> Thanks,
>> Guenter
>
> Thank you Guenter. I didn't know index.rst needs to be updated; will
> do it for my future doc patches.
>
No worries. This is a result of the effort to convert the documentation
to .rst format, which makes everything a bit more difficult (such as
the need to add new files to the index). I am still getting used to
it myself.

Guenter

>
> Cheers,
>
> Tao
>
>>> ---
>>> No change in v2.
>>>
>>> Documentation/hwmon/bel-pfe.rst | 112 ++++++++++++++++++++++++++++++++
>>> 1 file changed, 112 insertions(+)
>>> create mode 100644 Documentation/hwmon/bel-pfe.rst
>>>
>>> diff --git a/Documentation/hwmon/bel-pfe.rst b/Documentation/hwmon/bel-pfe.rst
>>> new file mode 100644
>>> index 000000000000..4b4a7d67854c
>>> --- /dev/null
>>> +++ b/Documentation/hwmon/bel-pfe.rst
>>> @@ -0,0 +1,112 @@
>>> +Kernel driver bel-pfe
>>> +======================
>>> +
>>> +Supported chips:
>>> +
>>> + * BEL PFE1100
>>> +
>>> + Prefixes: 'pfe1100'
>>> +
>>> + Addresses scanned: -
>>> +
>>> + Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe1100-12-054xa.pdf
>>> +
>>> + * BEL PFE3000
>>> +
>>> + Prefixes: 'pfe3000'
>>> +
>>> + Addresses scanned: -
>>> +
>>> + Datasheet: https://www.belfuse.com/resources/datasheets/powersolutions/ds-bps-pfe3000-series.pdf
>>> +
>>> +Author: Tao Ren <[email protected]>
>>> +
>>> +
>>> +Description
>>> +-----------
>>> +
>>> +This driver supports hardware monitoring for below power supply devices
>>> +which support PMBus Protocol:
>>> +
>>> + * BEL PFE1100
>>> +
>>> + 1100 Watt AC to DC power-factor-corrected (PFC) power supply.
>>> + PMBus Communication Manual is not publicly available.
>>> +
>>> + * BEL PFE3000
>>> +
>>> + 3000 Watt AC/DC power-factor-corrected (PFC) and DC-DC power supply.
>>> + PMBus Communication Manual is not publicly available.
>>> +
>>> +The driver is a client driver to the core PMBus driver. Please see
>>> +Documentation/hwmon/pmbus.rst for details on PMBus client drivers.
>>> +
>>> +
>>> +Usage Notes
>>> +-----------
>>> +
>>> +This driver does not auto-detect devices. You will have to instantiate the
>>> +devices explicitly. Please see Documentation/i2c/instantiating-devices.rst for
>>> +details.
>>> +
>>> +Example: the following will load the driver for an PFE3000 at address 0x20
>>> +on I2C bus #1::
>>> +
>>> + $ modprobe bel-pfe
>>> + $ echo pfe3000 0x20 > /sys/bus/i2c/devices/i2c-1/new_device
>>> +
>>> +
>>> +Platform data support
>>> +---------------------
>>> +
>>> +The driver supports standard PMBus driver platform data.
>>> +
>>> +
>>> +Sysfs entries
>>> +-------------
>>> +
>>> +======================= =======================================================
>>> +curr1_label "iin"
>>> +curr1_input Measured input current
>>> +curr1_max Input current max value
>>> +curr1_max_alarm Input current max alarm
>>> +
>>> +curr[2-3]_label "iout[1-2]"
>>> +curr[2-3]_input Measured output current
>>> +curr[2-3]_max Output current max value
>>> +curr[2-3]_max_alarm Output current max alarm
>>> +
>>> +fan[1-2]_input Fan 1 and 2 speed in RPM
>>> +fan1_target Set fan speed reference for both fans
>>> +
>>> +in1_label "vin"
>>> +in1_input Measured input voltage
>>> +in1_crit Input voltage critical max value
>>> +in1_crit_alarm Input voltage critical max alarm
>>> +in1_lcrit Input voltage critical min value
>>> +in1_lcrit_alarm Input voltage critical min alarm
>>> +in1_max Input voltage max value
>>> +in1_max_alarm Input voltage max alarm
>>> +
>>> +in2_label "vcap"
>>> +in2_input Hold up capacitor voltage
>>> +
>>> +in[3-8]_label "vout[1-3,5-7]"
>>> +in[3-8]_input Measured output voltage
>>> +in[3-4]_alarm vout[1-2] output voltage alarm
>>> +
>>> +power[1-2]_label "pin[1-2]"
>>> +power[1-2]_input Measured input power
>>> +power[1-2]_alarm Input power high alarm
>>> +
>>> +power[3-4]_label "pout[1-2]"
>>> +power[3-4]_input Measured output power
>>> +
>>> +temp[1-3]_input Measured temperature
>>> +temp[1-3]_alarm Temperature alarm
>>> +======================= =======================================================
>>> +
>>> +.. note::
>>> +
>>> + - curr3, fan2, vout[2-7], vcap, pin2, pout2 and temp3 attributes only
>>> + exist for PFE3000.
>