From: Ninad Palsule <ninad@linux.ibm.com>
To: Guenter Roeck <linux@roeck-us.net>,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
eajames@linux.ibm.com, jdelvare@suse.com, corbet@lwn.net,
joel@jms.id.au, andrew@codeconstruct.com.au,
Delphine_CC_Chiu@Wiwynn.com, broonie@kernel.org,
peteryin.openbmc@gmail.com, noahwang.wang@outlook.com,
naresh.solanki@9elements.com, lukas@wunner.de,
jbrunet@baylibre.com, patrick.rudolph@9elements.com,
gregkh@linuxfoundation.org, peterz@infradead.org,
pbiel7@gmail.com, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org,
linux-doc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-aspeed@lists.ozlabs.org, linux-i2c@vger.kernel.org
Subject: Re: [PATCH v2 2/4] hwmon: (pmbus/crps) Add Intel CRPS185 power supply
Date: Mon, 16 Dec 2024 16:30:28 -0600 [thread overview]
Message-ID: <25235d06-6f2a-427a-aead-437a8a7deb0d@linux.ibm.com> (raw)
In-Reply-To: <68f5d2e1-10e8-4441-9338-e2a385a9c2b1@roeck-us.net>
Hi Guenter,
Thanks for the review.
On 12/16/24 12:26, Guenter Roeck wrote:
> On 12/16/24 09:50, Ninad Palsule wrote:
>> Add the driver to monitor Intel common redundant power supply (crps185)
>> with hwmon over pmbus.
>>
>> Signed-off-by: Ninad Palsule <ninad@linux.ibm.com>
>> ---
>> Documentation/hwmon/crps.rst | 97 +++++++++++++++++++++++++++++++++++
>> Documentation/hwmon/index.rst | 1 +
>> MAINTAINERS | 7 +++
>> drivers/hwmon/pmbus/Kconfig | 9 ++++
>> drivers/hwmon/pmbus/Makefile | 1 +
>> drivers/hwmon/pmbus/crps.c | 79 ++++++++++++++++++++++++++++
>> 6 files changed, 194 insertions(+)
>> create mode 100644 Documentation/hwmon/crps.rst
>> create mode 100644 drivers/hwmon/pmbus/crps.c
>>
>> diff --git a/Documentation/hwmon/crps.rst b/Documentation/hwmon/crps.rst
>> new file mode 100644
>> index 000000000000..74570ed1e978
>> --- /dev/null
>> +++ b/Documentation/hwmon/crps.rst
>> @@ -0,0 +1,97 @@
>> +.. SPDX-License-Identifier: GPL-2.0-or-later
>> +
>> +Kernel driver crps
>> +==================
>> +
>> +Supported chips:
>> +
>> + * Intel CRPS185
>> +
>> + Prefix: 'crps185'
>> +
>> + Addresses scanned: -
>> +
>> + Datasheet: Publicly not available.
>
> Maybe "Only available under NDA". Or at least that is what I found.
Updated as per your suggestion.
>
>> +
>> +Authors:
>> + Ninad Palsule <ninad@linux.ibm.com>
>> +
>> +
>> +Description
>> +-----------
>> +
>> +This driver implements support for Intel Common Redundant Power
>> supply with
>> +PMBus support.
>> +
>> +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.
>> +
>> +
>> +Sysfs entries
>> +-------------
>> +
>> +=======================
>> ======================================================
>> +curr1_label "iin"
>> +curr1_input Measured input current
>> +curr1_max Maximum input current
>> +curr1_max_alarm Input maximum current high alarm
>> +curr1_crit Critial high input current
>> +curr1_crit_alarm Input critical current high alarm
>> +curr1_rated_max Maximum rated input current
>> +
>> +curr2_label "iout1"
>> +curr2_input Measured output current
>> +curr2_max Maximum output current
>> +curr2_max_alarm Output maximum current high alarm
>> +curr2_crit Critial high output current
>> +curr2_crit_alarm Output critical current high alarm
>> +curr2_rated_max Maximum rated output current
>> +
>> +in1_label "vin"
>> +in1_input Measured input voltage
>> +in1_crit Critical input over voltage
>> +in1_crit_alarm Critical input over voltage alarm
>> +in1_max Maximum input over voltage
>> +in1_max_alarm Maximum input over voltage alarm
>> +in1_rated_min Minimum rated input voltage
>> +in1_rated_max Maximum rated input voltage
>> +
>> +in2_label "vout1"
>> +in2_input Measured input voltage
>> +in2_crit Critical input over voltage
>> +in2_crit_alarm Critical input over voltage alarm
>> +in2_lcrit Critical input under voltage fault
>> +in2_lcrit_alarm Critical input under voltage fault alarm
>> +in2_max Maximum input over voltage
>> +in2_max_alarm Maximum input over voltage alarm
>> +in2_min Minimum input under voltage warning
>> +in2_min_alarm Minimum input under voltage warning alarm
>> +in2_rated_min Minimum rated input voltage
>> +in2_rated_max Maximum rated input voltage
>> +
>> +power1_label "pin"
>> +power1_input Measured input power
>> +power1_alarm Input power high alarm
>> +power1_max Maximum input power
>> +power1_rated_max Maximum rated input power
>> +
>> +temp[1-2]_input Measured temperature
>> +temp[1-2]_crit Critical temperature
>> +temp[1-2]_crit_alarm Critical temperature alarm
>> +temp[1-2]_max Maximum temperature
>> +temp[1-2]_max_alarm Maximum temperature alarm
>> +temp[1-2]_rated_max Maximum rated temperature
>> +
>> +fan1_alarm Fan 1 warning.
>> +fan1_fault Fan 1 fault.
>> +fan1_input Fan 1 speed in RPM.
>> +fan1_target Fan 1 target.
>> +=======================
>> ======================================================
>
> Does this pass "make htmldocs" ?
Yes, I don't get any error. I run following command on the top level
directory.
export ARCH=arm;export CROSS_COMPILE="arm-linux-gnueabi-";make htmldocs
>
>
>> diff --git a/Documentation/hwmon/index.rst
>> b/Documentation/hwmon/index.rst
>> index 1a3cb0a59f72..b1ea445479b0 100644
>> --- a/Documentation/hwmon/index.rst
>> +++ b/Documentation/hwmon/index.rst
>> @@ -58,6 +58,7 @@ Hardware Monitoring Kernel Drivers
>> corsair-cpro
>> corsair-psu
>> cros_ec_hwmon
>> + crps
>> da9052
>> da9055
>> dell-smm-hwmon
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 637ddd44245f..e99f26f75733 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -6100,6 +6100,13 @@ L: linux-input@vger.kernel.org
>> S: Maintained
>> F: drivers/hid/hid-creative-sb0540.c
>> +INTEL CRPS COMMON REDUNDANT PSU DRIVER
>> +M: Ninad Palsule <ninad@linux.ibm.com>
>> +L: linux-hwmon@vger.kernel.org
>> +S: Maintained
>> +F: Documentation/hwmon/crps.rst
>> +F: drivers/hwmon/pmbus/crps.c
>> +
>> CRYPTO API
>> M: Herbert Xu <herbert@gondor.apana.org.au>
>> M: "David S. Miller" <davem@davemloft.net>
>> diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
>> index 22418a05ced0..43b6df04e0f9 100644
>> --- a/drivers/hwmon/pmbus/Kconfig
>> +++ b/drivers/hwmon/pmbus/Kconfig
>> @@ -85,6 +85,15 @@ config SENSORS_BPA_RS600
>> This driver can also be built as a module. If so, the module
>> will
>> be called bpa-rs600.
>> +config SENSORS_CRPS
>> + tristate "Intel Common Redundant Power Supply"
>> + help
>> + If you say yes here you get hardware monitoring support for
>> the Intel
>> + Common Redundant Power Supply.
>> +
>> + This driver can also be built as a module. If so, the module will
>> + be called crps.
>> +
>> config SENSORS_DELTA_AHE50DC_FAN
>> tristate "Delta AHE-50DC fan control module"
>> help
>> diff --git a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile
>> index 3d3183f8d2a7..c7eb7739b7f8 100644
>> --- a/drivers/hwmon/pmbus/Makefile
>> +++ b/drivers/hwmon/pmbus/Makefile
>> @@ -62,3 +62,4 @@ obj-$(CONFIG_SENSORS_XDPE122) += xdpe12284.o
>> obj-$(CONFIG_SENSORS_XDPE152) += xdpe152c4.o
>> obj-$(CONFIG_SENSORS_ZL6100) += zl6100.o
>> obj-$(CONFIG_SENSORS_PIM4328) += pim4328.o
>> +obj-$(CONFIG_SENSORS_CRPS) += crps.o
>> diff --git a/drivers/hwmon/pmbus/crps.c b/drivers/hwmon/pmbus/crps.c
>> new file mode 100644
>> index 000000000000..09425c404fc8
>> --- /dev/null
>> +++ b/drivers/hwmon/pmbus/crps.c
>> @@ -0,0 +1,79 @@
>> +// SPDX-License-Identifier: GPL-2.0-or-later
>> +/*
>> + * Copyright 2024 IBM Corp.
>> + */
>> +
>> +#include <linux/i2c.h>
>> +#include <linux/of.h>
>> +#include <linux/pmbus.h>
>> +
>> +#include "pmbus.h"
>> +
>> +static const struct i2c_device_id crps_id[] = {
>> + { "intel_crps185" },
>> + {}
>> +};
>> +MODULE_DEVICE_TABLE(i2c, crps_id);
>> +
>> +static struct pmbus_driver_info crps_info = {
>> + .pages = 1,
>> + /* PSU uses default linear data format. */
>> + .func[0] = PMBUS_HAVE_PIN | PMBUS_HAVE_IOUT |
>> + PMBUS_HAVE_STATUS_IOUT | PMBUS_HAVE_IIN |
>> + PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT |
>> + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT |
>> + PMBUS_HAVE_TEMP | PMBUS_HAVE_TEMP2 |
>> + PMBUS_HAVE_STATUS_TEMP |
>> + PMBUS_HAVE_FAN12 | PMBUS_HAVE_STATUS_FAN12,
>> +};
>> +
>> +static int crps_probe(struct i2c_client *client)
>> +{
>> + int rc;
>> + struct device *dev = &client->dev;
>> + char buf[I2C_SMBUS_BLOCK_MAX + 2] = { 0 };
>> +
>> + rc = i2c_smbus_read_block_data(client, PMBUS_MFR_MODEL, buf);
>> + if (rc < 0) {
>> + dev_err_probe(dev, rc, "Failed to read PMBUS_MFR_MODEL\n");
>> + return rc;
>
> return dev_err_probe(...);
>
>> + }
>> +
>> + if (strncmp(buf, "03NK260", 7) == 7) {
>
> strncmp() never returns 7. You probably want something like
>
> if (rc != 7 || strncmp(buf, "03NK260", 7)) {
My bad. Fixed it.
>
>> + buf[rc] = '\0';
>> + dev_err_probe(dev, -ENODEV, "Model '%s' not supported\n", buf);
>
> return dev_err_probe(...);
Fixed.
>
>> + return -ENODEV;
>> + }
>> +
>> + rc = pmbus_do_probe(client, &crps_info);
>> + if (rc) {
>> + dev_err_probe(dev, rc, "Failed to probe %d\n", rc);
>
> dev_err_probe() already handles the error, and a message such as
> "failed to probe -22" isn't very useful anyway. Also,
> return dev_err_probe(...);
Fixed.
Thanks and regards,
Ninad Palsule
next prev parent reply other threads:[~2024-12-16 22:30 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-16 17:50 [PATCH v2 0/4] Add support for Intel CRPS PSU Ninad Palsule
2024-12-16 17:50 ` [PATCH v2 1/4] hwmon: (pmbus/core) Add PMBUS_REVISION in debugfs Ninad Palsule
2024-12-16 18:44 ` Guenter Roeck
2024-12-16 17:50 ` [PATCH v2 2/4] hwmon: (pmbus/crps) Add Intel CRPS185 power supply Ninad Palsule
2024-12-16 18:26 ` Guenter Roeck
2024-12-16 22:30 ` Ninad Palsule [this message]
2024-12-16 17:50 ` [PATCH v2 3/4] dt-bindings: hwmon: intel,crps185: Add to trivial Ninad Palsule
2024-12-16 18:47 ` Guenter Roeck
2024-12-16 22:28 ` Ninad Palsule
2024-12-16 17:50 ` [PATCH v2 4/4] ARM: dts: aspeed: system1: Use crps PSU driver Ninad Palsule
2024-12-16 18:48 ` [PATCH v2 0/4] Add support for Intel CRPS PSU Guenter Roeck
2024-12-16 22:27 ` Ninad Palsule
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=25235d06-6f2a-427a-aead-437a8a7deb0d@linux.ibm.com \
--to=ninad@linux.ibm.com \
--cc=Delphine_CC_Chiu@Wiwynn.com \
--cc=andrew@codeconstruct.com.au \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=eajames@linux.ibm.com \
--cc=gregkh@linuxfoundation.org \
--cc=jbrunet@baylibre.com \
--cc=jdelvare@suse.com \
--cc=joel@jms.id.au \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-aspeed@lists.ozlabs.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=lukas@wunner.de \
--cc=naresh.solanki@9elements.com \
--cc=noahwang.wang@outlook.com \
--cc=patrick.rudolph@9elements.com \
--cc=pbiel7@gmail.com \
--cc=peteryin.openbmc@gmail.com \
--cc=peterz@infradead.org \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.