* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
@ 2011-09-29 16:38 ` Guenter Roeck
2011-09-29 18:59 ` Uwe Kleine-König
` (12 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Guenter Roeck @ 2011-09-29 16:38 UTC (permalink / raw)
To: lm-sensors
Hi Uwe,
On Tue, 2011-09-27 at 17:16 -0400, Uwe Kleine-König wrote:
> Based on a patch by David Jander that mostly did s/mc13783/mc13xxx/
>
> Cc: David Jander <david.jander@protonic.nl>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
> changes since (implicit) v1:
> - update documentation
> - undo driver renaming
> - fix show_name callback (not 100% sure it is correct to give a different name
> on mc13892. I think name contains the prefix documented in
> Documentation/hwmon/mc13783-adc?!)
> - implement some differences between mc13783 and mc13892 that I noticed when
> updating the docs
> - different scaling for bp channel
> - no general purpose channels 8-15 on mc13892
> - take over authorship as the patch got much more complicated now compared to
> David's original.
>
> Documentation/hwmon/mc13783-adc | 48 ++++++++++++----
> drivers/hwmon/Kconfig | 6 +-
> drivers/hwmon/mc13783-adc.c | 113 +++++++++++++++++++++++++++++----------
> 3 files changed, 123 insertions(+), 44 deletions(-)
>
> diff --git a/Documentation/hwmon/mc13783-adc b/Documentation/hwmon/mc13783-adc
> index 044531a..8b717f5 100644
> --- a/Documentation/hwmon/mc13783-adc
> +++ b/Documentation/hwmon/mc13783-adc
> @@ -5,6 +5,9 @@ Supported chips:
> * Freescale Atlas MC13783
> Prefix: 'mc13783_adc'
> Datasheet: http://www.freescale.com/files/rf_if/doc/data_sheet/MC13783.pdf?fsrch=1
> + * Freescale Atlas MC13892
> + Prefix: 'mc13892_adc'
> + Datasheet: http://cache.freescale.com/files/analog/doc/data_sheet/MC13892.pdf?fsrch=1&sr=1
>
> Authors:
> Sascha Hauer <s.hauer@pengutronix.de>
> @@ -13,20 +16,21 @@ Authors:
> Description
> -----------
>
> -The Freescale MC13783 is a Power Management and Audio Circuit. Among
> -other things it contains a 10-bit A/D converter. The converter has 16
> -channels which can be used in different modes.
> -The A/D converter has a resolution of 2.25mV. Channels 0-4 have
> -a dedicated meaning with chip internal scaling applied. Channels 5-7
> -can be used as general purpose inputs or alternatively in a dedicated
> -mode. Channels 12-15 are occupied by the touchscreen if it's active.
> +The Freescale MC13783 and MC13892 are Power Management and Audio Circuits.
> +Among other things they contain a 10-bit A/D converter. The converter has 16
> +(MC13783) resp. 12 (MC13892) channels which can be used in different modes. The
> +A/D converter has a resolution of 2.25mV.
>
> -Currently the driver only supports channels 2 and 5-15 with no alternative
> -modes for channels 5-7.
> +Some channels can be used as General Purpose inputs or in a dedicated mode with
> +a chip internal scaling applied .
>
> -See this table for the meaning of the different channels and their chip
> -internal scaling:
> +Currently the driver only supports BP, the General Purpose inputs and
> +touchscreen.
>
> +See the following tables for the meaning of the different channels and their
> +chip internal scaling:
> +
> +MC13783:
> Channel Signal Input Range Scaling
> -------------------------------------------------------------------------------
> 0 Battery Voltage (BATT) 2.50 - 4.65V -2.40V
> @@ -34,7 +38,7 @@ Channel Signal Input Range Scaling
> 2 Application Supply (BP) 2.50 - 4.65V -2.40V
> 3 Charger Voltage (CHRGRAW) 0 - 10V / /5
> 0 - 20V /10
> -4 Charger Current (CHRGISNSP-CHRGISNSN) -0.25V - 0.25V x4
> +4 Charger Current (CHRGISNSP-CHRGISNSN) -0.25 - 0.25V x4
> 5 General Purpose ADIN5 / Battery Pack Thermistor 0 - 2.30V No
> 6 General Purpose ADIN6 / Backup Voltage (LICELL) 0 - 2.30V / No /
> 1.50 - 3.50V -1.20V
> @@ -48,3 +52,23 @@ Channel Signal Input Range Scaling
> 13 General Purpose TSX2 / Touchscreen X-plate 2 0 - 2.30V No
> 14 General Purpose TSY1 / Touchscreen Y-plate 1 0 - 2.30V No
> 15 General Purpose TSY2 / Touchscreen Y-plate 2 0 - 2.30V No
> +
> +MC13892:
> +Channel Signal Input Range Scaling
> +-------------------------------------------------------------------------------
> +0 Battery Voltage (BATT) 0 - 4.8V /2
> +1 Battery Current (BATT - BATTISNSCC) -60 - 60 mV x20
> +2 Application Supply (BPSNS) 0 - 4.8V /2
> +3 Charger Voltage (CHRGRAW) 0 - 12V / /5
> + 0 - 20V /10
> +4 Charger Current (CHRGISNS-BPSNS) / -0.3 - 0.3V / x4 /
> + Touchscreen X-plate 1 0 - 2.4V No
> +5 General Purpose ADIN5 / Battery Pack Thermistor 0 - 2.4V No
> +6 General Purpose ADIN6 / Backup Voltage (LICELL) 0 - 2.4V / No
> + Backup Voltage (LICELL) 0 - 3.6V x2/3
> +7 General Purpose ADIN7 / UID / Die Temperature 0 - 2.4V / No /
> + 0 - 4.8V /2
> +12 Touchscreen X-plate 1 0 - 2.4V No
> +13 Touchscreen X-plate 2 0 - 2.4V No
> +14 Touchscreen Y-plate 1 0 - 2.4V No
> +15 Touchscreen Y-plate 2 0 - 2.4V No
> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
> index 0b62c3c..e3e3bc0 100644
> --- a/drivers/hwmon/Kconfig
> +++ b/drivers/hwmon/Kconfig
> @@ -1322,10 +1322,10 @@ config SENSORS_APPLESMC
> the awesome power of applesmc.
>
> config SENSORS_MC13783_ADC
> - tristate "Freescale MC13783 ADC"
> - depends on MFD_MC13783
> + tristate "Freescale MC13783/MC13892 ADC"
> + depends on MFD_MC13XXX
> help
> - Support for the A/D converter on MC13783 PMIC.
> + Support for the A/D converter on MC13783 and MC13892 PMIC.
>
> if ACPI
>
> diff --git a/drivers/hwmon/mc13783-adc.c b/drivers/hwmon/mc13783-adc.c
> index ef65ab5..0d796f7 100644
> --- a/drivers/hwmon/mc13783-adc.c
> +++ b/drivers/hwmon/mc13783-adc.c
> @@ -1,5 +1,5 @@
> /*
> - * Driver for the Freescale Semiconductor MC13783 adc.
> + * Driver for the adc on Freescale Semiconductor MC13783 and MC13892 PMICs.
> *
> * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
> * Copyright (C) 2009 Sascha Hauer, Pengutronix
> @@ -18,7 +18,7 @@
> * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> */
>
> -#include <linux/mfd/mc13783.h>
> +#include <linux/mfd/mc13xxx.h>
> #include <linux/platform_device.h>
> #include <linux/hwmon-sysfs.h>
> #include <linux/kernel.h>
> @@ -28,7 +28,11 @@
> #include <linux/init.h>
> #include <linux/err.h>
>
> -#define MC13783_ADC_NAME "mc13783-adc"
> +#define DRIVER_NAME "mc13783-adc"
> +
> +/* platform device id driver data */
> +#define MC13783_ADC_16CHANS 1
> +#define MC13783_ADC_BPDIV2 2
>
I am all for using functional bitmaps if it serves a purpose. However,
that is not the case here, and there is no indication that or if there
will ever be a chip supporting more than one of the features in the bit
map. With a bitmap like this, we get all the pain and none of the
benefits of having a bitmap.
So please use an enum instead to distinguish chips, similar to other
hwmon drivers. Something like
enum chips { mc13783, mc13892 };
> struct mc13783_adc_priv {
> struct mc13xxx *mc13xxx;
It might actually make sense to store the chip id in mc13783_adc_priv to
simplify access to it.
> @@ -38,7 +42,13 @@ struct mc13783_adc_priv {
> static ssize_t mc13783_adc_show_name(struct device *dev, struct device_attribute
> *devattr, char *buf)
> {
> - return sprintf(buf, "mc13783_adc\n");
> + struct platform_device *pdev = to_platform_device(dev);
> + ssize_t ret = sprintf(buf, "%s\n", pdev->name);
> +
> + if (ret > 7 && buf[7] = '-')
> + buf[7] = '_';
> +
This is clumsy, and would get really ugly if there is ever a chip
supported by this driver which doesn't have the '-' at the same
position.
You could store the name with '_' in platform_device_id, or have a const
char *name in mc13783_adc_priv and point it to the correct/expected
string. No need to do a runtime string correction.
> + return ret;
> }
>
> static int mc13783_adc_read(struct device *dev,
> @@ -68,16 +78,21 @@ static ssize_t mc13783_adc_read_bp(struct device *dev,
> struct device_attribute *devattr, char *buf)
> {
> unsigned val;
> + struct platform_device *pdev = to_platform_device(dev);
> + kernel_ulong_t driver_data = platform_get_device_id(pdev)->driver_data;
> int ret = mc13783_adc_read(dev, devattr, &val);
>
> if (ret)
> return ret;
>
> - /*
> - * BP (channel 2) reports with offset 2.4V to the actual value to fit
> - * the input range of the ADC. unit = 2.25mV = 9/4 mV.
> - */
> - val = DIV_ROUND_CLOSEST(val * 9, 4) + 2400;
> + if (driver_data & MC13783_ADC_BPDIV2)
> + val = DIV_ROUND_CLOSEST(val * 9, 2);
> + else
> + /*
> + * BP (channel 2) reports with offset 2.4V to the actual value
> + * to fit the input range of the ADC. unit = 2.25mV = 9/4 mV.
> + */
> + val = DIV_ROUND_CLOSEST(val * 9, 4) + 2400;
>
> return sprintf(buf, "%u\n", val);
> }
> @@ -114,12 +129,21 @@ static SENSOR_DEVICE_ATTR(in13_input, S_IRUGO, mc13783_adc_read_gp, NULL, 13);
> static SENSOR_DEVICE_ATTR(in14_input, S_IRUGO, mc13783_adc_read_gp, NULL, 14);
> static SENSOR_DEVICE_ATTR(in15_input, S_IRUGO, mc13783_adc_read_gp, NULL, 15);
>
> -static struct attribute *mc13783_attr[] = {
> +static struct attribute *mc13783_attr_base[] = {
> &dev_attr_name.attr,
> &sensor_dev_attr_in2_input.dev_attr.attr,
> &sensor_dev_attr_in5_input.dev_attr.attr,
> &sensor_dev_attr_in6_input.dev_attr.attr,
> &sensor_dev_attr_in7_input.dev_attr.attr,
> + NULL
> +};
> +
> +static const struct attribute_group mc13783_group_base = {
> + .attrs = mc13783_attr_base,
> +};
> +
> +/* these are only used if MC13783_ADC_16CHANS is provided in driver data */
> +static struct attribute *mc13783_attr_16chan[] = {
> &sensor_dev_attr_in8_input.dev_attr.attr,
> &sensor_dev_attr_in9_input.dev_attr.attr,
> &sensor_dev_attr_in10_input.dev_attr.attr,
> @@ -127,8 +151,8 @@ static struct attribute *mc13783_attr[] = {
> NULL
> };
>
> -static const struct attribute_group mc13783_group = {
> - .attrs = mc13783_attr,
> +static const struct attribute_group mc13783_group_16chan = {
> + .attrs = mc13783_attr_16chan,
> };
>
> /* last four channels may be occupied by the touchscreen */
> @@ -156,6 +180,7 @@ static int __init mc13783_adc_probe(struct platform_device *pdev)
> {
> struct mc13783_adc_priv *priv;
> int ret;
> + kernel_ulong_t driver_data = platform_get_device_id(pdev)->driver_data;
>
> priv = kzalloc(sizeof(*priv), GFP_KERNEL);
> if (!priv)
> @@ -166,14 +191,22 @@ static int __init mc13783_adc_probe(struct platform_device *pdev)
> platform_set_drvdata(pdev, priv);
>
> /* Register sysfs hooks */
> - ret = sysfs_create_group(&pdev->dev.kobj, &mc13783_group);
> + ret = sysfs_create_group(&pdev->dev.kobj, &mc13783_group_base);
> if (ret)
> - goto out_err_create1;
> + goto out_err_create_base;
>
> - if (!mc13783_adc_use_touchscreen(pdev)) {
> - ret = sysfs_create_group(&pdev->dev.kobj, &mc13783_group_ts);
> + if (driver_data & MC13783_ADC_16CHANS) {
> + ret = sysfs_create_group(&pdev->dev.kobj,
> + &mc13783_group_16chan);
> if (ret)
> - goto out_err_create2;
> + goto out_err_create_16chan;
> +
> + if (!mc13783_adc_use_touchscreen(pdev)) {
> + ret = sysfs_create_group(&pdev->dev.kobj,
> + &mc13783_group_ts);
> + if (ret)
> + goto out_err_create_ts;
> + }
> }
>
> priv->hwmon_dev = hwmon_device_register(&pdev->dev);
> @@ -184,17 +217,21 @@ static int __init mc13783_adc_probe(struct platform_device *pdev)
> goto out_err_register;
> }
>
> -
> return 0;
>
> out_err_register:
>
> - if (!mc13783_adc_use_touchscreen(pdev))
> - sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_ts);
> -out_err_create2:
> + if (driver_data & MC13783_ADC_16CHANS) {
> + if (!mc13783_adc_use_touchscreen(pdev))
> + sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_ts);
> +out_err_create_ts:
> +
> + sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_16chan);
> + }
> +out_err_create_16chan:
>
> - sysfs_remove_group(&pdev->dev.kobj, &mc13783_group);
> -out_err_create1:
> + sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_base);
> +out_err_create_base:
>
> platform_set_drvdata(pdev, NULL);
> kfree(priv);
> @@ -205,13 +242,18 @@ out_err_create1:
> static int __devexit mc13783_adc_remove(struct platform_device *pdev)
> {
> struct mc13783_adc_priv *priv = platform_get_drvdata(pdev);
> + kernel_ulong_t driver_data = platform_get_device_id(pdev)->driver_data;
>
> hwmon_device_unregister(priv->hwmon_dev);
>
> - if (!mc13783_adc_use_touchscreen(pdev))
> - sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_ts);
> + if (driver_data & MC13783_ADC_16CHANS) {
> + if (!mc13783_adc_use_touchscreen(pdev))
> + sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_ts);
>
> - sysfs_remove_group(&pdev->dev.kobj, &mc13783_group);
> + sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_16chan);
> + }
> +
> + sysfs_remove_group(&pdev->dev.kobj, &mc13783_group_base);
>
> platform_set_drvdata(pdev, NULL);
> kfree(priv);
> @@ -219,12 +261,26 @@ static int __devexit mc13783_adc_remove(struct platform_device *pdev)
> return 0;
> }
>
> +static const struct platform_device_id mc13783_adc_idtable[] = {
> + {
> + .name = "mc13783-adc",
> + .driver_data = MC13783_ADC_16CHANS,
> + }, {
> + .name = "mc13892-adc",
> + .driver_data = MC13783_ADC_BPDIV2,
> + }, {
> + /* sentinel */
> + }
> +};
> +MODULE_DEVICE_TABLE(platform, mc13783_adc_idtable);
> +
> static struct platform_driver mc13783_adc_driver = {
> - .remove = __devexit_p(mc13783_adc_remove),
> + .remove = __devexit_p(mc13783_adc_remove),
> .driver = {
> .owner = THIS_MODULE,
> - .name = MC13783_ADC_NAME,
> + .name = DRIVER_NAME,
> },
> + .id_table = mc13783_adc_idtable,
> };
>
> static int __init mc13783_adc_init(void)
> @@ -243,4 +299,3 @@ module_exit(mc13783_adc_exit);
> MODULE_DESCRIPTION("MC13783 ADC driver");
> MODULE_AUTHOR("Luotao Fu <l.fu@pengutronix.de>");
> MODULE_LICENSE("GPL");
> -MODULE_ALIAS("platform:" MC13783_ADC_NAME);
Just for clarification - is the alias no longer needed because the name
matches the one in mc13783_adc_driver ?
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
2011-09-29 16:38 ` Guenter Roeck
@ 2011-09-29 18:59 ` Uwe Kleine-König
2012-01-05 13:44 ` Jean Delvare
` (11 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Uwe Kleine-König @ 2011-09-29 18:59 UTC (permalink / raw)
To: lm-sensors
Hi Guenter,
On Thu, Sep 29, 2011 at 09:38:23AM -0700, Guenter Roeck wrote:
> On Tue, 2011-09-27 at 17:16 -0400, Uwe Kleine-König wrote:
> > [...]
> > diff --git a/drivers/hwmon/mc13783-adc.c b/drivers/hwmon/mc13783-adc.c
> > index ef65ab5..0d796f7 100644
> > --- a/drivers/hwmon/mc13783-adc.c
> > +++ b/drivers/hwmon/mc13783-adc.c
> > @@ -1,5 +1,5 @@
> > /*
> > - * Driver for the Freescale Semiconductor MC13783 adc.
> > + * Driver for the adc on Freescale Semiconductor MC13783 and MC13892 PMICs.
> > *
> > * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
> > * Copyright (C) 2009 Sascha Hauer, Pengutronix
> > @@ -18,7 +18,7 @@
> > * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> > */
> >
> > -#include <linux/mfd/mc13783.h>
> > +#include <linux/mfd/mc13xxx.h>
> > #include <linux/platform_device.h>
> > #include <linux/hwmon-sysfs.h>
> > #include <linux/kernel.h>
> > @@ -28,7 +28,11 @@
> > #include <linux/init.h>
> > #include <linux/err.h>
> >
> > -#define MC13783_ADC_NAME "mc13783-adc"
> > +#define DRIVER_NAME "mc13783-adc"
> > +
> > +/* platform device id driver data */
> > +#define MC13783_ADC_16CHANS 1
> > +#define MC13783_ADC_BPDIV2 2
> >
> I am all for using functional bitmaps if it serves a purpose. However,
> that is not the case here, and there is no indication that or if there
> will ever be a chip supporting more than one of the features in the bit
> map. With a bitmap like this, we get all the pain and none of the
> benefits of having a bitmap.
What exactly do you consider a pain here? I really like it that way and
want to keep it.
> So please use an enum instead to distinguish chips, similar to other
> hwmon drivers. Something like
>
> enum chips { mc13783, mc13892 };
>
In my eyes this would be a step back. I've seen quite some places where
an if() used to decide based on a name (mostly cpu_is_mxyz()) and adding
support for a new cpu has to touch all these if()s.
> > struct mc13783_adc_priv {
> > struct mc13xxx *mc13xxx;
>
> It might actually make sense to store the chip id in mc13783_adc_priv to
> simplify access to it.
>
> > @@ -38,7 +42,13 @@ struct mc13783_adc_priv {
> > static ssize_t mc13783_adc_show_name(struct device *dev, struct device_attribute
> > *devattr, char *buf)
> > {
> > - return sprintf(buf, "mc13783_adc\n");
> > + struct platform_device *pdev = to_platform_device(dev);
> > + ssize_t ret = sprintf(buf, "%s\n", pdev->name);
> > +
> > + if (ret > 7 && buf[7] = '-')
> > + buf[7] = '_';
> > +
> This is clumsy, and would get really ugly if there is ever a chip
> supported by this driver which doesn't have the '-' at the same
> position.
Right. But this can still be done when that new chip comes down the
road. And today this is IMHO good enough...
> You could store the name with '_' in platform_device_id, or have a const
> char *name in mc13783_adc_priv and point it to the correct/expected
> string. No need to do a runtime string correction.
... and doesn't spend memory to save several nearly identical strings.
> > [...]
> > +static const struct platform_device_id mc13783_adc_idtable[] = {
> > + {
> > + .name = "mc13783-adc",
> > + .driver_data = MC13783_ADC_16CHANS,
> > + }, {
> > + .name = "mc13892-adc",
> > + .driver_data = MC13783_ADC_BPDIV2,
> > + }, {
> > + /* sentinel */
> > + }
> > +};
> > +MODULE_DEVICE_TABLE(platform, mc13783_adc_idtable);
> > +
> > static struct platform_driver mc13783_adc_driver = {
> > - .remove = __devexit_p(mc13783_adc_remove),
> > + .remove = __devexit_p(mc13783_adc_remove),
> > .driver = {
> > .owner = THIS_MODULE,
> > - .name = MC13783_ADC_NAME,
> > + .name = DRIVER_NAME,
> > },
> > + .id_table = mc13783_adc_idtable,
> > };
> >
> > static int __init mc13783_adc_init(void)
> > @@ -243,4 +299,3 @@ module_exit(mc13783_adc_exit);
> > MODULE_DESCRIPTION("MC13783 ADC driver");
> > MODULE_AUTHOR("Luotao Fu <l.fu@pengutronix.de>");
> > MODULE_LICENSE("GPL");
> > -MODULE_ALIAS("platform:" MC13783_ADC_NAME);
>
> Just for clarification - is the alias no longer needed because the name
> matches the one in mc13783_adc_driver ?
It is superseeded by the MODULE_DEVICE_TABLE above.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
2011-09-29 16:38 ` Guenter Roeck
2011-09-29 18:59 ` Uwe Kleine-König
@ 2012-01-05 13:44 ` Jean Delvare
2012-01-23 9:01 ` [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC Uwe Kleine-König
` (10 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Jean Delvare @ 2012-01-05 13:44 UTC (permalink / raw)
To: lm-sensors
Uwe,
On Tue, 27 Sep 2011 23:16:09 +0200, Uwe Kleine-König wrote:
> Based on a patch by David Jander that mostly did s/mc13783/mc13xxx/
>
> Cc: David Jander <david.jander@protonic.nl>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
> changes since (implicit) v1:
> - update documentation
> - undo driver renaming
> - fix show_name callback (not 100% sure it is correct to give a different name
> on mc13892. I think name contains the prefix documented in
> Documentation/hwmon/mc13783-adc?!)
> - implement some differences between mc13783 and mc13892 that I noticed when
> updating the docs
> - different scaling for bp channel
> - no general purpose channels 8-15 on mc13892
> - take over authorship as the patch got much more complicated now compared to
> David's original.
>
> Documentation/hwmon/mc13783-adc | 48 ++++++++++++----
> drivers/hwmon/Kconfig | 6 +-
> drivers/hwmon/mc13783-adc.c | 113 +++++++++++++++++++++++++++++----------
> 3 files changed, 123 insertions(+), 44 deletions(-)
What's the current state of this patch? Do you have a more recent
version that you would like to share? I would like to get this upstream
now so that your work doesn't get lost.
Thanks,
--
Jean Delvare
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (2 preceding siblings ...)
2012-01-05 13:44 ` Jean Delvare
@ 2012-01-23 9:01 ` Uwe Kleine-König
2012-01-27 16:53 ` Jean Delvare
` (9 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Uwe Kleine-König @ 2012-01-23 9:01 UTC (permalink / raw)
To: lm-sensors
Hello Jean,
On Thu, Jan 05, 2012 at 02:44:37PM +0100, Jean Delvare wrote:
> Uwe,
>
> On Tue, 27 Sep 2011 23:16:09 +0200, Uwe Kleine-König wrote:
> > Based on a patch by David Jander that mostly did s/mc13783/mc13xxx/
> >
> > Cc: David Jander <david.jander@protonic.nl>
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > ---
> > changes since (implicit) v1:
> > - update documentation
> > - undo driver renaming
> > - fix show_name callback (not 100% sure it is correct to give a different name
> > on mc13892. I think name contains the prefix documented in
> > Documentation/hwmon/mc13783-adc?!)
> > - implement some differences between mc13783 and mc13892 that I noticed when
> > updating the docs
> > - different scaling for bp channel
> > - no general purpose channels 8-15 on mc13892
> > - take over authorship as the patch got much more complicated now compared to
> > David's original.
> >
> > Documentation/hwmon/mc13783-adc | 48 ++++++++++++----
> > drivers/hwmon/Kconfig | 6 +-
> > drivers/hwmon/mc13783-adc.c | 113 +++++++++++++++++++++++++++++----------
> > 3 files changed, 123 insertions(+), 44 deletions(-)
>
> What's the current state of this patch? Do you have a more recent
> version that you would like to share? I would like to get this upstream
> now so that your work doesn't get lost.
no, there is no more recent version. If you're happy with the show_name
callback it can go in from my side. I didn't try if it still applies,
but I'd expect that only Kconfig could conflict and that should be easy
to resolve in case it does.
Thanks for your heads up,
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (3 preceding siblings ...)
2012-01-23 9:01 ` [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC Uwe Kleine-König
@ 2012-01-27 16:53 ` Jean Delvare
2012-01-27 19:48 ` Uwe Kleine-König
` (8 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Jean Delvare @ 2012-01-27 16:53 UTC (permalink / raw)
To: lm-sensors
SGkgVXdlLAoKT24gVHVlLCAyNyBTZXAgMjAxMSAyMzoxNjowOSArMDIwMCwgVXdlIEtsZWluZS1L
w7ZuaWcgd3JvdGU6Cj4gQmFzZWQgb24gYSBwYXRjaCBieSBEYXZpZCBKYW5kZXIgdGhhdCBtb3N0
bHkgZGlkIHMvbWMxMzc4My9tYzEzeHh4Lwo+IAo+IENjOiBEYXZpZCBKYW5kZXIgPGRhdmlkLmph
bmRlckBwcm90b25pYy5ubD4KPiBTaWduZWQtb2ZmLWJ5OiBVd2UgS2xlaW5lLUvDtm5pZyA8dS5r
bGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPgo+IC0tLQo+IGNoYW5nZXMgc2luY2UgKGltcGxp
Y2l0KSB2MToKPiAgLSB1cGRhdGUgZG9jdW1lbnRhdGlvbgo+ICAtIHVuZG8gZHJpdmVyIHJlbmFt
aW5nCj4gIC0gZml4IHNob3dfbmFtZSBjYWxsYmFjayAobm90IDEwMCUgc3VyZSBpdCBpcyBjb3Jy
ZWN0IHRvIGdpdmUgYSBkaWZmZXJlbnQgbmFtZQo+ICAgIG9uIG1jMTM4OTIuIEkgdGhpbmsgbmFt
ZSBjb250YWlucyB0aGUgcHJlZml4IGRvY3VtZW50ZWQgaW4KPiAgICBEb2N1bWVudGF0aW9uL2h3
bW9uL21jMTM3ODMtYWRjPyEpCj4gIC0gaW1wbGVtZW50IHNvbWUgZGlmZmVyZW5jZXMgYmV0d2Vl
biBtYzEzNzgzIGFuZCBtYzEzODkyIHRoYXQgSSBub3RpY2VkIHdoZW4KPiAgICB1cGRhdGluZyB0
aGUgZG9jcwo+ICAgIC0gZGlmZmVyZW50IHNjYWxpbmcgZm9yIGJwIGNoYW5uZWwKPiAgICAtIG5v
IGdlbmVyYWwgcHVycG9zZSBjaGFubmVscyA4LTE1IG9uIG1jMTM4OTIKPiAgLSB0YWtlIG92ZXIg
YXV0aG9yc2hpcCBhcyB0aGUgcGF0Y2ggZ290IG11Y2ggbW9yZSBjb21wbGljYXRlZCBub3cgY29t
cGFyZWQgdG8KPiAgICBEYXZpZCdzIG9yaWdpbmFsLgo+IAo+ICBEb2N1bWVudGF0aW9uL2h3bW9u
L21jMTM3ODMtYWRjIHwgICA0OCArKysrKysrKysrKystLS0tCj4gIGRyaXZlcnMvaHdtb24vS2Nv
bmZpZyAgICAgICAgICAgfCAgICA2ICstCj4gIGRyaXZlcnMvaHdtb24vbWMxMzc4My1hZGMuYyAg
ICAgfCAgMTEzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+ICAzIGZp
bGVzIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKCkFzIG1lcmdp
bmcgdGhpcyBnb3Qgc3R1Y2sgYWZ0ZXIgR3VlbnRlcidzIGxhc3QgcmV2aWV3ICh0aGFua3MgR3Vl
bnRlciwKQlRXKSBJIGFtIHBpY2tpbmcgdXAgZnJvbSB0aGVyZSBhbmQgaG9wZWZ1bGx5IHdlIGNh
biBnZXQgdGhpcyB1cHN0cmVhbS4KSGVyZSBJIGdvIHdpdGggbXkgcmV2aWV3LCBtb3N0bHkgbWlu
b3IgdGhpbmdzOgoKPiAKPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9od21vbi9tYzEzNzgz
LWFkYyBiL0RvY3VtZW50YXRpb24vaHdtb24vbWMxMzc4My1hZGMKPiBpbmRleCAwNDQ1MzFhLi44
YjcxN2Y1IDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vaHdtb24vbWMxMzc4My1hZGMKPiAr
KysgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL21jMTM3ODMtYWRjCj4gQEAgLTUsNiArNSw5IEBAIFN1
cHBvcnRlZCBjaGlwczoKPiAgICAqIEZyZWVzY2FsZSBBdGxhcyBNQzEzNzgzCj4gICAgICBQcmVm
aXg6ICdtYzEzNzgzX2FkYycKPiAgICAgIERhdGFzaGVldDogaHR0cDovL3d3dy5mcmVlc2NhbGUu
Y29tL2ZpbGVzL3JmX2lmL2RvYy9kYXRhX3NoZWV0L01DMTM3ODMucGRmP2ZzcmNoPTEKPiArICAq
IEZyZWVzY2FsZSBBdGxhcyBNQzEzODkyCj4gKyAgICBQcmVmaXg6ICdtYzEzODkyX2FkYycKPiAr
ICAgIERhdGFzaGVldDogaHR0cDovL2NhY2hlLmZyZWVzY2FsZS5jb20vZmlsZXMvYW5hbG9nL2Rv
Yy9kYXRhX3NoZWV0L01DMTM4OTIucGRmP2ZzcmNoPTEmc3I9MQo+ICAKPiAgQXV0aG9yczoKPiAg
ICAgIFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KPiBAQCAtMTMsMjAgKzE2
LDIxIEBAIEF1dGhvcnM6Cj4gIERlc2NyaXB0aW9uCj4gIC0tLS0tLS0tLS0tCj4gIAo+IC1UaGUg
RnJlZXNjYWxlIE1DMTM3ODMgaXMgYSBQb3dlciBNYW5hZ2VtZW50IGFuZCBBdWRpbyBDaXJjdWl0
LiBBbW9uZwo+IC1vdGhlciB0aGluZ3MgaXQgY29udGFpbnMgYSAxMC1iaXQgQS9EIGNvbnZlcnRl
ci4gVGhlIGNvbnZlcnRlciBoYXMgMTYKPiAtY2hhbm5lbHMgd2hpY2ggY2FuIGJlIHVzZWQgaW4g
ZGlmZmVyZW50IG1vZGVzLgo+IC1UaGUgQS9EIGNvbnZlcnRlciBoYXMgYSByZXNvbHV0aW9uIG9m
IDIuMjVtVi4gQ2hhbm5lbHMgMC00IGhhdmUKPiAtYSBkZWRpY2F0ZWQgbWVhbmluZyB3aXRoIGNo
aXAgaW50ZXJuYWwgc2NhbGluZyBhcHBsaWVkLiBDaGFubmVscyA1LTcKPiAtY2FuIGJlIHVzZWQg
YXMgZ2VuZXJhbCBwdXJwb3NlIGlucHV0cyBvciBhbHRlcm5hdGl2ZWx5IGluIGEgZGVkaWNhdGVk
Cj4gLW1vZGUuIENoYW5uZWxzIDEyLTE1IGFyZSBvY2N1cGllZCBieSB0aGUgdG91Y2hzY3JlZW4g
aWYgaXQncyBhY3RpdmUuCj4gK1RoZSBGcmVlc2NhbGUgTUMxMzc4MyBhbmQgTUMxMzg5MiBhcmUg
UG93ZXIgTWFuYWdlbWVudCBhbmQgQXVkaW8gQ2lyY3VpdHMuCj4gK0Ftb25nIG90aGVyIHRoaW5n
cyB0aGV5IGNvbnRhaW4gYSAxMC1iaXQgQS9EIGNvbnZlcnRlci4gVGhlIGNvbnZlcnRlciBoYXMg
MTYKPiArKE1DMTM3ODMpIHJlc3AuIDEyIChNQzEzODkyKSBjaGFubmVscyB3aGljaCBjYW4gYmUg
dXNlZCBpbiBkaWZmZXJlbnQgbW9kZXMuIFRoZQo+ICtBL0QgY29udmVydGVyIGhhcyBhIHJlc29s
dXRpb24gb2YgMi4yNW1WLgo+ICAKPiAtQ3VycmVudGx5IHRoZSBkcml2ZXIgb25seSBzdXBwb3J0
cyBjaGFubmVscyAyIGFuZCA1LTE1IHdpdGggbm8gYWx0ZXJuYXRpdmUKPiAtbW9kZXMgZm9yIGNo
YW5uZWxzIDUtNy4KPiArU29tZSBjaGFubmVscyBjYW4gYmUgdXNlZCBhcyBHZW5lcmFsIFB1cnBv
c2UgaW5wdXRzIG9yIGluIGEgZGVkaWNhdGVkIG1vZGUgd2l0aAo+ICthIGNoaXAgaW50ZXJuYWwg
c2NhbGluZyBhcHBsaWVkIC4KPiAgCj4gLVNlZSB0aGlzIHRhYmxlIGZvciB0aGUgbWVhbmluZyBv
ZiB0aGUgZGlmZmVyZW50IGNoYW5uZWxzIGFuZCB0aGVpciBjaGlwCj4gLWludGVybmFsIHNjYWxp
bmc6Cj4gK0N1cnJlbnRseSB0aGUgZHJpdmVyIG9ubHkgc3VwcG9ydHMgQlAsIHRoZSBHZW5lcmFs
IFB1cnBvc2UgaW5wdXRzIGFuZAo+ICt0b3VjaHNjcmVlbi4KCkl0IG1pZ2h0IGJlIGEgZ29vZCBp
ZGVhIHRvIGV4cGxhaW4gd2hhdCBCUCBpcy4uLiBNZSwgSSBoYXZlIG5vIGlkZWEuCgo+ICAKPiAr
U2VlIHRoZSBmb2xsb3dpbmcgdGFibGVzIGZvciB0aGUgbWVhbmluZyBvZiB0aGUgZGlmZmVyZW50
IGNoYW5uZWxzIGFuZCB0aGVpcgo+ICtjaGlwIGludGVybmFsIHNjYWxpbmc6Cj4gKwo+ICtNQzEz
NzgzOgo+ICBDaGFubmVsCVNpZ25hbAkJCQkJCUlucHV0IFJhbmdlCVNjYWxpbmcKPiAgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQo+ICAwCUJhdHRlcnkgVm9sdGFnZSAoQkFUVCkJCQkJMi41MCAtIDQu
NjVWCS0yLjQwVgo+IEBAIC0zNCw3ICszOCw3IEBAIENoYW5uZWwJU2lnbmFsCQkJCQkJSW5wdXQg
UmFuZ2UJU2NhbGluZwo+ICAyCUFwcGxpY2F0aW9uIFN1cHBseSAoQlApCQkJCTIuNTAgLSA0LjY1
VgktMi40MFYKPiAgMwlDaGFyZ2VyIFZvbHRhZ2UgKENIUkdSQVcpCQkJMCAtIDEwViAvCS81Cj4g
IAkJCQkJCQkwIC0gMjBWCQkvMTAKPiAtNAlDaGFyZ2VyIEN1cnJlbnQgKENIUkdJU05TUC1DSFJH
SVNOU04pCQktMC4yNVYgLSAwLjI1Vgl4NAo+ICs0CUNoYXJnZXIgQ3VycmVudCAoQ0hSR0lTTlNQ
LUNIUkdJU05TTikJCS0wLjI1IC0gMC4yNVYJeDQKPiAgNQlHZW5lcmFsIFB1cnBvc2UgQURJTjUg
LyBCYXR0ZXJ5IFBhY2sgVGhlcm1pc3RvcgkwIC0gMi4zMFYJTm8KPiAgNglHZW5lcmFsIFB1cnBv
c2UgQURJTjYgLyBCYWNrdXAgVm9sdGFnZSAoTElDRUxMKQkwIC0gMi4zMFYgLwlObyAvCj4gIAkJ
CQkJCQkxLjUwIC0gMy41MFYJLTEuMjBWCj4gQEAgLTQ4LDMgKzUyLDIzIEBAIENoYW5uZWwJU2ln
bmFsCQkJCQkJSW5wdXQgUmFuZ2UJU2NhbGluZwo+ICAxMwlHZW5lcmFsIFB1cnBvc2UgVFNYMiAv
IFRvdWNoc2NyZWVuIFgtcGxhdGUgMgkwIC0gMi4zMFYJTm8KPiAgMTQJR2VuZXJhbCBQdXJwb3Nl
IFRTWTEgLyBUb3VjaHNjcmVlbiBZLXBsYXRlIDEJMCAtIDIuMzBWCU5vCj4gIDE1CUdlbmVyYWwg
UHVycG9zZSBUU1kyIC8gVG91Y2hzY3JlZW4gWS1wbGF0ZSAyCTAgLSAyLjMwVglObwo+ICsKPiAr
TUMxMzg5MjoKPiArQ2hhbm5lbAlTaWduYWwJCQkJCQlJbnB1dCBSYW5nZQlTY2FsaW5nCj4gKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArMAlCYXR0ZXJ5IFZvbHRhZ2UgKEJBVFQpCQkJCTAgLSA0
LjhWCS8yCj4gKzEJQmF0dGVyeSBDdXJyZW50IChCQVRUIC0gQkFUVElTTlNDQykJCS02MCAtIDYw
IG1WCXgyMAo+ICsyCUFwcGxpY2F0aW9uIFN1cHBseSAoQlBTTlMpCQkJMCAtIDQuOFYJLzIKPiAr
MwlDaGFyZ2VyIFZvbHRhZ2UgKENIUkdSQVcpCQkJMCAtIDEyViAvCS81Cj4gKwkJCQkJCQkwIC0g
MjBWCQkvMTAKPiArNAlDaGFyZ2VyIEN1cnJlbnQgKENIUkdJU05TLUJQU05TKSAvCQktMC4zIC0g
MC4zViAvCXg0IC8KPiArCVRvdWNoc2NyZWVuIFgtcGxhdGUgMQkJCQkwIC0gMi40VglObwo+ICs1
CUdlbmVyYWwgUHVycG9zZSBBRElONSAvCUJhdHRlcnkgUGFjayBUaGVybWlzdG9yCTAgLSAyLjRW
CU5vCj4gKzYJR2VuZXJhbCBQdXJwb3NlIEFESU42IC8gQmFja3VwIFZvbHRhZ2UgKExJQ0VMTCkJ
MCAtIDIuNFYgLwlObwo+ICsJQmFja3VwIFZvbHRhZ2UgKExJQ0VMTCkgICAgICAgICAgICAgICAg
ICAgICAgICAJMCAtIDMuNlYJeDIvMwo+ICs3CUdlbmVyYWwgUHVycG9zZSBBRElONyAvIFVJRCAv
IERpZSBUZW1wZXJhdHVyZQkwIC0gMi40ViAvCU5vIC8KPiArCQkJCQkJCTAgLSA0LjhWCS8yCj4g
KzEyCVRvdWNoc2NyZWVuIFgtcGxhdGUgMQkJCQkwIC0gMi40VglObwo+ICsxMwlUb3VjaHNjcmVl
biBYLXBsYXRlIDIJCQkJMCAtIDIuNFYJTm8KPiArMTQJVG91Y2hzY3JlZW4gWS1wbGF0ZSAxCQkJ
CTAgLSAyLjRWCU5vCj4gKzE1CVRvdWNoc2NyZWVuIFktcGxhdGUgMgkJCQkwIC0gMi40VglObwo+
IGRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL0tjb25maWcgYi9kcml2ZXJzL2h3bW9uL0tjb25m
aWcKPiBpbmRleCAwYjYyYzNjLi5lM2UzYmMwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaHdtb24v
S2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwo+IEBAIC0xMzIyLDEwICsxMzIy
LDEwIEBAIGNvbmZpZyBTRU5TT1JTX0FQUExFU01DCj4gIAkgIHRoZSBhd2Vzb21lIHBvd2VyIG9m
IGFwcGxlc21jLgo+ICAKPiAgY29uZmlnIFNFTlNPUlNfTUMxMzc4M19BREMKPiAtICAgICAgICB0
cmlzdGF0ZSAiRnJlZXNjYWxlIE1DMTM3ODMgQURDIgo+IC0gICAgICAgIGRlcGVuZHMgb24gTUZE
X01DMTM3ODMKCkJUVywgaXNuJ3QgQ09ORklHX01GRF9NQzEzNzgzIHN1cHBvc2VkIHRvIGdvIGF3
YXkgbm93PyBJdCBzZWVtcyB0byBiZQphbiBhbGlhcyBmb3IgTUZEX01DMTNYWFggdG9kYXkuIDQg
ZHJpdmVycyBhcmUgc3RpbGwgdXNpbmcgaXQuLi4KCj4gKyAgICAgICAgdHJpc3RhdGUgIkZyZWVz
Y2FsZSBNQzEzNzgzL01DMTM4OTIgQURDIgo+ICsgICAgICAgIGRlcGVuZHMgb24gTUZEX01DMTNY
WFgKPiAgICAgICAgICBoZWxwCj4gLSAgICAgICAgICBTdXBwb3J0IGZvciB0aGUgQS9EIGNvbnZl
cnRlciBvbiBNQzEzNzgzIFBNSUMuCj4gKyAgICAgICAgICBTdXBwb3J0IGZvciB0aGUgQS9EIGNv
bnZlcnRlciBvbiBNQzEzNzgzIGFuZCBNQzEzODkyIFBNSUMuCj4gIAo+ICBpZiBBQ1BJCj4gIAo+
IGRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL21jMTM3ODMtYWRjLmMgYi9kcml2ZXJzL2h3bW9u
L21jMTM3ODMtYWRjLmMKPiBpbmRleCBlZjY1YWI1Li4wZDc5NmY3IDEwMDY0NAo+IC0tLSBhL2Ry
aXZlcnMvaHdtb24vbWMxMzc4My1hZGMuYwo+ICsrKyBiL2RyaXZlcnMvaHdtb24vbWMxMzc4My1h
ZGMuYwo+IEBAIC0xLDUgKzEsNSBAQAo+ICAvKgo+IC0gKiBEcml2ZXIgZm9yIHRoZSBGcmVlc2Nh
bGUgU2VtaWNvbmR1Y3RvciBNQzEzNzgzIGFkYy4KPiArICogRHJpdmVyIGZvciB0aGUgYWRjIG9u
IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIE1DMTM3ODMgYW5kIE1DMTM4OTIgUE1JQ3MuCgpXb3Vs
ZCBiZSBiZXR0ZXIgc3BlbGxlZCBBREMsIG1ldGhpbmtzLgoKPiAgICoKPiAgICogQ29weXJpZ2h0
IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgo+ICAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgU2FzY2hhIEhhdWVyLCBQZW5ndXRyb25peAo+
IEBAIC0xOCw3ICsxOCw3IEBACj4gICAqIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAwMjExMC0xMzAxIFVTQQo+ICAgKi8KPiAgCj4gLSNpbmNsdWRlIDxsaW51eC9tZmQvbWMx
Mzc4My5oPgo+ICsjaW5jbHVkZSA8bGludXgvbWZkL21jMTN4eHguaD4KPiAgI2luY2x1ZGUgPGxp
bnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ICAjaW5jbHVkZSA8bGludXgvaHdtb24tc3lzZnMuaD4K
PiAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+IEBAIC0yOCw3ICsyOCwxMSBAQAo+ICAjaW5j
bHVkZSA8bGludXgvaW5pdC5oPgo+ICAjaW5jbHVkZSA8bGludXgvZXJyLmg+Cj4gIAo+IC0jZGVm
aW5lIE1DMTM3ODNfQURDX05BTUUJIm1jMTM3ODMtYWRjIgo+ICsjZGVmaW5lIERSSVZFUl9OQU1F
CSJtYzEzNzgzLWFkYyIKPiArCj4gKy8qIHBsYXRmb3JtIGRldmljZSBpZCBkcml2ZXIgZGF0YSAq
Lwo+ICsjZGVmaW5lIE1DMTM3ODNfQURDXzE2Q0hBTlMJMQo+ICsjZGVmaW5lIE1DMTM3ODNfQURD
X0JQRElWMgkyCj4gIAo+ICBzdHJ1Y3QgbWMxMzc4M19hZGNfcHJpdiB7Cj4gIAlzdHJ1Y3QgbWMx
M3h4eCAqbWMxM3h4eDsKPiBAQCAtMzgsNyArNDIsMTMgQEAgc3RydWN0IG1jMTM3ODNfYWRjX3By
aXYgewo+ICBzdGF0aWMgc3NpemVfdCBtYzEzNzgzX2FkY19zaG93X25hbWUoc3RydWN0IGRldmlj
ZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZQo+ICAJCQkgICAgICAqZGV2YXR0ciwgY2hh
ciAqYnVmKQo+ICB7Cj4gLQlyZXR1cm4gc3ByaW50ZihidWYsICJtYzEzNzgzX2FkY1xuIik7Cj4g
KwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldik7
Cj4gKwlzc2l6ZV90IHJldCA9IHNwcmludGYoYnVmLCAiJXNcbiIsIHBkZXYtPm5hbWUpOwo+ICsK
PiArCWlmIChyZXQgPiA3ICYmIGJ1Zls3XSA9PSAnLScpCj4gKwkJYnVmWzddID0gJ18nOwo+ICsK
PiArCXJldHVybiByZXQ7Cj4gIH0KCkkgc2hhcmUgR3VlbnRlcidzIGNvbmNlcm5zIGFib3V0IHRo
aXMgY29kZS4gVGhpcyBpcyBzaW1wbHkgdG9vIGZyYWdpbGUuClN0b3JpbmcgdGhlIHJpZ2h0IHN0
cmluZywgb3IgYSBwb2ludGVyIHRoZXJldG8sIGluIHN0cnVjdAptYzEzNzgzX2FkY19wcml2IHdv
dWxkIGJlIGJldHRlci4gWW91ciBhcmd1bWVudCBhYm91dCB0aGUgd2FzdGVkIG1lbW9yeQpzaXpl
IGRvZXNuJ3QgcmVhbGx5IGhvbGQsIHdlJ3JlIHRhbGtpbmcgYWJvdXQgMzAgYnl0ZXMgaGVyZSwg
dG9wcy4KCk9yIGlmIHlvdSByZWFsbHkgd2FudCB0byBkeW5hbWljYWxseSB0dXJuICItIiBpbnRv
ICJfIiB0aGVuIHlvdSBzaG91bGQKZG8gdGhhdCBpbiBhIHJvYnVzdCB3YXksIGZvciBleGFtcGxl
OgoKCWNoYXIgKmRhc2g7CgoJZGFzaCA9IHN0cmNocihidWYsICctJyk7CglpZiAoZGFzaCkKCQkq
ZGFzaCA9ICdfJzsKClRoYXQgd2F5IHlvdSBubyBsb25nZXIgZGVwZW5kIG9uIHRoZSBsZW5ndGgg
b2YgdGhlIHN0cmluZyBub3IgdGhlCnBvc2l0aW9uIG9mIHRoZSBkYXNoLgoKQXMgYSBzaWRlIG5v
dGUsIEknbSBub3QgcXVpdGUgc3VyZSB3aHkgdGhlIF9hZGMgc3VmZml4IHdhcyBwcmVzZXJ2ZWQg
aW4KdGhlIG5hbWUgYXR0cmlidXRlIGluIHRoZSBmaXJzdCBwbGFjZS4gR2l2ZW4gdGhhdCB0aGlz
IGlzIGEgaHdtb24KZGV2aWNlIGF0dHJpYnV0ZSwgaXQgc2VlbXMgcmVkdW5kYW50LgoKQXMgYW5v
dGhlciBzaWRlIG5vdGUsIGlmIHlvdSByZWFsbHkgY2FyZSBhYm91dCBtZW1vcnkgY29uc3VtcHRp
b24sIHRoZW4KeW91IGNvdWxkIGNhbGwgc3lzZnNfcmVtb3ZlX2dyb3VwKCkgdW5jb25kaXRpb25h
bGx5IGV2ZXJ5d2hlcmUsIGFzIGl0J3MKT0sgdG8gcmVtb3ZlIGZpbGVzIHdoaWNoIGRvIG5vdCBl
eGlzdC4gVGhpcyB3b3VsZCBsZXQgeW91IG1hcmsKbWMxMzc4M19hZGNfdXNlX3RvdWNoc2NyZWVu
KCkgYXMgX19pbml0LiBJdCBtYXkgYWxzbyBtYWtlIHNlbnNlIHRvIG1vdmUKZmlsZSByZW1vdmFs
IHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24gdG8gYXZvaWQgY29kZSByZWR1bmRhbmN5IGJldHdlZW4K
bWMxMzc4M19hZGNfcHJvYmUoKSBhbmQgbWMxMzc4M19hZGNfcmVtb3ZlKCkgKG9yIGV2ZW4gYWRq
dXN0Cm1jMTM3ODNfYWRjX3JlbW92ZSgpIHNvIHRoYXQgaXQgY2FuIGJlIGNhbGxlZCBzdHJhaWdo
dCBmcm9tCm1jMTM3ODNfYWRjX3Byb2JlKCkncyBlcnJvciBwYXRoLgoKPiAgCj4gIHN0YXRpYyBp
bnQgbWMxMzc4M19hZGNfcmVhZChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gQEAgLTY4LDE2ICs3OCwy
MSBAQCBzdGF0aWMgc3NpemVfdCBtYzEzNzgzX2FkY19yZWFkX2JwKHN0cnVjdCBkZXZpY2UgKmRl
diwKPiAgCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZGV2YXR0ciwgY2hhciAqYnVmKQo+ICB7
Cj4gIAl1bnNpZ25lZCB2YWw7Cj4gKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2ID0gdG9f
cGxhdGZvcm1fZGV2aWNlKGRldik7Cj4gKwlrZXJuZWxfdWxvbmdfdCBkcml2ZXJfZGF0YSA9IHBs
YXRmb3JtX2dldF9kZXZpY2VfaWQocGRldiktPmRyaXZlcl9kYXRhOwo+ICAJaW50IHJldCA9IG1j
MTM3ODNfYWRjX3JlYWQoZGV2LCBkZXZhdHRyLCAmdmFsKTsKPiAgCj4gIAlpZiAocmV0KQo+ICAJ
CXJldHVybiByZXQ7Cj4gIAo+IC0JLyoKPiAtCSAqIEJQIChjaGFubmVsIDIpIHJlcG9ydHMgd2l0
aCBvZmZzZXQgMi40ViB0byB0aGUgYWN0dWFsIHZhbHVlIHRvIGZpdAo+IC0JICogdGhlIGlucHV0
IHJhbmdlIG9mIHRoZSBBREMuICB1bml0ID0gMi4yNW1WID0gOS80IG1WLgo+IC0JICovCj4gLQl2
YWwgPSBESVZfUk9VTkRfQ0xPU0VTVCh2YWwgKiA5LCA0KSArIDI0MDA7Cj4gKwlpZiAoZHJpdmVy
X2RhdGEgJiBNQzEzNzgzX0FEQ19CUERJVjIpCj4gKwkJdmFsID0gRElWX1JPVU5EX0NMT1NFU1Qo
dmFsICogOSwgMik7Cj4gKwllbHNlCj4gKwkJLyoKPiArCQkgKiBCUCAoY2hhbm5lbCAyKSByZXBv
cnRzIHdpdGggb2Zmc2V0IDIuNFYgdG8gdGhlIGFjdHVhbCB2YWx1ZQo+ICsJCSAqIHRvIGZpdCB0
aGUgaW5wdXQgcmFuZ2Ugb2YgdGhlIEFEQy4gIHVuaXQgPSAyLjI1bVYgPSA5LzQgbVYuCj4gKwkJ
ICovCj4gKwkJdmFsID0gRElWX1JPVU5EX0NMT1NFU1QodmFsICogOSwgNCkgKyAyNDAwOwo+ICAK
PiAgCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiV1XG4iLCB2YWwpOwo+ICB9Cj4gQEAgLTExNCwxMiAr
MTI5LDIxIEBAIHN0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFIoaW4xM19pbnB1dCwgU19JUlVHTywg
bWMxMzc4M19hZGNfcmVhZF9ncCwgTlVMTCwgMTMpOwo+ICBzdGF0aWMgU0VOU09SX0RFVklDRV9B
VFRSKGluMTRfaW5wdXQsIFNfSVJVR08sIG1jMTM3ODNfYWRjX3JlYWRfZ3AsIE5VTEwsIDE0KTsK
PiAgc3RhdGljIFNFTlNPUl9ERVZJQ0VfQVRUUihpbjE1X2lucHV0LCBTX0lSVUdPLCBtYzEzNzgz
X2FkY19yZWFkX2dwLCBOVUxMLCAxNSk7Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAq
bWMxMzc4M19hdHRyW10gPSB7Cj4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICptYzEzNzgzX2F0
dHJfYmFzZVtdID0gewo+ICAJJmRldl9hdHRyX25hbWUuYXR0ciwKPiAgCSZzZW5zb3JfZGV2X2F0
dHJfaW4yX2lucHV0LmRldl9hdHRyLmF0dHIsCj4gIAkmc2Vuc29yX2Rldl9hdHRyX2luNV9pbnB1
dC5kZXZfYXR0ci5hdHRyLAo+ICAJJnNlbnNvcl9kZXZfYXR0cl9pbjZfaW5wdXQuZGV2X2F0dHIu
YXR0ciwKPiAgCSZzZW5zb3JfZGV2X2F0dHJfaW43X2lucHV0LmRldl9hdHRyLmF0dHIsCj4gKwlO
VUxMCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBtYzEz
NzgzX2dyb3VwX2Jhc2UgPSB7Cj4gKwkuYXR0cnMgPSBtYzEzNzgzX2F0dHJfYmFzZSwKPiArfTsK
PiArCj4gKy8qIHRoZXNlIGFyZSBvbmx5IHVzZWQgaWYgTUMxMzc4M19BRENfMTZDSEFOUyBpcyBw
cm92aWRlZCBpbiBkcml2ZXIgZGF0YSAqLwo+ICtzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqbWMx
Mzc4M19hdHRyXzE2Y2hhbltdID0gewoKMTZDSEFOUyB2cy4gMTZjaGFuLiBXb3VsZCBiZSBnb29k
IHRvIGRlY2lkZSBmb3IgYSBzcGVsbGluZyBhbmQgc3RpY2sgdG8KaXQuCgo+ICAJJnNlbnNvcl9k
ZXZfYXR0cl9pbjhfaW5wdXQuZGV2X2F0dHIuYXR0ciwKPiAgCSZzZW5zb3JfZGV2X2F0dHJfaW45
X2lucHV0LmRldl9hdHRyLmF0dHIsCj4gIAkmc2Vuc29yX2Rldl9hdHRyX2luMTBfaW5wdXQuZGV2
X2F0dHIuYXR0ciwKPiBAQCAtMTI3LDggKzE1MSw4IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl
ICptYzEzNzgzX2F0dHJbXSA9IHsKPiAgCU5VTEwKPiAgfTsKPiAgCj4gLXN0YXRpYyBjb25zdCBz
dHJ1Y3QgYXR0cmlidXRlX2dyb3VwIG1jMTM3ODNfZ3JvdXAgPSB7Cj4gLQkuYXR0cnMgPSBtYzEz
NzgzX2F0dHIsCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIG1jMTM3ODNf
Z3JvdXBfMTZjaGFuID0gewo+ICsJLmF0dHJzID0gbWMxMzc4M19hdHRyXzE2Y2hhbiwKPiAgfTsK
PiAgCj4gIC8qIGxhc3QgZm91ciBjaGFubmVscyBtYXkgYmUgb2NjdXBpZWQgYnkgdGhlIHRvdWNo
c2NyZWVuICovCj4gQEAgLTE1Niw2ICsxODAsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBtYzEzNzgz
X2FkY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICB7Cj4gIAlzdHJ1Y3Qg
bWMxMzc4M19hZGNfcHJpdiAqcHJpdjsKPiAgCWludCByZXQ7Cj4gKwlrZXJuZWxfdWxvbmdfdCBk
cml2ZXJfZGF0YSA9IHBsYXRmb3JtX2dldF9kZXZpY2VfaWQocGRldiktPmRyaXZlcl9kYXRhOwo+
ICAKPiAgCXByaXYgPSBremFsbG9jKHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpOwo+ICAJaWYg
KCFwcml2KQo+IEBAIC0xNjYsMTQgKzE5MSwyMiBAQCBzdGF0aWMgaW50IF9faW5pdCBtYzEzNzgz
X2FkY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJcGxhdGZvcm1fc2V0
X2RydmRhdGEocGRldiwgcHJpdik7Cj4gIAo+ICAJLyogUmVnaXN0ZXIgc3lzZnMgaG9va3MgKi8K
PiAtCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmcGRldi0+ZGV2LmtvYmosICZtYzEzNzgzX2dy
b3VwKTsKPiArCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmcGRldi0+ZGV2LmtvYmosICZtYzEz
NzgzX2dyb3VwX2Jhc2UpOwo+ICAJaWYgKHJldCkKPiAtCQlnb3RvIG91dF9lcnJfY3JlYXRlMTsK
PiArCQlnb3RvIG91dF9lcnJfY3JlYXRlX2Jhc2U7Cj4gIAo+IC0JaWYgKCFtYzEzNzgzX2FkY191
c2VfdG91Y2hzY3JlZW4ocGRldikpIHsKPiAtCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnBk
ZXYtPmRldi5rb2JqLCAmbWMxMzc4M19ncm91cF90cyk7Cj4gKwlpZiAoZHJpdmVyX2RhdGEgJiBN
QzEzNzgzX0FEQ18xNkNIQU5TKSB7Cj4gKwkJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZwZGV2
LT5kZXYua29iaiwKPiArCQkJCSZtYzEzNzgzX2dyb3VwXzE2Y2hhbik7Cj4gIAkJaWYgKHJldCkK
PiAtCQkJZ290byBvdXRfZXJyX2NyZWF0ZTI7Cj4gKwkJCWdvdG8gb3V0X2Vycl9jcmVhdGVfMTZj
aGFuOwo+ICsKPiArCQlpZiAoIW1jMTM3ODNfYWRjX3VzZV90b3VjaHNjcmVlbihwZGV2KSkgewo+
ICsJCQlyZXQgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnBkZXYtPmRldi5rb2JqLAo+ICsJCQkJCSZt
YzEzNzgzX2dyb3VwX3RzKTsKPiArCQkJaWYgKHJldCkKPiArCQkJCWdvdG8gb3V0X2Vycl9jcmVh
dGVfdHM7Cj4gKwkJfQo+ICAJfQo+ICAKPiAgCXByaXYtPmh3bW9uX2RldiA9IGh3bW9uX2Rldmlj
ZV9yZWdpc3RlcigmcGRldi0+ZGV2KTsKPiBAQCAtMTg0LDE3ICsyMTcsMjEgQEAgc3RhdGljIGlu
dCBfX2luaXQgbWMxMzc4M19hZGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK
PiAgCQlnb3RvIG91dF9lcnJfcmVnaXN0ZXI7Cj4gIAl9Cj4gIAo+IC0KPiAgCXJldHVybiAwOwo+
ICAKPiAgb3V0X2Vycl9yZWdpc3RlcjoKPiAgCj4gLQlpZiAoIW1jMTM3ODNfYWRjX3VzZV90b3Vj
aHNjcmVlbihwZGV2KSkKPiAtCQlzeXNmc19yZW1vdmVfZ3JvdXAoJnBkZXYtPmRldi5rb2JqLCAm
bWMxMzc4M19ncm91cF90cyk7Cj4gLW91dF9lcnJfY3JlYXRlMjoKPiArCWlmIChkcml2ZXJfZGF0
YSAmIE1DMTM3ODNfQURDXzE2Q0hBTlMpIHsKPiArCQlpZiAoIW1jMTM3ODNfYWRjX3VzZV90b3Vj
aHNjcmVlbihwZGV2KSkKPiArCQkJc3lzZnNfcmVtb3ZlX2dyb3VwKCZwZGV2LT5kZXYua29iaiwg
Jm1jMTM3ODNfZ3JvdXBfdHMpOwo+ICtvdXRfZXJyX2NyZWF0ZV90czoKPiArCj4gKwkJc3lzZnNf
cmVtb3ZlX2dyb3VwKCZwZGV2LT5kZXYua29iaiwgJm1jMTM3ODNfZ3JvdXBfMTZjaGFuKTsKPiAr
CX0KPiArb3V0X2Vycl9jcmVhdGVfMTZjaGFuOgo+ICAKPiAtCXN5c2ZzX3JlbW92ZV9ncm91cCgm
cGRldi0+ZGV2LmtvYmosICZtYzEzNzgzX2dyb3VwKTsKPiAtb3V0X2Vycl9jcmVhdGUxOgo+ICsJ
c3lzZnNfcmVtb3ZlX2dyb3VwKCZwZGV2LT5kZXYua29iaiwgJm1jMTM3ODNfZ3JvdXBfYmFzZSk7
Cj4gK291dF9lcnJfY3JlYXRlX2Jhc2U6Cj4gIAo+ICAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRl
diwgTlVMTCk7Cj4gIAlrZnJlZShwcml2KTsKPiBAQCAtMjA1LDEzICsyNDIsMTggQEAgb3V0X2Vy
cl9jcmVhdGUxOgo+ICBzdGF0aWMgaW50IF9fZGV2ZXhpdCBtYzEzNzgzX2FkY19yZW1vdmUoc3Ry
dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgewo+ICAJc3RydWN0IG1jMTM3ODNfYWRjX3By
aXYgKnByaXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKPiArCWtlcm5lbF91bG9uZ190
IGRyaXZlcl9kYXRhID0gcGxhdGZvcm1fZ2V0X2RldmljZV9pZChwZGV2KS0+ZHJpdmVyX2RhdGE7
Cj4gIAo+ICAJaHdtb25fZGV2aWNlX3VucmVnaXN0ZXIocHJpdi0+aHdtb25fZGV2KTsKPiAgCj4g
LQlpZiAoIW1jMTM3ODNfYWRjX3VzZV90b3VjaHNjcmVlbihwZGV2KSkKPiAtCQlzeXNmc19yZW1v
dmVfZ3JvdXAoJnBkZXYtPmRldi5rb2JqLCAmbWMxMzc4M19ncm91cF90cyk7Cj4gKwlpZiAoZHJp
dmVyX2RhdGEgJiBNQzEzNzgzX0FEQ18xNkNIQU5TKSB7Cj4gKwkJaWYgKCFtYzEzNzgzX2FkY191
c2VfdG91Y2hzY3JlZW4ocGRldikpCj4gKwkJCXN5c2ZzX3JlbW92ZV9ncm91cCgmcGRldi0+ZGV2
LmtvYmosICZtYzEzNzgzX2dyb3VwX3RzKTsKPiAgCj4gLQlzeXNmc19yZW1vdmVfZ3JvdXAoJnBk
ZXYtPmRldi5rb2JqLCAmbWMxMzc4M19ncm91cCk7Cj4gKwkJc3lzZnNfcmVtb3ZlX2dyb3VwKCZw
ZGV2LT5kZXYua29iaiwgJm1jMTM3ODNfZ3JvdXBfMTZjaGFuKTsKPiArCX0KPiArCj4gKwlzeXNm
c19yZW1vdmVfZ3JvdXAoJnBkZXYtPmRldi5rb2JqLCAmbWMxMzc4M19ncm91cF9iYXNlKTsKPiAg
Cj4gIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKPiAgCWtmcmVlKHByaXYpOwo+
IEBAIC0yMTksMTIgKzI2MSwyNiBAQCBzdGF0aWMgaW50IF9fZGV2ZXhpdCBtYzEzNzgzX2FkY19y
ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCXJldHVybiAwOwo+ICB9Cj4g
IAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBtYzEzNzgzX2FkY19p
ZHRhYmxlW10gPSB7Cj4gKwl7Cj4gKwkJLm5hbWUgPSAibWMxMzc4My1hZGMiLAo+ICsJCS5kcml2
ZXJfZGF0YSA9IE1DMTM3ODNfQURDXzE2Q0hBTlMsCj4gKwl9LCB7Cj4gKwkJLm5hbWUgPSAibWMx
Mzg5Mi1hZGMiLAo+ICsJCS5kcml2ZXJfZGF0YSA9IE1DMTM3ODNfQURDX0JQRElWMiwKPiArCX0s
IHsKPiArCQkvKiBzZW50aW5lbCAqLwo+ICsJfQo+ICt9Owo+ICtNT0RVTEVfREVWSUNFX1RBQkxF
KHBsYXRmb3JtLCBtYzEzNzgzX2FkY19pZHRhYmxlKTsKPiArCj4gIHN0YXRpYyBzdHJ1Y3QgcGxh
dGZvcm1fZHJpdmVyIG1jMTM3ODNfYWRjX2RyaXZlciA9IHsKPiAtCS5yZW1vdmUgCT0gX19kZXZl
eGl0X3AobWMxMzc4M19hZGNfcmVtb3ZlKSwKPiArCS5yZW1vdmUJCT0gX19kZXZleGl0X3AobWMx
Mzc4M19hZGNfcmVtb3ZlKSwKPiAgCS5kcml2ZXIJCT0gewo+ICAJCS5vd25lcgk9IFRISVNfTU9E
VUxFLAo+IC0JCS5uYW1lCT0gTUMxMzc4M19BRENfTkFNRSwKPiArCQkubmFtZQk9IERSSVZFUl9O
QU1FLAo+ICAJfSwKPiArCS5pZF90YWJsZQk9IG1jMTM3ODNfYWRjX2lkdGFibGUsCj4gIH07Cj4g
IAo+ICBzdGF0aWMgaW50IF9faW5pdCBtYzEzNzgzX2FkY19pbml0KHZvaWQpCj4gQEAgLTI0Myw0
ICsyOTksMyBAQCBtb2R1bGVfZXhpdChtYzEzNzgzX2FkY19leGl0KTsKPiAgTU9EVUxFX0RFU0NS
SVBUSU9OKCJNQzEzNzgzIEFEQyBkcml2ZXIiKTsKPiAgTU9EVUxFX0FVVEhPUigiTHVvdGFvIEZ1
IDxsLmZ1QHBlbmd1dHJvbml4LmRlPiIpOwo+ICBNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gLU1P
RFVMRV9BTElBUygicGxhdGZvcm06IiBNQzEzNzgzX0FEQ19OQU1FKTsKCldpbGwgeW91IHJlc2Vu
ZCBhbiB1cGRhdGVkIHBhdGNoLCBvciBzaG91bGQgSSB1cGRhdGUgaXQgbXlzZWxmIHdpdGggdGhl
CmNoYW5nZXMgYWJvdmU/CgotLSAKSmVhbiBEZWx2YXJlCgpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxpbmcgbGlzdApsbS1zZW5z
b3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3JzLm9yZy9tYWlsbWFuL2xp
c3RpbmZvL2xtLXNlbnNvcnM
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (4 preceding siblings ...)
2012-01-27 16:53 ` Jean Delvare
@ 2012-01-27 19:48 ` Uwe Kleine-König
2012-01-27 21:22 ` Guenter Roeck
` (7 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Uwe Kleine-König @ 2012-01-27 19:48 UTC (permalink / raw)
To: lm-sensors
Hello Jean,
first of all thanks for your thoughts.
On Fri, Jan 27, 2012 at 05:53:29PM +0100, Jean Delvare wrote:
> > diff --git a/Documentation/hwmon/mc13783-adc b/Documentation/hwmon/mc13783-adc
> > index 044531a..8b717f5 100644
> > --- a/Documentation/hwmon/mc13783-adc
> > +++ b/Documentation/hwmon/mc13783-adc
> > @@ -5,6 +5,9 @@ Supported chips:
> > * Freescale Atlas MC13783
> > Prefix: 'mc13783_adc'
> > Datasheet: http://www.freescale.com/files/rf_if/doc/data_sheet/MC13783.pdf?fsrch=1
> > + * Freescale Atlas MC13892
> > + Prefix: 'mc13892_adc'
> > + Datasheet: http://cache.freescale.com/files/analog/doc/data_sheet/MC13892.pdf?fsrch=1&sr=1
> >
> > Authors:
> > Sascha Hauer <s.hauer@pengutronix.de>
> > @@ -13,20 +16,21 @@ Authors:
> > Description
> > -----------
> >
> > -The Freescale MC13783 is a Power Management and Audio Circuit. Among
> > -other things it contains a 10-bit A/D converter. The converter has 16
> > -channels which can be used in different modes.
> > -The A/D converter has a resolution of 2.25mV. Channels 0-4 have
> > -a dedicated meaning with chip internal scaling applied. Channels 5-7
> > -can be used as general purpose inputs or alternatively in a dedicated
> > -mode. Channels 12-15 are occupied by the touchscreen if it's active.
> > +The Freescale MC13783 and MC13892 are Power Management and Audio Circuits.
> > +Among other things they contain a 10-bit A/D converter. The converter has 16
> > +(MC13783) resp. 12 (MC13892) channels which can be used in different modes. The
> > +A/D converter has a resolution of 2.25mV.
> >
> > -Currently the driver only supports channels 2 and 5-15 with no alternative
> > -modes for channels 5-7.
> > +Some channels can be used as General Purpose inputs or in a dedicated mode with
> > +a chip internal scaling applied .
> >
> > -See this table for the meaning of the different channels and their chip
> > -internal scaling:
> > +Currently the driver only supports BP, the General Purpose inputs and
> > +touchscreen.
>
> It might be a good idea to explain what BP is... Me, I have no idea.
It's in the table below and means the "Application Supply" channel. No
idea what the Freescale guys thought it should stand for.
> > +See the following tables for the meaning of the different channels and their
> > +chip internal scaling:
> > +
> > +MC13783:
> > Channel Signal Input Range Scaling
> > -------------------------------------------------------------------------------
> > 0 Battery Voltage (BATT) 2.50 - 4.65V -2.40V
> > @@ -34,7 +38,7 @@ Channel Signal Input Range Scaling
> > 2 Application Supply (BP) 2.50 - 4.65V -2.40V
> > 3 Charger Voltage (CHRGRAW) 0 - 10V / /5
> > 0 - 20V /10
> > -4 Charger Current (CHRGISNSP-CHRGISNSN) -0.25V - 0.25V x4
> > +4 Charger Current (CHRGISNSP-CHRGISNSN) -0.25 - 0.25V x4
> > 5 General Purpose ADIN5 / Battery Pack Thermistor 0 - 2.30V No
> > 6 General Purpose ADIN6 / Backup Voltage (LICELL) 0 - 2.30V / No /
> > 1.50 - 3.50V -1.20V
> > @@ -48,3 +52,23 @@ Channel Signal Input Range Scaling
> > 13 General Purpose TSX2 / Touchscreen X-plate 2 0 - 2.30V No
> > 14 General Purpose TSY1 / Touchscreen Y-plate 1 0 - 2.30V No
> > 15 General Purpose TSY2 / Touchscreen Y-plate 2 0 - 2.30V No
> > +
> > +MC13892:
> > +Channel Signal Input Range Scaling
> > +-------------------------------------------------------------------------------
> > +0 Battery Voltage (BATT) 0 - 4.8V /2
> > +1 Battery Current (BATT - BATTISNSCC) -60 - 60 mV x20
> > +2 Application Supply (BPSNS) 0 - 4.8V /2
> > +3 Charger Voltage (CHRGRAW) 0 - 12V / /5
> > + 0 - 20V /10
> > +4 Charger Current (CHRGISNS-BPSNS) / -0.3 - 0.3V / x4 /
> > + Touchscreen X-plate 1 0 - 2.4V No
> > +5 General Purpose ADIN5 / Battery Pack Thermistor 0 - 2.4V No
> > +6 General Purpose ADIN6 / Backup Voltage (LICELL) 0 - 2.4V / No
> > + Backup Voltage (LICELL) 0 - 3.6V x2/3
> > +7 General Purpose ADIN7 / UID / Die Temperature 0 - 2.4V / No /
> > + 0 - 4.8V /2
> > +12 Touchscreen X-plate 1 0 - 2.4V No
> > +13 Touchscreen X-plate 2 0 - 2.4V No
> > +14 Touchscreen Y-plate 1 0 - 2.4V No
> > +15 Touchscreen Y-plate 2 0 - 2.4V No
> > diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
> > index 0b62c3c..e3e3bc0 100644
> > --- a/drivers/hwmon/Kconfig
> > +++ b/drivers/hwmon/Kconfig
> > @@ -1322,10 +1322,10 @@ config SENSORS_APPLESMC
> > the awesome power of applesmc.
> >
> > config SENSORS_MC13783_ADC
> > - tristate "Freescale MC13783 ADC"
> > - depends on MFD_MC13783
>
> BTW, isn't CONFIG_MFD_MC13783 supposed to go away now? It seems to be
> an alias for MFD_MC13XXX today. 4 drivers are still using it...
>
> > + tristate "Freescale MC13783/MC13892 ADC"
> > + depends on MFD_MC13XXX
Yeah, that's why I drop MFD_MC13783 in favour of MFD_MC13XXX :-)
> > help
> > - Support for the A/D converter on MC13783 PMIC.
> > + Support for the A/D converter on MC13783 and MC13892 PMIC.
> >
> > if ACPI
> >
> > diff --git a/drivers/hwmon/mc13783-adc.c b/drivers/hwmon/mc13783-adc.c
> > index ef65ab5..0d796f7 100644
> > --- a/drivers/hwmon/mc13783-adc.c
> > +++ b/drivers/hwmon/mc13783-adc.c
> > @@ -1,5 +1,5 @@
> > /*
> > - * Driver for the Freescale Semiconductor MC13783 adc.
> > + * Driver for the adc on Freescale Semiconductor MC13783 and MC13892 PMICs.
>
> Would be better spelled ADC, methinks.
OK.
> > *
> > * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
> > * Copyright (C) 2009 Sascha Hauer, Pengutronix
> > @@ -18,7 +18,7 @@
> > * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
> > */
> >
> > -#include <linux/mfd/mc13783.h>
> > +#include <linux/mfd/mc13xxx.h>
> > #include <linux/platform_device.h>
> > #include <linux/hwmon-sysfs.h>
> > #include <linux/kernel.h>
> > @@ -28,7 +28,11 @@
> > #include <linux/init.h>
> > #include <linux/err.h>
> >
> > -#define MC13783_ADC_NAME "mc13783-adc"
> > +#define DRIVER_NAME "mc13783-adc"
> > +
> > +/* platform device id driver data */
> > +#define MC13783_ADC_16CHANS 1
> > +#define MC13783_ADC_BPDIV2 2
> >
> > struct mc13783_adc_priv {
> > struct mc13xxx *mc13xxx;
> > @@ -38,7 +42,13 @@ struct mc13783_adc_priv {
> > static ssize_t mc13783_adc_show_name(struct device *dev, struct device_attribute
> > *devattr, char *buf)
> > {
> > - return sprintf(buf, "mc13783_adc\n");
> > + struct platform_device *pdev = to_platform_device(dev);
> > + ssize_t ret = sprintf(buf, "%s\n", pdev->name);
> > +
> > + if (ret > 7 && buf[7] == '-')
> > + buf[7] = '_';
> > +
> > + return ret;
> > }
>
> I share Guenter's concerns about this code. This is simply too fragile.
> Storing the right string, or a pointer thereto, in struct
> mc13783_adc_priv would be better. Your argument about the wasted memory
> size doesn't really hold, we're talking about 30 bytes here, tops.
OK.
> Or if you really want to dynamically turn "-" into "_" then you should
> do that in a robust way, for example:
>
> char *dash;
>
> dash = strchr(buf, '-');
> if (dash)
> *dash = '_';
>
> That way you no longer depend on the length of the string nor the
> position of the dash.
>
> As a side note, I'm not quite sure why the _adc suffix was preserved in
> the name attribute in the first place. Given that this is a hwmon
> device attribute, it seems redundant.
I'll drop it.
> As another side note, if you really care about memory consumption, then
> you could call sysfs_remove_group() unconditionally everywhere, as it's
> OK to remove files which do not exist. This would let you mark
> mc13783_adc_use_touchscreen() as __init. It may also make sense to move
> file removal to a separate function to avoid code redundancy between
> mc13783_adc_probe() and mc13783_adc_remove() (or even adjust
> mc13783_adc_remove() so that it can be called straight from
> mc13783_adc_probe()'s error path.
>
> [...]
> > +/* these are only used if MC13783_ADC_16CHANS is provided in driver data */
> > +static struct attribute *mc13783_attr_16chan[] = {
>
> 16CHANS vs. 16chan. Would be good to decide for a spelling and stick to
> it.
I guess you only mean the 's' and not capitalisation?
> [...]
> Will you resend an updated patch, or should I update it myself with the
> changes above?
I will send you an update later today with your comments addressed.
Thanks
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (5 preceding siblings ...)
2012-01-27 19:48 ` Uwe Kleine-König
@ 2012-01-27 21:22 ` Guenter Roeck
2012-01-27 21:28 ` Jean Delvare
` (6 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Guenter Roeck @ 2012-01-27 21:22 UTC (permalink / raw)
To: lm-sensors
T24gRnJpLCAyMDEyLTAxLTI3IGF0IDExOjUzIC0wNTAwLCBKZWFuIERlbHZhcmUgd3JvdGU6Cj4g
SGkgVXdlLAo+IAo+IE9uIFR1ZSwgMjcgU2VwIDIwMTEgMjM6MTY6MDkgKzAyMDAsIFV3ZSBLbGVp
bmUtS8O2bmlnIHdyb3RlOgo+ID4gQmFzZWQgb24gYSBwYXRjaCBieSBEYXZpZCBKYW5kZXIgdGhh
dCBtb3N0bHkgZGlkIHMvbWMxMzc4My9tYzEzeHh4Lwo+ID4KPiA+IENjOiBEYXZpZCBKYW5kZXIg
PGRhdmlkLmphbmRlckBwcm90b25pYy5ubD4KPiA+IFNpZ25lZC1vZmYtYnk6IFV3ZSBLbGVpbmUt
S8O2bmlnIDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+Cj4gPiAtLS0KPiA+IGNoYW5n
ZXMgc2luY2UgKGltcGxpY2l0KSB2MToKPiA+ICAtIHVwZGF0ZSBkb2N1bWVudGF0aW9uCj4gPiAg
LSB1bmRvIGRyaXZlciByZW5hbWluZwo+ID4gIC0gZml4IHNob3dfbmFtZSBjYWxsYmFjayAobm90
IDEwMCUgc3VyZSBpdCBpcyBjb3JyZWN0IHRvIGdpdmUgYSBkaWZmZXJlbnQgbmFtZQo+ID4gICAg
b24gbWMxMzg5Mi4gSSB0aGluayBuYW1lIGNvbnRhaW5zIHRoZSBwcmVmaXggZG9jdW1lbnRlZCBp
bgo+ID4gICAgRG9jdW1lbnRhdGlvbi9od21vbi9tYzEzNzgzLWFkYz8hKQo+ID4gIC0gaW1wbGVt
ZW50IHNvbWUgZGlmZmVyZW5jZXMgYmV0d2VlbiBtYzEzNzgzIGFuZCBtYzEzODkyIHRoYXQgSSBu
b3RpY2VkIHdoZW4KPiA+ICAgIHVwZGF0aW5nIHRoZSBkb2NzCj4gPiAgICAtIGRpZmZlcmVudCBz
Y2FsaW5nIGZvciBicCBjaGFubmVsCj4gPiAgICAtIG5vIGdlbmVyYWwgcHVycG9zZSBjaGFubmVs
cyA4LTE1IG9uIG1jMTM4OTIKPiA+ICAtIHRha2Ugb3ZlciBhdXRob3JzaGlwIGFzIHRoZSBwYXRj
aCBnb3QgbXVjaCBtb3JlIGNvbXBsaWNhdGVkIG5vdyBjb21wYXJlZCB0bwo+ID4gICAgRGF2aWQn
cyBvcmlnaW5hbC4KPiA+Cj4gPiAgRG9jdW1lbnRhdGlvbi9od21vbi9tYzEzNzgzLWFkYyB8ICAg
NDggKysrKysrKysrKysrLS0tLQo+ID4gIGRyaXZlcnMvaHdtb24vS2NvbmZpZyAgICAgICAgICAg
fCAgICA2ICstCj4gPiAgZHJpdmVycy9od21vbi9tYzEzNzgzLWFkYy5jICAgICB8ICAxMTMgKysr
KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCj4gPiAgMyBmaWxlcyBjaGFuZ2Vk
LCAxMjMgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCj4gCj4gQXMgbWVyZ2luZyB0aGlz
IGdvdCBzdHVjayBhZnRlciBHdWVudGVyJ3MgbGFzdCByZXZpZXcgKHRoYW5rcyBHdWVudGVyLAo+
IEJUVykgSSBhbSBwaWNraW5nIHVwIGZyb20gdGhlcmUgYW5kIGhvcGVmdWxseSB3ZSBjYW4gZ2V0
IHRoaXMgdXBzdHJlYW0uCj4gSGVyZSBJIGdvIHdpdGggbXkgcmV2aWV3LCBtb3N0bHkgbWlub3Ig
dGhpbmdzOgo+IApJIGhhdmUgYmVlbiBhc2tlZCBhYm91dCBhZGRpbmcgc3VwcG9ydCBmb3IgQURD
IGNoYW5uZWxzIDAsIDEsIDMsIDQsIGFzCndlbGwgYXMgdGhlIG5vbi1HUCB1c2FnZSBvZiBjaGFu
bmVscyA1IHRvIDcuCgpEb2VzIGFueW9uZSBoYXBwZW4gdG8ga25vdy9yZWNhbGwgd2h5IHRob3Nl
IGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoZQpjdXJyZW50IGRyaXZlciA/CgpUaGFua3MsCkd1ZW50
ZXIKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbG0t
c2Vuc29ycyBtYWlsaW5nIGxpc3QKbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwpodHRwOi8vbGlz
dHMubG0tc2Vuc29ycy5vcmcvbWFpbG1hbi9saXN0aW5mby9sbS1zZW5zb3Jz
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (6 preceding siblings ...)
2012-01-27 21:22 ` Guenter Roeck
@ 2012-01-27 21:28 ` Jean Delvare
2012-01-27 21:35 ` Jean Delvare
` (5 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Jean Delvare @ 2012-01-27 21:28 UTC (permalink / raw)
To: lm-sensors
T24gRnJpLCAyNyBKYW4gMjAxMiAyMDo0ODo1OCArMDEwMCwgVXdlIEtsZWluZS1Lw7ZuaWcgd3Jv
dGU6Cj4gPiBJdCBtaWdodCBiZSBhIGdvb2QgaWRlYSB0byBleHBsYWluIHdoYXQgQlAgaXMuLi4g
TWUsIEkgaGF2ZSBubyBpZGVhLgo+IEl0J3MgaW4gdGhlIHRhYmxlIGJlbG93IGFuZCBtZWFucyB0
aGUgIkFwcGxpY2F0aW9uIFN1cHBseSIgY2hhbm5lbC4gTm8KPiBpZGVhIHdoYXQgdGhlIEZyZWVz
Y2FsZSBndXlzIHRob3VnaHQgaXQgc2hvdWxkIHN0YW5kIGZvci4KCk1heWJlICJib2FyZCBwb3dl
ciI/Cgo+ID4gKC4uLikKPiA+IDE2Q0hBTlMgdnMuIDE2Y2hhbi4gV291bGQgYmUgZ29vZCB0byBk
ZWNpZGUgZm9yIGEgc3BlbGxpbmcgYW5kIHN0aWNrIHRvCj4gPiBpdC4KPiBJIGd1ZXNzIHlvdSBv
bmx5IG1lYW4gdGhlICdzJyBhbmQgbm90IGNhcGl0YWxpc2F0aW9uPwoKWWVzLgoKPiA+IFsuLi5d
Cj4gPiBXaWxsIHlvdSByZXNlbmQgYW4gdXBkYXRlZCBwYXRjaCwgb3Igc2hvdWxkIEkgdXBkYXRl
IGl0IG15c2VsZiB3aXRoIHRoZQo+ID4gY2hhbmdlcyBhYm92ZT8KPiBJIHdpbGwgc2VuZCB5b3Ug
YW4gdXBkYXRlIGxhdGVyIHRvZGF5IHdpdGggeW91ciBjb21tZW50cyBhZGRyZXNzZWQuCgpHcmVh
dCwgdGhhbmtzLgoKLS0gCkplYW4gRGVsdmFyZQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KbG0tc2Vuc29ycyBtYWlsaW5nIGxpc3QKbG0tc2Vuc29yc0Bs
bS1zZW5zb3JzLm9yZwpodHRwOi8vbGlzdHMubG0tc2Vuc29ycy5vcmcvbWFpbG1hbi9saXN0aW5m
by9sbS1zZW5zb3Jz
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (7 preceding siblings ...)
2012-01-27 21:28 ` Jean Delvare
@ 2012-01-27 21:35 ` Jean Delvare
2012-01-28 17:34 ` Guenter Roeck
` (4 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Jean Delvare @ 2012-01-27 21:35 UTC (permalink / raw)
To: lm-sensors
On Fri, 27 Jan 2012 13:22:08 -0800, Guenter Roeck wrote:
> I have been asked about adding support for ADC channels 0, 1, 3, 4, as
> well as the non-GP usage of channels 5 to 7.
I'm interested in temperature sensors too, i.e. channels 5 and 7 if I'm
not mistaken.
> Does anyone happen to know/recall why those are not supported in the
> current driver ?
No idea, maybe just starting simple, or lack of interest.
--
Jean Delvare
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (8 preceding siblings ...)
2012-01-27 21:35 ` Jean Delvare
@ 2012-01-28 17:34 ` Guenter Roeck
2012-01-28 18:15 ` Jean Delvare
` (3 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Guenter Roeck @ 2012-01-28 17:34 UTC (permalink / raw)
To: lm-sensors
On Fri, Jan 27, 2012 at 04:35:29PM -0500, Jean Delvare wrote:
> On Fri, 27 Jan 2012 13:22:08 -0800, Guenter Roeck wrote:
> > I have been asked about adding support for ADC channels 0, 1, 3, 4, as
> > well as the non-GP usage of channels 5 to 7.
>
> I'm interested in temperature sensors too, i.e. channels 5 and 7 if I'm
> not mistaken.
>
> > Does anyone happen to know/recall why those are not supported in the
> > current driver ?
>
> No idea, maybe just starting simple, or lack of interest.
>
Maybe the perceived problem is that gain and offset are different and all over the place
for the various ADCs, so one either needs a whole bunch of functions, or a large
case statement, or a table with <gain, offset> per adc. I'd choose the latter,
to simplify runtime code. Also, the description of adc->temperature conversion
is really quite confusing.
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (9 preceding siblings ...)
2012-01-28 17:34 ` Guenter Roeck
@ 2012-01-28 18:15 ` Jean Delvare
2012-01-28 18:42 ` Guenter Roeck
` (2 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: Jean Delvare @ 2012-01-28 18:15 UTC (permalink / raw)
To: lm-sensors
T24gU2F0LCAyOCBKYW4gMjAxMiAwOTozNDozNCAtMDgwMCwgR3VlbnRlciBSb2VjayB3cm90ZToK
PiBNYXliZSB0aGUgcGVyY2VpdmVkIHByb2JsZW0gaXMgdGhhdCBnYWluIGFuZCBvZmZzZXQgYXJl
IGRpZmZlcmVudCBhbmQgYWxsIG92ZXIgdGhlIHBsYWNlCj4gZm9yIHRoZSB2YXJpb3VzIEFEQ3Ms
IHNvIG9uZSBlaXRoZXIgbmVlZHMgYSB3aG9sZSBidW5jaCBvZiBmdW5jdGlvbnMsIG9yIGEgbGFy
Z2UKPiBjYXNlIHN0YXRlbWVudCwgb3IgYSB0YWJsZSB3aXRoIDxnYWluLCBvZmZzZXQ+IHBlciBh
ZGMuIEknZCBjaG9vc2UgdGhlIGxhdHRlciwKPiB0byBzaW1wbGlmeSBydW50aW1lIGNvZGUuIEFs
c28sIHRoZSBkZXNjcmlwdGlvbiBvZiBhZGMtPnRlbXBlcmF0dXJlIGNvbnZlcnNpb24KPiBpcyBy
ZWFsbHkgcXVpdGUgY29uZnVzaW5nLgoKVGhlIGRpZSB0ZW1wZXJhdHVyZSBzZWVtcyB0byBiZSBh
IHNpbXBsZSBsaW5lYXIgZXh0cmFwb2xhdGlvbiwgdGhpcwpzaG91bGQgYWN0dWFsbHkgYmUgZmFp
cmx5IGVhc3kgdG8gaW1wbGVtZW50LgoKVGhlIGJhdHRlcnkgdGVtcGVyYXR1cmUgaXMgYSB0eXBp
Y2FsIHRoZXJtaXN0b3IgY29tcHV0YXRpb24uIEl0IGlzIGJlc3QKZG9uZSBpbiB1c2VyLXNwYWNl
IGJ5IGEgbGlic2Vuc29ycyBjb25maWd1cmF0aW9uIHN0YXRlbWVudCAoaS5lLiB0aGUKZHJpdmVy
IGV4cG9ydHMgYSB2YWx1ZSBpbiBtViBpbnN0ZWFkIG9mIG3CsEMgYW5kIHNlbnNvcnMuY29uZiB0
YWtlcyBjYXJlCm9mIHRoZSBjb252ZXJzaW9uLikKClNvIEkgZG9uJ3Qgc2VlIGFueXRoaW5nIHBh
cnRpY3VsYXJseSBmcmlnaHRlbmluZyBoZXJlLiBEbyB5b3U/CgotLSAKSmVhbiBEZWx2YXJlCgpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsbS1zZW5zb3Jz
IG1haWxpbmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNvcnMub3JnCmh0dHA6Ly9saXN0cy5sbS1z
ZW5zb3JzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNlbnNvcnM
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (10 preceding siblings ...)
2012-01-28 18:15 ` Jean Delvare
@ 2012-01-28 18:42 ` Guenter Roeck
2012-01-28 20:47 ` Jean Delvare
2012-01-30 7:27 ` David Jander
13 siblings, 0 replies; 15+ messages in thread
From: Guenter Roeck @ 2012-01-28 18:42 UTC (permalink / raw)
To: lm-sensors
On Sat, Jan 28, 2012 at 01:15:36PM -0500, Jean Delvare wrote:
> On Sat, 28 Jan 2012 09:34:34 -0800, Guenter Roeck wrote:
> > Maybe the perceived problem is that gain and offset are different and all over the place
> > for the various ADCs, so one either needs a whole bunch of functions, or a large
> > case statement, or a table with <gain, offset> per adc. I'd choose the latter,
> > to simplify runtime code. Also, the description of adc->temperature conversion
> > is really quite confusing.
>
> The die temperature seems to be a simple linear extrapolation, this
> should actually be fairly easy to implement.
>
> The battery temperature is a typical thermistor computation. It is best
> done in user-space by a libsensors configuration statement (i.e. the
> driver exports a value in mV instead of m°C and sensors.conf takes care
> of the conversion.)
>
> So I don't see anything particularly frightening here. Do you?
>
Not really; I didn't expect the implementation to be difficult, just understanding
the documentation.
For the battery temperature, I would prefer to report a temperature if the chip
is configured for it (assuming that can be detected).
At least so far we can not convert voltages to temperatures via sensors.conf,
or can we ?
Thanks,
Guenter
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (11 preceding siblings ...)
2012-01-28 18:42 ` Guenter Roeck
@ 2012-01-28 20:47 ` Jean Delvare
2012-01-30 7:27 ` David Jander
13 siblings, 0 replies; 15+ messages in thread
From: Jean Delvare @ 2012-01-28 20:47 UTC (permalink / raw)
To: lm-sensors
T24gU2F0LCAyOCBKYW4gMjAxMiAxMDo0MjoxOSAtMDgwMCwgR3VlbnRlciBSb2VjayB3cm90ZToK
PiBPbiBTYXQsIEphbiAyOCwgMjAxMiBhdCAwMToxNTozNlBNIC0wNTAwLCBKZWFuIERlbHZhcmUg
d3JvdGU6Cj4gPiBUaGUgZGllIHRlbXBlcmF0dXJlIHNlZW1zIHRvIGJlIGEgc2ltcGxlIGxpbmVh
ciBleHRyYXBvbGF0aW9uLCB0aGlzCj4gPiBzaG91bGQgYWN0dWFsbHkgYmUgZmFpcmx5IGVhc3kg
dG8gaW1wbGVtZW50Lgo+ID4gCj4gPiBUaGUgYmF0dGVyeSB0ZW1wZXJhdHVyZSBpcyBhIHR5cGlj
YWwgdGhlcm1pc3RvciBjb21wdXRhdGlvbi4gSXQgaXMgYmVzdAo+ID4gZG9uZSBpbiB1c2VyLXNw
YWNlIGJ5IGEgbGlic2Vuc29ycyBjb25maWd1cmF0aW9uIHN0YXRlbWVudCAoaS5lLiB0aGUKPiA+
IGRyaXZlciBleHBvcnRzIGEgdmFsdWUgaW4gbVYgaW5zdGVhZCBvZiBtwrBDIGFuZCBzZW5zb3Jz
LmNvbmYgdGFrZXMgY2FyZQo+ID4gb2YgdGhlIGNvbnZlcnNpb24uKQo+ID4gCj4gPiBTbyBJIGRv
bid0IHNlZSBhbnl0aGluZyBwYXJ0aWN1bGFybHkgZnJpZ2h0ZW5pbmcgaGVyZS4gRG8geW91Pwo+
Cj4gTm90IHJlYWxseTsgSSBkaWRuJ3QgZXhwZWN0IHRoZSBpbXBsZW1lbnRhdGlvbiB0byBiZSBk
aWZmaWN1bHQsIGp1c3QgdW5kZXJzdGFuZGluZwo+IHRoZSBkb2N1bWVudGF0aW9uLgo+IAo+IEZv
ciB0aGUgYmF0dGVyeSB0ZW1wZXJhdHVyZSwgSSB3b3VsZCBwcmVmZXIgdG8gcmVwb3J0IGEgdGVt
cGVyYXR1cmUgaWYgdGhlIGNoaXAKPiBpcyBjb25maWd1cmVkIGZvciBpdCAoYXNzdW1pbmcgdGhh
dCBjYW4gYmUgZGV0ZWN0ZWQpLgoKQWdyZWVkLgoKPiBBdCBsZWFzdCBzbyBmYXIgd2UgY2FuIG5v
dCBjb252ZXJ0IHZvbHRhZ2VzIHRvIHRlbXBlcmF0dXJlcyB2aWEgc2Vuc29ycy5jb25mLAo+IG9y
IGNhbiB3ZSA/CgpXZSBjYW4ndCBjaGFuZ2UgdGhlIGNoYW5uZWwgdHlwZSwgbm8uIFRoZXJlIGlz
IGEgbG9uZyBzdGFuZGluZyB0aWNrZXQKb3BlbmVkIGZvciB0aGlzOgogIGh0dHA6Ly93d3cubG0t
c2Vuc29ycy5vcmcvdGlja2V0LzIyNTgKYnV0IEknbSBzdGlsbCBub3Qgc3VyZSB3aGF0IHRvIGRv
IHdpdGggaXQuCgpXaGF0IGNhbiBiZSBkb25lIGlzIHRoYXQgZHJpdmVycyBleHBvcnQgdGVtcGVy
YXR1cmVzIGluIG1WIGJ1dCB0aGV5CmRvbid0IHNheSBzbywgYW5kIHdlIGRvIHRoZSBjb252ZXJz
aW9uIGluIHNlbnNvcnMuY29uZi4gVGhpcyBpcwplc3NlbnRpYWxseSBhbiB1bmRvY3VtZW50ZWQg
dmlvbGF0aW9uIG9mIG91ciBzeXNmcyBpbnRlcmZhY2UgYnV0CnNldmVyYWwgZHJpdmVycyBhcmUg
ZG9pbmcgaXQgYWxyZWFkeTogdnQxMjExLCB2dDgyMzEsIHBjODczNjAuIFNlZQpldGMvc2Vuc29y
cy5jb25mLmVnIGZvciBleGFtcGxlcyBvZiBjb252ZXJzaW9uIGZvcm11bGEuCgpJJ20gbm9yIHBh
cnRpY3VsYXJseSBoYXBweSB3aXRoIHRoZSBzaXR1YXRpb24sIGJ1dCBJIGhhdmUgbm8gaW1tZWRp
YXRlCnNvbHV0aW9uIHRvIHByb3Bvc2UgYW5kIHRoZSBwcm9ibGVtIGlzIHJhcmUgZW5vdWdoIHRo
YXQgaXQgZG9lc24ndApwcmV2ZW50IG1lIGZyb20gc2xlZXBpbmcgc28gZmFyLiBJZiB5b3Ugb3Ig
YW55b25lIGVsc2Ugd2FudCB0byBwcm9wb3NlCnNvbWV0aGluZyBvciBldmVuIGltcGxlbWVudCBp
dCwgZmVlbCBmcmVlLgoKLS0gCkplYW4gRGVsdmFyZQoKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KbG0tc2Vuc29ycyBtYWlsaW5nIGxpc3QKbG0tc2Vuc29y
c0BsbS1zZW5zb3JzLm9yZwpodHRwOi8vbGlzdHMubG0tc2Vuc29ycy5vcmcvbWFpbG1hbi9saXN0
aW5mby9sbS1zZW5zb3Jz
^ permalink raw reply [flat|nested] 15+ messages in thread* Re: [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the MC13892 PMIC
2011-09-27 21:16 [lm-sensors] [PATCH v2] hwmon/mc13xxx-adc: add support for the Uwe Kleine-König
` (12 preceding siblings ...)
2012-01-28 20:47 ` Jean Delvare
@ 2012-01-30 7:27 ` David Jander
13 siblings, 0 replies; 15+ messages in thread
From: David Jander @ 2012-01-30 7:27 UTC (permalink / raw)
To: lm-sensors
T24gRnJpLCAyNyBKYW4gMjAxMiAyMDo0ODo1OCArMDEwMApVd2UgS2xlaW5lLUvDtm5pZyA8dS5r
bGVpbmUta29lbmlnQHBlbmd1dHJvbml4LmRlPiB3cm90ZToKCj4gSGVsbG8gSmVhbiwKPiAKPiBm
aXJzdCBvZiBhbGwgdGhhbmtzIGZvciB5b3VyIHRob3VnaHRzLgo+IAo+IE9uIEZyaSwgSmFuIDI3
LCAyMDEyIGF0IDA1OjUzOjI5UE0gKzAxMDAsIEplYW4gRGVsdmFyZSB3cm90ZToKPiA+ID4gZGlm
ZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaHdtb24vbWMxMzc4My1hZGMKPiA+ID4gYi9Eb2N1bWVu
dGF0aW9uL2h3bW9uL21jMTM3ODMtYWRjIGluZGV4IDA0NDUzMWEuLjhiNzE3ZjUgMTAwNjQ0Cj4g
PiA+IC0tLSBhL0RvY3VtZW50YXRpb24vaHdtb24vbWMxMzc4My1hZGMKPiA+ID4gKysrIGIvRG9j
dW1lbnRhdGlvbi9od21vbi9tYzEzNzgzLWFkYwo+ID4gPiBAQCAtNSw2ICs1LDkgQEAgU3VwcG9y
dGVkIGNoaXBzOgo+ID4gPiAgICAqIEZyZWVzY2FsZSBBdGxhcyBNQzEzNzgzCj4gPiA+ICAgICAg
UHJlZml4OiAnbWMxMzc4M19hZGMnCj4gPiA+ICAgICAgRGF0YXNoZWV0Ogo+ID4gPiBodHRwOi8v
d3d3LmZyZWVzY2FsZS5jb20vZmlsZXMvcmZfaWYvZG9jL2RhdGFfc2hlZXQvTUMxMzc4My5wZGY/
ZnNyY2g9MQo+ID4gPiArICAqIEZyZWVzY2FsZSBBdGxhcyBNQzEzODkyCj4gPiA+ICsgICAgUHJl
Zml4OiAnbWMxMzg5Ml9hZGMnCj4gPiA+ICsgICAgRGF0YXNoZWV0Ogo+ID4gPiBodHRwOi8vY2Fj
aGUuZnJlZXNjYWxlLmNvbS9maWxlcy9hbmFsb2cvZG9jL2RhdGFfc2hlZXQvTUMxMzg5Mi5wZGY/
ZnNyY2g9MSZzcj0xIAo+ID4gPiAgQXV0aG9yczoKPiA+ID4gICAgICBTYXNjaGEgSGF1ZXIgPHMu
aGF1ZXJAcGVuZ3V0cm9uaXguZGU+Cj4gPiA+IEBAIC0xMywyMCArMTYsMjEgQEAgQXV0aG9yczoK
PiA+ID4gIERlc2NyaXB0aW9uCj4gPiA+ICAtLS0tLS0tLS0tLQo+ID4gPiAgCj4gPiA+IC1UaGUg
RnJlZXNjYWxlIE1DMTM3ODMgaXMgYSBQb3dlciBNYW5hZ2VtZW50IGFuZCBBdWRpbyBDaXJjdWl0
LiBBbW9uZwo+ID4gPiAtb3RoZXIgdGhpbmdzIGl0IGNvbnRhaW5zIGEgMTAtYml0IEEvRCBjb252
ZXJ0ZXIuIFRoZSBjb252ZXJ0ZXIgaGFzIDE2Cj4gPiA+IC1jaGFubmVscyB3aGljaCBjYW4gYmUg
dXNlZCBpbiBkaWZmZXJlbnQgbW9kZXMuCj4gPiA+IC1UaGUgQS9EIGNvbnZlcnRlciBoYXMgYSBy
ZXNvbHV0aW9uIG9mIDIuMjVtVi4gQ2hhbm5lbHMgMC00IGhhdmUKPiA+ID4gLWEgZGVkaWNhdGVk
IG1lYW5pbmcgd2l0aCBjaGlwIGludGVybmFsIHNjYWxpbmcgYXBwbGllZC4gQ2hhbm5lbHMgNS03
Cj4gPiA+IC1jYW4gYmUgdXNlZCBhcyBnZW5lcmFsIHB1cnBvc2UgaW5wdXRzIG9yIGFsdGVybmF0
aXZlbHkgaW4gYSBkZWRpY2F0ZWQKPiA+ID4gLW1vZGUuIENoYW5uZWxzIDEyLTE1IGFyZSBvY2N1
cGllZCBieSB0aGUgdG91Y2hzY3JlZW4gaWYgaXQncyBhY3RpdmUuCj4gPiA+ICtUaGUgRnJlZXNj
YWxlIE1DMTM3ODMgYW5kIE1DMTM4OTIgYXJlIFBvd2VyIE1hbmFnZW1lbnQgYW5kIEF1ZGlvCj4g
PiA+IENpcmN1aXRzLiArQW1vbmcgb3RoZXIgdGhpbmdzIHRoZXkgY29udGFpbiBhIDEwLWJpdCBB
L0QgY29udmVydGVyLiBUaGUKPiA+ID4gY29udmVydGVyIGhhcyAxNiArKE1DMTM3ODMpIHJlc3Au
IDEyIChNQzEzODkyKSBjaGFubmVscyB3aGljaCBjYW4gYmUKPiA+ID4gdXNlZCBpbiBkaWZmZXJl
bnQgbW9kZXMuIFRoZSArQS9EIGNvbnZlcnRlciBoYXMgYSByZXNvbHV0aW9uIG9mIDIuMjVtVi4K
PiA+ID4gIAo+ID4gPiAtQ3VycmVudGx5IHRoZSBkcml2ZXIgb25seSBzdXBwb3J0cyBjaGFubmVs
cyAyIGFuZCA1LTE1IHdpdGggbm8KPiA+ID4gYWx0ZXJuYXRpdmUgLW1vZGVzIGZvciBjaGFubmVs
cyA1LTcuCj4gPiA+ICtTb21lIGNoYW5uZWxzIGNhbiBiZSB1c2VkIGFzIEdlbmVyYWwgUHVycG9z
ZSBpbnB1dHMgb3IgaW4gYSBkZWRpY2F0ZWQKPiA+ID4gbW9kZSB3aXRoICthIGNoaXAgaW50ZXJu
YWwgc2NhbGluZyBhcHBsaWVkIC4KPiA+ID4gIAo+ID4gPiAtU2VlIHRoaXMgdGFibGUgZm9yIHRo
ZSBtZWFuaW5nIG9mIHRoZSBkaWZmZXJlbnQgY2hhbm5lbHMgYW5kIHRoZWlyIGNoaXAKPiA+ID4g
LWludGVybmFsIHNjYWxpbmc6Cj4gPiA+ICtDdXJyZW50bHkgdGhlIGRyaXZlciBvbmx5IHN1cHBv
cnRzIEJQLCB0aGUgR2VuZXJhbCBQdXJwb3NlIGlucHV0cyBhbmQKPiA+ID4gK3RvdWNoc2NyZWVu
Lgo+ID4gCj4gPiBJdCBtaWdodCBiZSBhIGdvb2QgaWRlYSB0byBleHBsYWluIHdoYXQgQlAgaXMu
Li4gTWUsIEkgaGF2ZSBubyBpZGVhLgo+IEl0J3MgaW4gdGhlIHRhYmxlIGJlbG93IGFuZCBtZWFu
cyB0aGUgIkFwcGxpY2F0aW9uIFN1cHBseSIgY2hhbm5lbC4gTm8KPiBpZGVhIHdoYXQgdGhlIEZy
ZWVzY2FsZSBndXlzIHRob3VnaHQgaXQgc2hvdWxkIHN0YW5kIGZvci4KCiJCYXR0ZXJ5IFBvd2Vy
Ii4gSXQgaXMgdGhlICJCUCIgcG93ZXIgcmFpbCBjb21tb25seSBmb3VuZCBpbiBGcmVlc2NhbGUK
ZG9jdW1lbnRhdGlvbiwgdGhhdCBpcyBub3QgYWN0dWFsbHkgY29ubmVjdGVkIGRpcmVjdGx5IHRv
IHRoZSBiYXR0ZXJ5Li4uLgphbG1vc3QuIFRoYXQncyBwcm9iYWJseSB3aHkgY2FsbGluZyBpdCAi
QmF0dGVyeSBQb3dlciIgc2VlbWVkIHRvbyBtaXNsZWFkaW5nLApzbyB0aGV5IGFiYnJldmlhdGVk
IGl0IDstKSBJdCBiYXNpY2FsbHkgcG93ZXJzIHRoZSB3aG9sZSBzeXN0ZW0uCgpKdXN0IG15IDIg
Y2VudCA7LSkKClRoYW5rcyBmb3IgcGlja2luZyB0aGlzIHVwIGZpbmFsbHkuCgpCZXN0IHJlZ2Fy
ZHMsCgotLSAKRGF2aWQgSmFuZGVyCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpsbS1zZW5zb3JzIG1haWxpbmcgbGlzdApsbS1zZW5zb3JzQGxtLXNlbnNv
cnMub3JnCmh0dHA6Ly9saXN0cy5sbS1zZW5zb3JzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xtLXNl
bnNvcnM
^ permalink raw reply [flat|nested] 15+ messages in thread