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

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

 



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.

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.
+ */
+
+#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 11:36 AM
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 07:50 PM, Zhu, Richard (NSN - CN/Beijing) wrote:
> Hi Guenter,
>
> I made a separate front end driver for this, please help to review again, Thanks a lot!
>
> BR
> Richard
>
Looks mostly good. Couple of nitpicks - see below.

Thanks,
Guenter

> [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-27 10:09:39.687402000 +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.
> @@ -121,4 +120,14 @@ config SENSORS_ZL6100
>   	  This driver can also be built as a module. If so, the module will
>   	  be called zl6100.
>
> +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.
> +

Please keep entries in alphabetical order.

>   endif # PMBUS
> 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-27 10:08:20.000119000 +0200
> @@ -13,3 +13,4 @@ obj-$(CONFIG_SENSORS_MAX8688)	+= max8688
>   obj-$(CONFIG_SENSORS_UCD9000)	+= ucd9000.o
>   obj-$(CONFIG_SENSORS_UCD9200)	+= ucd9200.o
>   obj-$(CONFIG_SENSORS_ZL6100)	+= zl6100.o
> +obj-$(CONFIG_SENSORS_TPS40422)	+= tps40422.o
> \ No newline at end of file

Please add the missing newline. Also, please keep entries in alphabetical order.

> 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 03:37:03.356922000 +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.

Please drop the GNU mailing address (checkpatch notifies you about this).

> + */
> +
> +#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", 2},

The '2' is not needed here. Please make it 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");
> +MODULE_DESCRIPTION("PMBus driver for TI TPS40422");
> +MODULE_LICENSE("GPL");
>
>
>
>
> -----Original Message-----
> From: ext Guenter Roeck [mailto:linux@xxxxxxxxxxxx]
> Sent: Tuesday, June 17, 2014 6:35 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) Detect temperature sensors on all pages
>
> On 06/17/2014 12:16 AM, Zhu, Richard (NSN - CN/Beijing) wrote:
>> Hi All,
>>
>> When I was trouble shooting the TI power manager chip TPS40422, I found that the kernel pmbus driver (pmbus.c) was not trying to detect the temperature sensors other than page 0 for pmbus devices, so the temp2_input file couldn't be seen in sysfs. So I made a patch file to trying to solve the problem. Please help to review my findings, and to see if the patch can go to the upstream.
>>
>>
>> The following content is the content of the patch file:
>> [PATCH]: hwmon: (pmbus) Detect temperature sensors on all pages
>>
>> For TI power management chip TPS40422, READ_TEMPERATURE_2 command is supported on
>> page 1 of the chip, but the original driver 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 finding the temperature sensors on all pages to solve
>> the problem.
>>
> Problem is that many pmbus devices don't implement paged temperature sensors.
> While this works for the TPS40422, it would result in duplicate detection for
> many other chips with unpaged sensors. Which means we'll need a separate front-end
> driver for this chip.
>
> 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