Hi Guenter, The update version, including the document change. Thanks! (I removed the postal address in tps40422.c file) BR Richard [PATCH]: hwmon: (pmbus) Add tps40422 front-end driver For TI power management chip TPS40422, READ_TEMPERATURE_2 command is supported on page 1 of the chip, but the original driver(pmbus.c) only tried to detect this command on page 0, this will lead to a result that the temperature sensor in page 1 couldn't be detected. This change is to isolate the tps40422 driver from pmbus.c into a solo front-end driver. Signed-off-by: Zhu Laiwen <richard.zhu@xxxxxxx> diff -uprN a/Documentation/hwmon/pmbus b/Documentation/hwmon/pmbus --- a/Documentation/hwmon/pmbus 2014-06-30 09:24:38.302863000 +0200 +++ b/Documentation/hwmon/pmbus 2014-06-30 09:26:44.128313000 +0200 @@ -23,12 +23,11 @@ Supported chips: http://www.lineagepower.com/oem/pdf/PDT012A0X.pdf http://www.lineagepower.com/oem/pdf/UDT020A0X.pdf http://www.lineagepower.com/oem/pdf/MDT040A0X.pdf - * Texas Instruments TPS40400, TPS40422 - Prefixes: 'tps40400', 'tps40422' + * Texas Instruments TPS40400 + Prefixes: 'tps40400' Addresses scanned: - Datasheets: http://www.ti.com/lit/gpn/tps40400 - http://www.ti.com/lit/gpn/tps40422 * Generic PMBus devices Prefix: 'pmbus' Addresses scanned: - diff -uprN a/Documentation/hwmon/tps40422 b/Documentation/hwmon/tps40422 --- a/Documentation/hwmon/tps40422 1970-01-01 01:00:00.000000000 +0100 +++ b/Documentation/hwmon/tps40422 2014-07-01 04:32:32.729680000 +0200 @@ -0,0 +1,69 @@ +Kernel driver tps40422 +====================== + +Supported chips: + * TI TPS40422 + Prefix: 'tps40422' + Addresses scanned: - + Datasheet: http://www.ti.com/lit/gpn/tps40422 + +Author: Zhu Laiwen <richard.zhu@xxxxxxx> + + +Description +----------- + +This driver supports TI TPS40422 Dual-Output or Two-Phase Synchronous Buck +Controller with PMBus + +The driver is a client driver to the core PMBus driver. +Please see Documentation/hwmon/pmbus 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 for +details. + + +Platform data support +--------------------- + +The driver supports standard PMBus driver platform data. + + +Sysfs entries +------------- + +The following attributes are supported. + +in[1-2]_label "vout[1-2]" +in[1-2]_input Measured voltage. From READ_VOUT register. +in[1-2]_alarm voltage alarm. + +curr[1-2]_input Measured current. From READ_IIN or READ_IOUT register. +curr[1-2]_label "iin" or "ioutY" +curr1_max Maximum current. + From IIN_OC_WARN_LIMIT or IOUT_OC_WARN_LIMIT register. +curr1_crit Critical maximum current. + From IIN_OC_FAULT_LIMIT or IOUT_OC_FAULT_LIMIT register. +curr1_max_alarm Current high alarm. + From IIN_OC_WARN_LIMIT or IOUT_OC_WARN_LIMIT status. +curr1_crit_alarm Current critical high alarm. + From IIN_OC_FAULT or IOUT_OC_FAULT status. +curr2_alarm Current high alarm. + From IIN_OC_WARNING or IOUT_OC_WARNING status. + +temp1_input Measured temperature. From READ_TEMPERATURE_1 register. +temp1_max Maximum temperature. From OT_WARN_LIMIT register. +temp1_crit Critical high temperature. From OT_FAULT_LIMIT register. +temp1_max_alarm Chip temperature high alarm. Set by comparing + READ_TEMPERATURE_1 with OT_WARN_LIMIT if TEMP_OT_WARNING + status is set. +temp1_crit_alarm Chip temperature critical high alarm. Set by comparing + READ_TEMPERATURE_1 with OT_FAULT_LIMIT if TEMP_OT_FAULT + status is set. +temp2_input Measured temperature. From READ_TEMPERATURE_2 register. +temp2_alarm Chip temperature alarm. diff -uprN a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig --- a/drivers/hwmon/pmbus/Kconfig 2014-06-27 10:07:38.728983000 +0200 +++ b/drivers/hwmon/pmbus/Kconfig 2014-06-30 07:58:32.017883000 +0200 @@ -20,8 +20,7 @@ config SENSORS_PMBUS help If you say yes here you get hardware monitoring support for generic PMBus devices, including but not limited to ADP4000, BMR453, BMR454, - MDT040, NCP4200, NCP4208, PDT003, PDT006, PDT012, UDT020, TPS40400, - and TPS40422. + MDT040, NCP4200, NCP4208, PDT003, PDT006, PDT012, UDT020, and TPS40400. This driver can also be built as a module. If so, the module will be called pmbus. @@ -87,6 +86,16 @@ config SENSORS_MAX8688 This driver can also be built as a module. If so, the module will be called max8688. +config SENSORS_TPS40422 + tristate "TI TPS40422" + default n + help + If you say yes here you get hardware monitoring support for TI + TPS40422. + + This driver can also be built as a module. If so, the module will + be called tps40422. + config SENSORS_UCD9000 tristate "TI UCD90120, UCD90124, UCD9090, UCD90910" default n diff -uprN a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile --- a/drivers/hwmon/pmbus/Makefile 2014-06-27 10:07:38.716971000 +0200 +++ b/drivers/hwmon/pmbus/Makefile 2014-06-30 07:29:31.045045000 +0200 @@ -10,6 +10,7 @@ obj-$(CONFIG_SENSORS_LTC2978) += ltc2978 obj-$(CONFIG_SENSORS_MAX16064) += max16064.o obj-$(CONFIG_SENSORS_MAX34440) += max34440.o obj-$(CONFIG_SENSORS_MAX8688) += max8688.o +obj-$(CONFIG_SENSORS_TPS40422) += tps40422.o obj-$(CONFIG_SENSORS_UCD9000) += ucd9000.o obj-$(CONFIG_SENSORS_UCD9200) += ucd9200.o obj-$(CONFIG_SENSORS_ZL6100) += zl6100.o diff -uprN a/drivers/hwmon/pmbus/pmbus.c b/drivers/hwmon/pmbus/pmbus.c --- a/drivers/hwmon/pmbus/pmbus.c 2014-06-27 10:07:38.748979000 +0200 +++ b/drivers/hwmon/pmbus/pmbus.c 2014-06-27 10:08:20.023123000 +0200 @@ -193,7 +193,6 @@ static const struct i2c_device_id pmbus_ {"pdt012", 1}, {"pmbus", 0}, {"tps40400", 1}, - {"tps40422", 2}, {"udt020", 1}, {} }; diff -uprN a/drivers/hwmon/pmbus/tps40422.c b/drivers/hwmon/pmbus/tps40422.c --- a/drivers/hwmon/pmbus/tps40422.c 1970-01-01 01:00:00.000000000 +0100 +++ b/drivers/hwmon/pmbus/tps40422.c 2014-07-01 04:35:28.639334000 +0200 @@ -0,0 +1,68 @@ +/* + * Hardware monitoring driver for TI TPS40422 + * + * Copyright (c) 2014 Nokia Solutions and Networks. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc. + */ + +#include <linux/kernel.h> +#include <linux/module.h> +#include <linux/init.h> +#include <linux/err.h> +#include <linux/i2c.h> +#include "pmbus.h" + +static struct pmbus_driver_info tps40422_info = { + .pages = 2, + .format[PSC_VOLTAGE_IN] = linear, + .format[PSC_VOLTAGE_OUT] = linear, + .format[PSC_TEMPERATURE] = linear, + .func[0] = PMBUS_HAVE_VOUT | PMBUS_HAVE_TEMP2 + | PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_STATUS_TEMP + | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT, + .func[1] = PMBUS_HAVE_VOUT | PMBUS_HAVE_TEMP2 + | PMBUS_HAVE_STATUS_VOUT | PMBUS_HAVE_STATUS_TEMP + | PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT, +}; + +static int tps40422_probe(struct i2c_client *client, + const struct i2c_device_id *id) +{ + return pmbus_do_probe(client, id, &tps40422_info); +} + +static const struct i2c_device_id tps40422_id[] = { + {"tps40422", 0}, + {} +}; + +MODULE_DEVICE_TABLE(i2c, tps40422_id); + +/* This is the driver that will be inserted */ +static struct i2c_driver tps40422_driver = { + .driver = { + .name = "tps40422", + }, + .probe = tps40422_probe, + .remove = pmbus_do_remove, + .id_table = tps40422_id, +}; + +module_i2c_driver(tps40422_driver); + +MODULE_AUTHOR("Zhu Laiwen <richard.zhu@xxxxxxx>"); +MODULE_DESCRIPTION("PMBus driver for TI TPS40422"); +MODULE_LICENSE("GPL"); -----Original Message----- From: ext Guenter Roeck [mailto:linux@xxxxxxxxxxxx] Sent: Monday, June 30, 2014 3:00 PM To: Zhu, Richard (NSN - CN/Beijing); jdelvare@xxxxxxx; lm-sensors@xxxxxxxxxxxxxx Cc: Sverdlin, Alexander (NSN - DE/Ulm); Nicu, Ioan (EXT-Other - DE/Ulm) Subject: Re: [PATCH]: hwmon: (pmbus) Add tps40422 front-end driver On 06/29/2014 11:50 PM, Guenter Roeck wrote: > On 06/29/2014 11:16 PM, Zhu, Richard (NSN - CN/Beijing) wrote: >> Hi Guenter, >> >> This is the re-work version of the driver, I fixed the errors except this one: >> "Please drop the GNU mailing address (checkpatch notifies you about this)." >> Because I don't know what the email is, and checkpatch output is paste below: >> [e12606@ulegcptom linux]$ ./scripts/checkpatch.pl patches/tps40422.patch >> total: 0 errors, 0 warnings, 107 lines checked >> >> patches/ tps40422.patch has no obvious style problems and is ready for submission. >> > I didn't say e-mail address, I said mailing address. See below. > >> Thanks, >> >> BR >> Richard >> >> >> [PATCH]: hwmon: (pmbus) Add tps40422 front-end driver >> >> For TI power management chip TPS40422, READ_TEMPERATURE_2 command is supported on >> page 1 of the chip, but the original driver(pmbus.c) only tried to detect this command >> on page 0, this will lead to a result that the temperature sensor in page 1 couldn't >> be detected. This change is to isolate the tps40422 driver from pmbus.c into a solo >> front-end driver. >> >> Signed-off-by: Zhu Laiwen <richard.zhu@xxxxxxx> >> >> diff -uprN a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig >> --- a/drivers/hwmon/pmbus/Kconfig 2014-06-27 10:07:38.728983000 +0200 >> +++ b/drivers/hwmon/pmbus/Kconfig 2014-06-30 07:58:32.017883000 +0200 >> @@ -20,8 +20,7 @@ config SENSORS_PMBUS >> help >> If you say yes here you get hardware monitoring support for generic >> PMBus devices, including but not limited to ADP4000, BMR453, BMR454, >> - MDT040, NCP4200, NCP4208, PDT003, PDT006, PDT012, UDT020, TPS40400, >> - and TPS40422. >> + MDT040, NCP4200, NCP4208, PDT003, PDT006, PDT012, UDT020, and TPS40400. >> >> This driver can also be built as a module. If so, the module will >> be called pmbus. >> @@ -87,6 +86,16 @@ config SENSORS_MAX8688 >> This driver can also be built as a module. If so, the module will >> be called max8688. >> >> +config SENSORS_TPS40422 >> + tristate "TI TPS40422" >> + default n >> + help >> + If you say yes here you get hardware monitoring support for TI >> + TPS40422. >> + >> + This driver can also be built as a module. If so, the module will >> + be called tps40422. >> + >> config SENSORS_UCD9000 >> tristate "TI UCD90120, UCD90124, UCD9090, UCD90910" >> default n >> diff -uprN a/drivers/hwmon/pmbus/Makefile b/drivers/hwmon/pmbus/Makefile >> --- a/drivers/hwmon/pmbus/Makefile 2014-06-27 10:07:38.716971000 +0200 >> +++ b/drivers/hwmon/pmbus/Makefile 2014-06-30 07:29:31.045045000 +0200 >> @@ -10,6 +10,7 @@ obj-$(CONFIG_SENSORS_LTC2978) += ltc2978 >> obj-$(CONFIG_SENSORS_MAX16064) += max16064.o >> obj-$(CONFIG_SENSORS_MAX34440) += max34440.o >> obj-$(CONFIG_SENSORS_MAX8688) += max8688.o >> +obj-$(CONFIG_SENSORS_TPS40422) += tps40422.o >> obj-$(CONFIG_SENSORS_UCD9000) += ucd9000.o >> obj-$(CONFIG_SENSORS_UCD9200) += ucd9200.o >> obj-$(CONFIG_SENSORS_ZL6100) += zl6100.o >> diff -uprN a/drivers/hwmon/pmbus/pmbus.c b/drivers/hwmon/pmbus/pmbus.c >> --- a/drivers/hwmon/pmbus/pmbus.c 2014-06-27 10:07:38.748979000 +0200 >> +++ b/drivers/hwmon/pmbus/pmbus.c 2014-06-27 10:08:20.023123000 +0200 >> @@ -193,7 +193,6 @@ static const struct i2c_device_id pmbus_ >> {"pdt012", 1}, >> {"pmbus", 0}, >> {"tps40400", 1}, >> - {"tps40422", 2}, >> {"udt020", 1}, >> {} >> }; >> diff -uprN a/drivers/hwmon/pmbus/tps40422.c b/drivers/hwmon/pmbus/tps40422.c >> --- a/drivers/hwmon/pmbus/tps40422.c 1970-01-01 01:00:00.000000000 +0100 >> +++ b/drivers/hwmon/pmbus/tps40422.c 2014-06-30 07:43:11.994794000 +0200 >> @@ -0,0 +1,68 @@ >> +/* >> + * Hardware monitoring driver for TI TPS40422 >> + * >> + * Copyright (c) 2014 Nokia Solutions and Networks. >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License as published by >> + * the Free Software Foundation; either version 2 of the License, or >> + * (at your option) any later version. >> + * >> + * This program is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> + * GNU General Public License for more details. >> + * >> + * You should have received a copy of the GNU General Public License >> + * along with this program; if not, write to the Free Software >> + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. > > Above paragraph. Reasoning is that the mailing address keeps changing, > the paragraph is unnecessary, and should thus not be provided in source > files. No need to re-send, though; I can fix that up myself. > > Unless I find some other problem, consider the patch applied to -next. > Hi Richard, found something, after all. Documentation/hwmon/pmbus - need to drop tps40422. Also, you'll need to provide Documentation/hwmon/tps40422. Thanks, Guenter _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors