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:31 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox