Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1498293 > unrolled thread

Re: [PATCH v2 2/4] power: add axp20x-battery driver

Started byMaxime Ripard <maxime.ripard@free-electrons.com>
First post2016-10-10 15:10 +0200
Last post2016-10-10 15:20 +0200
Articles 2 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH v2 2/4] power: add axp20x-battery driver Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-10-10 15:10 +0200
    Re: [PATCH v2 2/4] power: add axp20x-battery driver Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-10-10 15:20 +0200

#1498293 — Re: [PATCH v2 2/4] power: add axp20x-battery driver

FromMaxime Ripard <maxime.ripard@free-electrons.com>
Date2016-10-10 15:10 +0200
SubjectRe: [PATCH v2 2/4] power: add axp20x-battery driver
Message-ID<sqIv8-1FC-31@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

Hi Icenowy,

On Sun, Oct 09, 2016 at 02:27:12PM +0800, Icenowy Zheng wrote:
> +	case POWER_SUPPLY_PROP_CURRENT_NOW:
> +		ret = regmap_read(power->regmap, AXP20X_BATT_DISCHRG_I_H, &dh);
> +		if (ret)
> +			return ret;
> +		ret = regmap_read(power->regmap, AXP20X_BATT_DISCHRG_I_L, &dl);
> +		if (ret)
> +			return ret;
> +		/* it's a 12 bit integer, high 8-bit is stored in dh */
> +		val->intval = dh << 4 | dl >> 4;
> +		break;
> +	case POWER_SUPPLY_PROP_VOLTAGE_NOW:
> +		ret = regmap_read(power->regmap, AXP20X_BATT_V_H, &dh);
> +		if (ret)
> +			return ret;
> +		ret = regmap_read(power->regmap, AXP20X_BATT_V_L, &dl);
> +		if (ret)
> +			return ret;
> +		/* it's a 12 bit integer, high 8-bit is stored in dh */
> +		val->intval = dh << 4 | dl >> 4;
> +		/* The formula below is from axp22_vbat_to_mV function
> +		 * of Allwinner 3.4 kernel.
> +		 */
> +		val->intval = val->intval * 1100 / 1000;
> +		break;

I really feel that this should be implemented through a IIO driver
(like the AXP288). This is especially true for the AXP209 and its
multiple GPIOs that can be muxed to a general purpose ADC, but it's
also true for the AXP221 / 223 TS pin that can also be used as an ADC.

Quentin has been working on this lately for the AXP209, feel free to
sync with him to support the AXP22*

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[toc] | [next] | [standalone]


#1498301

FromMaxime Ripard <maxime.ripard@free-electrons.com>
Date2016-10-10 15:20 +0200
Message-ID<sqIEO-1J7-17@gated-at.bofh.it>
In reply to#1498293

[Multipart message — attachments visible in raw view] — view raw

Adding the real Quentin address

On Mon, Oct 10, 2016 at 02:57:26PM +0200, Maxime Ripard wrote:
> Hi Icenowy,
> 
> On Sun, Oct 09, 2016 at 02:27:12PM +0800, Icenowy Zheng wrote:
> > +	case POWER_SUPPLY_PROP_CURRENT_NOW:
> > +		ret = regmap_read(power->regmap, AXP20X_BATT_DISCHRG_I_H, &dh);
> > +		if (ret)
> > +			return ret;
> > +		ret = regmap_read(power->regmap, AXP20X_BATT_DISCHRG_I_L, &dl);
> > +		if (ret)
> > +			return ret;
> > +		/* it's a 12 bit integer, high 8-bit is stored in dh */
> > +		val->intval = dh << 4 | dl >> 4;
> > +		break;
> > +	case POWER_SUPPLY_PROP_VOLTAGE_NOW:
> > +		ret = regmap_read(power->regmap, AXP20X_BATT_V_H, &dh);
> > +		if (ret)
> > +			return ret;
> > +		ret = regmap_read(power->regmap, AXP20X_BATT_V_L, &dl);
> > +		if (ret)
> > +			return ret;
> > +		/* it's a 12 bit integer, high 8-bit is stored in dh */
> > +		val->intval = dh << 4 | dl >> 4;
> > +		/* The formula below is from axp22_vbat_to_mV function
> > +		 * of Allwinner 3.4 kernel.
> > +		 */
> > +		val->intval = val->intval * 1100 / 1000;
> > +		break;
> 
> I really feel that this should be implemented through a IIO driver
> (like the AXP288). This is especially true for the AXP209 and its
> multiple GPIOs that can be muxed to a general purpose ADC, but it's
> also true for the AXP221 / 223 TS pin that can also be used as an ADC.
> 
> Quentin has been working on this lately for the AXP209, feel free to
> sync with him to support the AXP22*
> 
> Maxime
> 
> -- 
> Maxime Ripard, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com



-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web