From patchwork Thu Sep 27 07:26:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "(Exiting) Baolin Wang" X-Patchwork-Id: 10617525 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 036DD14BD for ; Thu, 27 Sep 2018 07:27:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DF5102B112 for ; Thu, 27 Sep 2018 07:27:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D2F652B11A; Thu, 27 Sep 2018 07:27:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B8BA2B112 for ; Thu, 27 Sep 2018 07:27:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726784AbeI0Nol (ORCPT ); Thu, 27 Sep 2018 09:44:41 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:33604 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726952AbeI0Nol (ORCPT ); Thu, 27 Sep 2018 09:44:41 -0400 Received: by mail-pg1-f196.google.com with SMTP id y18-v6so1288474pge.0 for ; Thu, 27 Sep 2018 00:27:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=4VmbNGK4/Krdl0b5VErXgThoZu7vAXm7F8ofWNw+h+Y=; b=GBXWaozFl12GA1q1cUTlGwVVR+P0Bb8rD8e8VxrtYN36gA3qiFLOgYiO/JVNs2yMPI riJ4mt5JHP2UxRFqFGo2rJSzUkvbsTO3aL0VTLwbm1NPFGoWANNv6aVH+bvGFtwhtcDp nUVEh8RdqvoBYUYA/KEC7suEcSxCJdyevAYnc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=4VmbNGK4/Krdl0b5VErXgThoZu7vAXm7F8ofWNw+h+Y=; b=WJyB6LrWMtud5u3vkvbV+j3OWq9PLEaC7Gyf+5/IR8AN5j+eTnMftuw51EjLCTZ25t 7l9h+rDLRRdACO8yd4hEiVbIZek7ZqKAGfsvghG70yQa2+oWzon0HqMkMmoWegEb3R+4 gEoqtEZYCyB2+IFaeLWkpZcl6nTkWFztlcJyP+aFqkV9cc49vdCBfiLV+bEuoXHD/TtL RtUKcgvarF54JSs3sUICsmCcIs6bwJ+tqpD7isCmq1XZJSW60dI1B3jcWRur6Dueq8cG DcHW2ULkud9t8ueGXijQvTK9LD+ABzZ9+vxcxVO9Y9YBD8nTMmn9Vcp8t/yPWMmfgD0D vSsA== X-Gm-Message-State: ABuFfoghG87d/aNf9xDe/ciltaobjhmilNDqBlCTnSAfIF1Dm7j8JiXp XlusW7cx7B7fF1oePNvBV/wbvg== X-Google-Smtp-Source: ACcGV61KPgGBcSimqyzqYx3UME18t3abL3+TYfTnpzG4XbIvrBikZN5jy+XuanYgEs2RRDWc4WrLaw== X-Received: by 2002:a62:7788:: with SMTP id s130-v6mr9859304pfc.189.1538033269467; Thu, 27 Sep 2018 00:27:49 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id h12-v6sm1835018pfo.135.2018.09.27.00.27.44 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 27 Sep 2018 00:27:48 -0700 (PDT) From: Baolin Wang To: sre@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com Cc: linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, yuanjiang.yu@unisoc.com, baolin.wang@linaro.org, broonie@kernel.org, ctatlor97@gmail.com, linus.walleij@linaro.org Subject: [PATCH v3 1/4] power: supply: core: Introduce one property to present the battery internal resistance Date: Thu, 27 Sep 2018 15:26:54 +0800 Message-Id: <2787f18a0366576959557d05112a069dca982269.1538033078.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The internal resistance of a battery is not a constant in its life cycle, this varies over the age of the battery or temperature and so on. But we just want use one constant battery internal resistance to estimate the battery capacity. Thus this patch introduces one property to present the battery factory internal resistance for battery information. Signed-off-by: Baolin Wang Reviewed-by: Linus Walleij --- Changes from v2: - Rename the property. - Improve the commit message. Changes from v1: - New patch in v2. --- .../devicetree/bindings/power/supply/battery.txt | 2 ++ drivers/power/supply/power_supply_core.c | 3 +++ include/linux/power_supply.h | 1 + 3 files changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/power/supply/battery.txt b/Documentation/devicetree/bindings/power/supply/battery.txt index f4d3b4a..938d027 100644 --- a/Documentation/devicetree/bindings/power/supply/battery.txt +++ b/Documentation/devicetree/bindings/power/supply/battery.txt @@ -22,6 +22,7 @@ Optional Properties: - charge-term-current-microamp: current for charge termination phase - constant-charge-current-max-microamp: maximum constant input current - constant-charge-voltage-max-microvolt: maximum constant input voltage + - factory-internal-resistance-micro-ohms: battery factory internal resistance Battery properties are named, where possible, for the corresponding elements in enum power_supply_property, defined in @@ -42,6 +43,7 @@ Example: charge-term-current-microamp = <128000>; constant-charge-current-max-microamp = <900000>; constant-charge-voltage-max-microvolt = <4200000>; + factory-internal-resistance-micro-ohms = <250000>; }; charger: charger@11 { diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c index e853618..307e0995 100644 --- a/drivers/power/supply/power_supply_core.c +++ b/drivers/power/supply/power_supply_core.c @@ -579,6 +579,7 @@ int power_supply_get_battery_info(struct power_supply *psy, info->charge_term_current_ua = -EINVAL; info->constant_charge_current_max_ua = -EINVAL; info->constant_charge_voltage_max_uv = -EINVAL; + info->factory_internal_resistance_uohm = -EINVAL; if (!psy->of_node) { dev_warn(&psy->dev, "%s currently only supports devicetree\n", @@ -616,6 +617,8 @@ int power_supply_get_battery_info(struct power_supply *psy, &info->constant_charge_current_max_ua); of_property_read_u32(battery_np, "constant_charge_voltage_max_microvolt", &info->constant_charge_voltage_max_uv); + of_property_read_u32(battery_np, "factory-internal-resistance-micro-ohms", + &info->factory_internal_resistance_uohm); return 0; } diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h index f807691..d089566 100644 --- a/include/linux/power_supply.h +++ b/include/linux/power_supply.h @@ -326,6 +326,7 @@ struct power_supply_battery_info { int charge_term_current_ua; /* microAmps */ int constant_charge_current_max_ua; /* microAmps */ int constant_charge_voltage_max_uv; /* microVolts */ + int factory_internal_resistance_uohm; /* microOhms */ }; extern struct atomic_notifier_head power_supply_notifier;