All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
To: Daniel Golle <daniel-g5gK2j5usbvCyp4qypjU+w@public.gmane.org>,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: "Axel Lin" <axel.lin-8E1dMatC8ynQT0dZR+AlfA@public.gmane.org>,
	"Per Dalén" <per.dalen-US8m9dViuwNWk0Htik3J/w@public.gmane.org>
Subject: Re: [PATCH 1/2 v2] hwmon: (ltc4151) Make shunt-resistor configurable
Date: Sat, 30 Jul 2016 09:00:14 -0700	[thread overview]
Message-ID: <579CCF0E.9050506@roeck-us.net> (raw)
In-Reply-To: <20160725115558.GA18360-g5gK2j5usbvCyp4qypjU+w@public.gmane.org>

Daniel,

On 07/25/2016 04:56 AM, Daniel Golle wrote:
> Allow to specify the resistance of the attached shunt via DT by
> adding the shunt-resistor property. Fall-back to the previous
> default (1 mOhm) if unset.
>
> Signed-off-by: Daniel Golle <daniel-g5gK2j5usbvCyp4qypjU+w@public.gmane.org>

Please resend with the property name changed as asked for by Rob.

Thanks,
Guenter

> ---
> v2: removed unneeded things and throw -EINVAL for shunt==0
>
>   drivers/hwmon/ltc4151.c | 21 +++++++++++++++++++--
>   1 file changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/hwmon/ltc4151.c b/drivers/hwmon/ltc4151.c
> index c86a184..419c6f7 100644
> --- a/drivers/hwmon/ltc4151.c
> +++ b/drivers/hwmon/ltc4151.c
> @@ -30,6 +30,7 @@
>
>   #include <linux/kernel.h>
>   #include <linux/module.h>
> +#include <linux/of.h>
>   #include <linux/init.h>
>   #include <linux/err.h>
>   #include <linux/slab.h>
> @@ -52,6 +53,7 @@ struct ltc4151_data {
>   	struct mutex update_lock;
>   	bool valid;
>   	unsigned long last_updated; /* in jiffies */
> +	unsigned int shunt; /* in micro ohms */
>
>   	/* Registers */
>   	u8 regs[6];
> @@ -111,9 +113,9 @@ static int ltc4151_get_value(struct ltc4151_data *data, u8 reg)
>   	case LTC4151_SENSE_H:
>   		/*
>   		 * 20uV resolution. Convert to current as measured with
> -		 * an 1 mOhm sense resistor, in mA.
> +		 * a given sense resistor, in mA.
>   		 */
> -		val = val * 20;
> +		val = val * 20 * 1000 / data->shunt;
>   		break;
>   	case LTC4151_VIN_H:
>   		/* 25 mV per increment */
> @@ -176,6 +178,7 @@ static int ltc4151_probe(struct i2c_client *client,
>   	struct device *dev = &client->dev;
>   	struct ltc4151_data *data;
>   	struct device *hwmon_dev;
> +	u32 shunt;
>
>   	if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
>   		return -ENODEV;
> @@ -184,6 +187,14 @@ static int ltc4151_probe(struct i2c_client *client,
>   	if (!data)
>   		return -ENOMEM;
>
> +	if (of_property_read_u32(client->dev.of_node, "shunt-resistor", &shunt))
> +		shunt = 1000; /* 1 mOhm if not set via DT */
> +
> +	if (shunt == 0)
> +		return -EINVAL;
> +
> +	data->shunt = shunt;
> +
>   	data->client = client;
>   	mutex_init(&data->update_lock);
>
> @@ -199,10 +210,16 @@ static const struct i2c_device_id ltc4151_id[] = {
>   };
>   MODULE_DEVICE_TABLE(i2c, ltc4151_id);
>
> +static const struct of_device_id ltc4151_match[] = {
> +	{ .compatible = "lltc,ltc4151" },
> +	{},
> +};
> +
>   /* This is the driver that will be inserted */
>   static struct i2c_driver ltc4151_driver = {
>   	.driver = {
>   		.name	= "ltc4151",
> +		.of_match_table = of_match_ptr(ltc4151_match),
>   	},
>   	.probe		= ltc4151_probe,
>   	.id_table	= ltc4151_id,
>

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2016-07-30 16:00 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-24 20:26 [PATCH] hwmon: (ltc4151) Make shunt-resistor configurable Daniel Golle
2016-07-25  5:19 ` Guenter Roeck
2016-07-25  5:19   ` Guenter Roeck
     [not found]   ` <5795A144.2020300-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2016-07-25 11:56     ` [PATCH 1/2 v2] " Daniel Golle
     [not found]       ` <20160725115558.GA18360-g5gK2j5usbvCyp4qypjU+w@public.gmane.org>
2016-07-30 16:00         ` Guenter Roeck [this message]
     [not found]           ` <579CCF0E.9050506-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>
2016-07-30 16:11             ` Daniel Golle
     [not found]               ` <20160730161133.GA17568-g5gK2j5usbvCyp4qypjU+w@public.gmane.org>
2016-07-30 16:26                 ` Guenter Roeck
2016-07-25 11:56     ` [PATCH 2/2] hwmon: (ltc4151) Add devicetree binding for ltc4151 Daniel Golle
     [not found]       ` <20160725115616.GA31557-g5gK2j5usbvCyp4qypjU+w@public.gmane.org>
2016-07-27 14:48         ` Rob Herring
2016-08-01 10:07           ` [PATCH v2 1/2] hwmon: (ltc4151) Make shunt-resistor configurable Daniel Golle
2016-08-01 10:08           ` [PATCH 2/2] hwmon: (ltc4151) Add devicetree binding for ltc4151 Daniel Golle
2016-07-25 17:11   ` [PATCH 1/2 v2] hwmon: (ltc4151) Make shunt-resistor configurable Daniel Golle
2016-07-25 17:12   ` [PATCH 2/2] hwmon: (ltc4151) Add devicetree binding for ltc4151 Daniel Golle

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=579CCF0E.9050506@roeck-us.net \
    --to=linux-0h96xk9xttrk1umjsbkqmq@public.gmane.org \
    --cc=axel.lin-8E1dMatC8ynQT0dZR+AlfA@public.gmane.org \
    --cc=daniel-g5gK2j5usbvCyp4qypjU+w@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=per.dalen-US8m9dViuwNWk0Htik3J/w@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.