From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752581AbcJJM5m (ORCPT ); Mon, 10 Oct 2016 08:57:42 -0400 Received: from down.free-electrons.com ([37.187.137.238]:42336 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752535AbcJJM5k (ORCPT ); Mon, 10 Oct 2016 08:57:40 -0400 Date: Mon, 10 Oct 2016 14:57:26 +0200 From: Maxime Ripard To: Icenowy Zheng Cc: Rob Herring , Chen-Yu Tsai , Lee Jones , Bruno =?iso-8859-1?Q?Pr=E9mont?= , Michael Haas , Mark Rutland , Russell King , Sebastian Reichel , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, quentin@lukather.free-electrons.com Subject: Re: [PATCH v2 2/4] power: add axp20x-battery driver Message-ID: <20161010125726.GJ3462@lukather> References: <20161009062714.5085-1-icenowy@aosc.xyz> <20161009062714.5085-2-icenowy@aosc.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="k1BdFSKqAqVdu8k/" Content-Disposition: inline In-Reply-To: <20161009062714.5085-2-icenowy@aosc.xyz> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --k1BdFSKqAqVdu8k/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Icenowy, On Sun, Oct 09, 2016 at 02:27:12PM +0800, Icenowy Zheng wrote: > + case POWER_SUPPLY_PROP_CURRENT_NOW: > + ret =3D regmap_read(power->regmap, AXP20X_BATT_DISCHRG_I_H, &dh); > + if (ret) > + return ret; > + ret =3D 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 =3D dh << 4 | dl >> 4; > + break; > + case POWER_SUPPLY_PROP_VOLTAGE_NOW: > + ret =3D regmap_read(power->regmap, AXP20X_BATT_V_H, &dh); > + if (ret) > + return ret; > + ret =3D 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 =3D dh << 4 | dl >> 4; > + /* The formula below is from axp22_vbat_to_mV function > + * of Allwinner 3.4 kernel. > + */ > + val->intval =3D 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 --=20 Maxime Ripard, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com --k1BdFSKqAqVdu8k/ Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJX+5A2AAoJEBx+YmzsjxAghjcP/iGGOskvxjncUTy4aoL3U+Ig s+PbApkTZyheW7Sfbgr2H0fzbyfuybhF2ArVaExOkYnNMU4H9QQbP+jWV/DThb++ rc0NuKKKAv8tSPhad/baRkyiw+ZfmePLFX6VEsT1yxBbez/B/2W4DZq7KEeQtTxx zierUsTSlmTfflDvF78nxKD4tDr4h101FMRP8Q2N8LHgE19t4cPbfA5uI9k24Apk dsbJ/YrCF41PYnx+hXe1rQQLJZOnX6hjN9YcguAmWUzE3QzMbkh+cRIecKwdLyvc TYX5i4RhFwSG5R57u/Sx0EYoyzWlW9JgSJNpqw8kG0rDbZ3jpBv4zwEIylt27zm8 jjNistQzURehwAFeyth9igIF/i+bZ9zSkm+iwp1+XQkET0AVqBLTpfeRNE0uUG6e rAEUCadXXBCh+JgJYhAecUQ0AbbAWH/Lusr/en1SmbL/LpFUECcsbhImgsS+iDXe uoqib84WT5CiTMjHG4eRDFlBUKvziRpD0GJ5h+S2Nn9XlpvXW/+GA5+hR0/uG+fm 0DmzCnuhu4MpPWEhcjghRfyk172BcHP2g/KO8tCLUIfQkfpi6riM2Q69nXPIWZYa 3oWHi5b9zg7i4Z9gf99klvyBLyRBeflcjQWgrUrzEeQPjfWTDTlZBFtvdYVpXkX9 qSwfM7ZsU9ikpz2Gf1Xo =PYKL -----END PGP SIGNATURE----- --k1BdFSKqAqVdu8k/--