Re: [PATCH]: hwmon: (pmbus) Add tps40422 front-end driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux