From: Dimitri Fedrau <dima.fedrau@gmail.com>
To: t.antoine@uclouvain.be
Cc: Sebastian Reichel <sre@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Peter Griffin <peter.griffin@linaro.org>,
Alim Akhtar <alim.akhtar@samsung.com>,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org
Subject: Re: [PATCH 1/4] power: supply: add support for max77759 fuel gauge
Date: Tue, 3 Dec 2024 08:35:56 +0100 [thread overview]
Message-ID: <20241203073556.GA3936@debian> (raw)
In-Reply-To: <20241202-b4-gs101_max77759_fg-v1-1-98d2fa7bfe30@uclouvain.be>
Hi Antoine,
Am Mon, Dec 02, 2024 at 02:07:15PM +0100 schrieb Thomas Antoine via B4 Relay:
> From: Thomas Antoine <t.antoine@uclouvain.be>
>
> The Maxim max77759 fuel gauge has the same interface as the Maxim max1720x
> except for the non-volatile memory slave address which is not available.
> No slave is available at address 0xb of the i2c bus, which is coherent
> with the following driver from google: line 5836 disables non-volatile
> memory for m5 gauge.
>
> Link: https://android.googlesource.com/kernel/google-modules/bms/+/1a68c36bef474573cc8629cc1d121eb6a81ab68c/max1720x_battery.c
>
> Add support for the max77759 by allowing to use the non-volatile
> memory or not based on the chip. Value for RSense comes from the following
> stock devicetree:
>
> Link: https://android.googlesource.com/kernel/devices/google/gs101/+/33eca36d43da6c2b6a546806eb3e7411bbe6d60d/dts/gs101-raviole-battery.dtsi
>
> Signed-off-by: Thomas Antoine <t.antoine@uclouvain.be>
> ---
> drivers/power/supply/max1720x_battery.c | 71 +++++++++++++++++++++++++++------
> 1 file changed, 59 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/power/supply/max1720x_battery.c b/drivers/power/supply/max1720x_battery.c
> index 33105419e2427bb37963bda9948b647c239f8faa..faf336938dd4306dd2ceeb0a84b90ca80ad41a9f 100644
> --- a/drivers/power/supply/max1720x_battery.c
> +++ b/drivers/power/supply/max1720x_battery.c
> @@ -13,6 +13,7 @@
> #include <linux/nvmem-provider.h>
> #include <linux/power_supply.h>
> #include <linux/regmap.h>
> +#include <linux/types.h>
>
No need to include it, it is done by <linux/i2.c> which includes
<linux/device.h> which includes <linux/types.h>
> #include <linux/unaligned.h>
>
> @@ -39,6 +40,7 @@
> #define MAX172XX_DEV_NAME_TYPE_MASK GENMASK(3, 0)
> #define MAX172XX_DEV_NAME_TYPE_MAX17201 BIT(0)
> #define MAX172XX_DEV_NAME_TYPE_MAX17205 (BIT(0) | BIT(2))
> +#define MAX172XX_DEV_NAME_TYPE_MAX77759 0
> #define MAX172XX_QR_TABLE10 0x22
> #define MAX172XX_BATT 0xDA /* Battery voltage */
> #define MAX172XX_ATAVCAP 0xDF
> @@ -46,6 +48,7 @@
> static const char *const max1720x_manufacturer = "Maxim Integrated";
> static const char *const max17201_model = "MAX17201";
> static const char *const max17205_model = "MAX17205";
> +static const char *const max77759_model = "MAX77759";
>
> struct max1720x_device_info {
> struct regmap *regmap;
> @@ -54,6 +57,21 @@ struct max1720x_device_info {
> int rsense;
> };
>
> +struct chip_data {
> + u16 default_nrsense; /* in regs in 10^-5 */
> + u8 has_nvmem;
> +};
> +
> +static const struct chip_data max1720x_data = {
> + .default_nrsense = 1000,
> + .has_nvmem = 1,
> +};
> +
> +static const struct chip_data max77759_data = {
> + .default_nrsense = 500,
> + .has_nvmem = 0,
> +};
> +
You can get rid of chip_data by reading rsense from DT and moving
has_nvmem to max1720x_device_info. By doing so you don't have to rely on
default values. Either it is specified by DT or by rsense value in
nvmem.
Best regards,
Dimitri Fedrau
next prev parent reply other threads:[~2024-12-03 7:37 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-02 13:07 [PATCH 0/4] Google Pixel 6 (oriole): max77759 fuel gauge enablement and driver support Thomas Antoine via B4 Relay
2024-12-02 13:07 ` [PATCH 1/4] power: supply: add support for max77759 fuel gauge Thomas Antoine via B4 Relay
2024-12-03 6:47 ` André Draszik
2024-12-03 7:23 ` André Draszik
2024-12-03 9:45 ` André Draszik
2024-12-03 10:30 ` Thomas Antoine
2024-12-03 11:06 ` André Draszik
2024-12-04 8:49 ` Thomas Antoine
2024-12-03 9:08 ` Thomas Antoine
2024-12-03 9:31 ` André Draszik
2024-12-03 10:11 ` Thomas Antoine
2024-12-03 10:50 ` Peter Griffin
2024-12-03 11:02 ` André Draszik
2024-12-04 8:53 ` Thomas Antoine
2024-12-03 7:35 ` Dimitri Fedrau [this message]
2024-12-03 9:25 ` Thomas Antoine
2024-12-02 13:07 ` [PATCH 2/4] dt-bindings: power: supply: add max77759-fg flavor and don't require nvme address Thomas Antoine via B4 Relay
2024-12-02 13:39 ` Krzysztof Kozlowski
2024-12-02 14:42 ` Thomas Antoine
2024-12-03 6:57 ` André Draszik
2024-12-03 9:32 ` Thomas Antoine
2024-12-03 10:07 ` André Draszik
2024-12-03 7:12 ` André Draszik
2024-12-03 10:23 ` Thomas Antoine
2024-12-03 10:40 ` André Draszik
2024-12-04 13:13 ` Thomas Antoine
2024-12-05 6:22 ` André Draszik
2024-12-02 13:07 ` [PATCH 3/4] arm64: defconfig: enable Maxim max1720x driver Thomas Antoine via B4 Relay
2024-12-02 13:40 ` Krzysztof Kozlowski
2024-12-02 14:54 ` Thomas Antoine
2024-12-02 13:07 ` [PATCH 4/4] arm64: dts: exynos: gs101-oriole: enable Maxim max77759 fuel gauge Thomas Antoine via B4 Relay
2024-12-02 13:41 ` Krzysztof Kozlowski
2024-12-02 15:03 ` Thomas Antoine
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=20241203073556.GA3936@debian \
--to=dima.fedrau@gmail.com \
--cc=alim.akhtar@samsung.com \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=peter.griffin@linaro.org \
--cc=robh@kernel.org \
--cc=sre@kernel.org \
--cc=t.antoine@uclouvain.be \
--cc=will@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox