From: Jonathan Cameron <jic23@cam.ac.uk>
To: Guenter Roeck <guenter.roeck@ericsson.com>
Cc: Jean Delvare <khali@linux-fr.org>,
Jonathan Cameron <kernel@jic23.retrosnub.co.uk>,
Randy Dunlap <rdunlap@xenotime.net>,
Greg Schnorr <gschnorr@cisco.com>,
lm-sensors@lm-sensors.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 5/5] hwmon: pmbus driver documentation
Date: Fri, 25 Feb 2011 20:45:42 +0000 [thread overview]
Message-ID: <4D6814F6.5060308@cam.ac.uk> (raw)
In-Reply-To: <1297969217-9564-6-git-send-email-guenter.roeck@ericsson.com>
Looks fine to me. Do you want to mention the fan stuff somewhere?
On 02/17/11 19:00, Guenter Roeck wrote:
> Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
> ---
> Documentation/hwmon/pmbus | 213 +++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 213 insertions(+), 0 deletions(-)
> create mode 100644 Documentation/hwmon/pmbus
>
> diff --git a/Documentation/hwmon/pmbus b/Documentation/hwmon/pmbus
> new file mode 100644
> index 0000000..00ed7d4
> --- /dev/null
> +++ b/Documentation/hwmon/pmbus
> @@ -0,0 +1,213 @@
> +Kernel driver pmbus
> +====================
> +
> +Supported chips:
> + * Ericsson BMR45X series
> + DC/DC Converter
> + Prefixes: 'bmr450', 'bmr451', 'bmr453', 'bmr454'
> + Addresses scanned: -
> + Datasheet:
> + http://archive.ericsson.net/service/internet/picov/get?DocNo=28701-EN/LZT146395
> + * Linear Technology LTC2978
> + Octal PMBus Power Supply Monitor and Controller
> + Prefix: 'ltc2978'
> + Addresses scanned: -
> + Datasheet: http://cds.linear.com/docs/Datasheet/2978fa.pdf
> + * Maxim MAX16064
> + Quad Power-Supply Controller
> + Prefix: 'max16064'
> + Addresses scanned: -
> + Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX16064.pdf
> + * Maxim MAX34440
> + PMBus 6-Channel Power-Supply Manager
> + Prefixes: 'max34440'
> + Addresses scanned: -
> + Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34440.pdf
> + * Maxim MAX34441
> + PMBus 5-Channel Power-Supply Manager and Intelligent Fan Controller
> + Prefixes: 'max34441'
> + Addresses scanned: -
> + Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX34441.pdf
> + * Maxim MAX8688
> + Digital Power-Supply Controller/Monitor
> + Prefix: 'max8688'
> + Addresses scanned: -
> + Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX8688.pdf
> + * Generic PMBus devices
> + Prefix: 'pmbus'
> + Addresses scanned: -
> + Datasheet: n.a.
> +
> +Author: Guenter Roeck <guenter.roeck@ericsson.com>
> +
> +
> +Description
> +-----------
> +
> +This driver supports hardware montoring for various PMBus compliant devices.
> +It supports voltage, current, power, and temperature sensors as supported
> +by the device.
Mention fan stuff?
> +
> +Each monitored channel has its own high and low limits, plus a critical
> +limit.
> +
> +
> +Usage Notes
> +-----------
> +
> +This driver does not probe for PMBus devices, since there is no register
> +which can be safely used to identify the chip (The MFG_ID register is not
> +supported by all chips), and since there is no well defined address range for
> +PMBus devices. You will have to instantiate the devices explicitly.
> +
> +Example: the following will load the driver for an LTC2978 at address 0x60
> +on I2C bus #1:
> +$ modprobe pmbus
> +$ echo ltc2978 0x60 > /sys/bus/i2c/devices/i2c-1/new_device
> +
> +
> +Platform data support
> +---------------------
> +
> +Support for additional PMBus chips can be added by defining chip parameters in
> +a new chip specific driver file. For example, (untested) code to add support for
> +Emerson DS1200 power modules might look as follows.
> +
> +static struct pmbus_driver_info ds1200_info = {
> + .pages = 1,
> + /* Note: All other sensors are in linear mode */
> + .direct[PSC_VOLTAGE_OUT] = true,
> + .direct[PSC_TEMPERATURE] = true,
> + .direct[PSC_CURRENT_OUT] = true,
> + .m[PSC_VOLTAGE_IN] = 1,
> + .b[PSC_VOLTAGE_IN] = 0,
> + .R[PSC_VOLTAGE_IN] = 3,
> + .m[PSC_VOLTAGE_OUT] = 1,
> + .b[PSC_VOLTAGE_OUT] = 0,
> + .R[PSC_VOLTAGE_OUT] = 3,
> + .m[PSC_TEMPERATURE] = 1,
> + .b[PSC_TEMPERATURE] = 0,
> + .R[PSC_TEMPERATURE] = 3,
> + .func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_IIN | PMBUS_HAVE_STATUS_INPUT
> + | PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT
> + | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT
> + | PMBUS_HAVE_PIN | PMBUS_HAVE_POUT
> + | PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP
> + | PMBUS_HAVE_FAN12 | PMBUS_HAVE_STATUS_FAN12,
> +};
> +
> +static int ds1200_probe(struct i2c_client *client,
> + const struct i2c_device_id *id)
> +{
> + return pmbus_do_probe(client, id, &ds1200_info);
> +}
> +
> +static int ds1200_remove(struct i2c_client *client)
> +{
> + return pmbus_do_remove(client);
> +}
> +
> +static const struct i2c_device_id ds1200_id[] = {
> + {"ds1200", 0},
> + {}
> +};
> +
> +MODULE_DEVICE_TABLE(i2c, ds1200_id);
> +
> +/* This is the driver that will be inserted */
> +static struct i2c_driver ds1200_driver = {
> + .driver = {
> + .name = "ds1200",
> + },
> + .probe = ds1200_probe,
> + .remove = ds1200_remove,
> + .id_table = ds1200_id,
> +};
> +
> +static int __init ds1200_init(void)
> +{
> + return i2c_add_driver(&ds1200_driver);
> +}
> +
> +static void __exit ds1200_exit(void)
> +{
> + i2c_del_driver(&ds1200_driver);
> +}
> +
> +
> +Sysfs entries
> +-------------
> +
> +When probing the chip, the driver identifies which PMBus registers are
> +supported, and determines available sensors from this information.
> +Attribute files only exist if respective sensors are suported by the chip.
> +Labels are provided to inform the user about the sensor associated with
> +a given sysfs entry.
> +
> +The following attributes are supported. Limits are read-write; all other
> +attributes are read-only.
> +
> +inX_input Measured voltage. From READ_VIN or READ_VOUT register.
> +inX_min Minumum Voltage.
> + From VIN_UV_WARN_LIMIT or VOUT_UV_WARN_LIMIT register.
> +inX_max Maximum voltage.
> + From VIN_OV_WARN_LIMIT or VOUT_OV_WARN_LIMIT register.
> +inX_lcrit Critical minumum Voltage.
> + From VIN_UV_FAULT_LIMIT or VOUT_UV_FAULT_LIMIT register.
> +inX_crit Critical maximum voltage.
> + From VIN_OV_FAULT_LIMIT or VOUT_OV_FAULT_LIMIT register.
> +inX_min_alarm Voltage low alarm. From VOLTAGE_UV_WARNING status.
> +inX_max_alarm Voltage high alarm. From VOLTAGE_OV_WARNING status.
> +inX_lcrit_alarm Voltage critical low alarm.
> + From VOLTAGE_UV_FAULT status.
> +inX_crit_alarm Voltage critical high alarm.
> + From VOLTAGE_OV_FAULT status.
> +inX_label "vin", "vcap", or "voutY"
> +
> +currX_input Measured current. From READ_IIN or READ_IOUT register.
> +currX_max Maximum current.
> + From IIN_OC_WARN_LIMIT or IOUT_OC_WARN_LIMIT register.
> +currX_lcrit Critical minumum output current.
> + From IOUT_UC_FAULT_LIMIT register.
> +currX_crit Critical maximum current.
> + From IIN_OC_FAULT_LIMIT or IOUT_OC_FAULT_LIMIT register.
> +currX_alarm Current high alarm.
> + From IIN_OC_WARNING or IOUT_OC_WARNING status.
> +currX_lcrit_alarm Output current critical low alarm.
> + From IOUT_UC_FAULT status.
> +currX_crit_alarm Current critical high alarm.
> + From IIN_OC_FAULT or IOUT_OC_FAULT status.
> +currX_label "iin" or "vinY"
> +
> +powerX_input Measured power. From READ_PIN or READ_POUT register.
> +powerX_cap Output power cap. From POUT_MAX register.
> +powerX_max Power limit. From PIN_OP_WARN_LIMIT or
> + POUT_OP_WARN_LIMIT register.
> +powerX_crit Critical output power limit.
> + From POUT_OP_FAULT_LIMIT register.
> +powerX_alarm Power high alarm.
> + From PIN_OP_WARNING or POUT_OP_WARNING status.
> +powerX_crit_alarm Output power critical high alarm.
> + From POUT_OP_FAULT status.
> +powerX_label "pin" or "poutY"
> +
> +tempX_input Measured tempererature.
> + From READ_TEMPERATURE_X register.
> +tempX_min Mimimum tempererature. From UT_WARN_LIMIT register.
> +tempX_max Maximum tempererature. From OT_WARN_LIMIT register.
> +tempX_lcrit Critical low tempererature.
> + From UT_FAULT_LIMIT register.
> +tempX_crit Critical high tempererature.
> + From OT_FAULT_LIMIT register.
> +tempX_min_alarm Chip temperature low alarm. Set by comparing
> + READ_TEMPERATURE_X with UT_WARN_LIMIT if
> + TEMP_UT_WARNING status is set.
> +tempX_max_alarm Chip temperature high alarm. Set by comparing
> + READ_TEMPERATURE_X with OT_WARN_LIMIT if
> + TEMP_OT_WARNING status is set.
> +tempX_lcrit_alarm Chip temperature critical low alarm. Set by comparing
> + READ_TEMPERATURE_X with UT_FAULT_LIMIT if
> + TEMP_UT_FAULT status is set.
> +tempX_crit_alarm Chip temperature critical high alarm. Set by comparing
> + READ_TEMPERATURE_X with OT_FAULT_LIMIT if
> + TEMP_OT_FAULT status is set.
prev parent reply other threads:[~2011-02-25 20:45 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-17 19:00 [PATCH v4 0/5] hwmon: PMBus device driver Guenter Roeck
2011-02-17 19:00 ` [PATCH v4 1/5] " Guenter Roeck
2011-02-25 20:23 ` Jonathan Cameron
2011-02-26 2:45 ` Guenter Roeck
2011-02-26 10:41 ` Jonathan Cameron
2011-02-26 15:19 ` Guenter Roeck
2011-02-17 19:00 ` [PATCH v4 2/5] hwmon: (pmbus) Add support for Maxim MAX8688 Guenter Roeck
2011-02-25 20:24 ` Jonathan Cameron
2011-02-25 21:46 ` Guenter Roeck
2011-02-17 19:00 ` [PATCH v4 3/5] hwmon: (pmbus) Add support for Maxim MAX16064 Guenter Roeck
2011-02-25 20:26 ` Jonathan Cameron
2011-02-25 21:42 ` Guenter Roeck
2011-02-17 19:00 ` [PATCH v4 4/5] hwmon: (pmbus) Add support for Maxim MAX34440/MAX34441 Guenter Roeck
2011-02-25 20:42 ` Jonathan Cameron
2011-02-25 21:32 ` Guenter Roeck
2011-02-26 10:43 ` Jonathan Cameron
2011-02-26 15:21 ` Guenter Roeck
2011-02-17 19:00 ` [PATCH v4 5/5] hwmon: pmbus driver documentation Guenter Roeck
2011-02-25 20:45 ` Jonathan Cameron [this message]
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=4D6814F6.5060308@cam.ac.uk \
--to=jic23@cam.ac.uk \
--cc=gschnorr@cisco.com \
--cc=guenter.roeck@ericsson.com \
--cc=kernel@jic23.retrosnub.co.uk \
--cc=khali@linux-fr.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lm-sensors@lm-sensors.org \
--cc=rdunlap@xenotime.net \
/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