From patchwork Tue Sep 8 20:13:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 11764455 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 23ECD1599 for ; Tue, 8 Sep 2020 20:14:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0B91E21D6C for ; Tue, 8 Sep 2020 20:14:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596062; bh=Ui8320bbgUjCC9ruXzFfhMB/rl1YdIK89+YTJtN2Kp4=; h=From:To:Subject:Date:List-ID:From; b=CxyU9V4kys59XACWbqhVdryiOKaUD6LbBk90DsioC1vR3Oo15WQBbADfLFtadlPHo REQ9ofb1mX4fgoj5B7vF9eNzxbluKkhKW+JFb5sQ2Gvt7ox3G861WkO1WM19M5qv5T BDN0GA8DlI1GiLzogFOL/iM+0Hq/wEI4jzHvJP6w= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731535AbgIHUNb (ORCPT ); Tue, 8 Sep 2020 16:13:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:34022 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731117AbgIHUNZ (ORCPT ); Tue, 8 Sep 2020 16:13:25 -0400 Received: from localhost.localdomain (unknown [194.230.155.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 127EB208FE; Tue, 8 Sep 2020 20:13:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596005; bh=Ui8320bbgUjCC9ruXzFfhMB/rl1YdIK89+YTJtN2Kp4=; h=From:To:Subject:Date:From; b=x2UVWU6fb2LVLh4tf7Xy3TSdCJWdWYMBPhljVetb11WwJJro1X/Hm6LUiGC8u92Ic bV6QGDN1ItenUP0skZ+XqCzrWwed/Lf4l7fEmusgQmJ0G5hnRwrD1TOm91dcIjSkBw 4gOeiXQk0DgoM0saKyByNGik3LJArSMvapuzRud8= From: Krzysztof Kozlowski To: Sebastian Reichel , Rob Herring , "Andrew F. Davis" , =?utf-8?q?Pali_Roh=C3=A1r?= , Dan Murphy , Krzysztof Kozlowski , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/7] dt-bindings: power: bq27xxx: add bq34z100 Date: Tue, 8 Sep 2020 22:13:13 +0200 Message-Id: <20200908201319.3567-1-krzk@kernel.org> X-Mailer: git-send-email 2.17.1 Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Add compatible for bq34z100 charger. Signed-off-by: Krzysztof Kozlowski Acked-by: Rob Herring --- Documentation/devicetree/bindings/power/supply/bq27xxx.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml index 82f682705f44..45beefccf31a 100644 --- a/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml +++ b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml @@ -51,6 +51,7 @@ properties: - ti,bq27621 - ti,bq27z561 - ti,bq28z610 + - ti,bq34z100 reg: maxItems: 1 From patchwork Tue Sep 8 20:13:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 11764459 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AA9781599 for ; Tue, 8 Sep 2020 20:14:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 916CC2145D for ; Tue, 8 Sep 2020 20:14:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596068; bh=NPVHKsTIcPLqsD4JdOC7choTv9Cwr4e7aqMqj1vQEdc=; h=From:To:Subject:Date:In-Reply-To:References:List-ID:From; b=nYGbK9WVusD36PqrZt82t2wXxQwbW9t9ezSmj3VnwhYmUSKuVA3SZ9HDTCGxfyGq+ Qik2F8ma+YXbFc+Gusx/OlSIgAYBmaY2EFHIJfXWSs/5uZuJHovGgyql+CIu3hWGT5 JJTBV34vikadD9bl5QAVWtbFk/1gMEZbzR0XQZdA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730261AbgIHUOX (ORCPT ); Tue, 8 Sep 2020 16:14:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:34040 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731145AbgIHUN2 (ORCPT ); Tue, 8 Sep 2020 16:13:28 -0400 Received: from localhost.localdomain (unknown [194.230.155.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9AE8E2145D; Tue, 8 Sep 2020 20:13:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596007; bh=NPVHKsTIcPLqsD4JdOC7choTv9Cwr4e7aqMqj1vQEdc=; h=From:To:Subject:Date:In-Reply-To:References:From; b=c47k/vY89hQBQeDN1WZRWxsn2UmyGjQAcRpO6ghCDfcTpNeVgiFEkhQl4cVgh9ZDo B75aInQ3z4bi1CdHj7tWH4iwW7P8VmJi9orLBSYZZG9NCioLMIo/L7R1p43myJHoqQ GZ1AShTWgsXQMoKlOqPY3m/P5X6/i9Vmrs+fQ35k= From: Krzysztof Kozlowski To: Sebastian Reichel , Rob Herring , "Andrew F. Davis" , =?utf-8?q?Pali_Roh=C3=A1r?= , Dan Murphy , Krzysztof Kozlowski , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/7] power: supply: bq27xxx: report "not charging" on all types Date: Tue, 8 Sep 2020 22:13:14 +0200 Message-Id: <20200908201319.3567-2-krzk@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200908201319.3567-1-krzk@kernel.org> References: <20200908201319.3567-1-krzk@kernel.org> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Commit 6f24ff97e323 ("power: supply: bq27xxx_battery: Add the BQ27Z561 Battery monitor") and commit d74534c27775 ("power: bq27xxx_battery: Add support for additional bq27xxx family devices") added support for new device types by copying most of the code and adding necessary quirks. However they did not copy the code in bq27xxx_battery_status() responsible for returning POWER_SUPPLY_STATUS_NOT_CHARGING. Unify the bq27xxx_battery_status() so for all types when charger is supplied, it will return "not charging" status. Signed-off-by: Krzysztof Kozlowski --- Not tested on BQ27Z561 or other types of batteries. Tested however on bq34z100. --- drivers/power/supply/bq27xxx_battery.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c index 92de7b720182..65806f668b1f 100644 --- a/drivers/power/supply/bq27xxx_battery.c +++ b/drivers/power/supply/bq27xxx_battery.c @@ -1765,8 +1765,6 @@ static int bq27xxx_battery_status(struct bq27xxx_device_info *di, status = POWER_SUPPLY_STATUS_FULL; else if (di->cache.flags & BQ27000_FLAG_CHGS) status = POWER_SUPPLY_STATUS_CHARGING; - else if (power_supply_am_i_supplied(di->bat) > 0) - status = POWER_SUPPLY_STATUS_NOT_CHARGING; else status = POWER_SUPPLY_STATUS_DISCHARGING; } else if (di->opts & BQ27Z561_O_BITS) { @@ -1785,6 +1783,10 @@ static int bq27xxx_battery_status(struct bq27xxx_device_info *di, status = POWER_SUPPLY_STATUS_CHARGING; } + if ((status == POWER_SUPPLY_STATUS_DISCHARGING) && + (power_supply_am_i_supplied(di->bat) > 0)) + status = POWER_SUPPLY_STATUS_NOT_CHARGING; + val->intval = status; return 0; From patchwork Tue Sep 8 20:13:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 11764453 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B9836138E for ; Tue, 8 Sep 2020 20:14:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9F1A621919 for ; Tue, 8 Sep 2020 20:14:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596061; bh=sNzB6t/5kKkQ+Ltfcjtg8unu1ta56Hhvl+AG2wXjpr8=; h=From:To:Subject:Date:In-Reply-To:References:List-ID:From; b=gAXACroVejshvl2HvMMoU2BOPBehzOa5NbdgOu8bUi14V6AeRDE5YYFOU1Nh85MHa zdSgbA0EBayxfhmP/kMQ7+7HOzYAeC5uytarDerX1/sPixla9XHv1nwAw+OJDS8DRc Hn8LoQnJ5r6j4bvWgz4wG3etvmlYEDdYnZKy/eUI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731701AbgIHUNb (ORCPT ); Tue, 8 Sep 2020 16:13:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:34070 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731222AbgIHUNa (ORCPT ); Tue, 8 Sep 2020 16:13:30 -0400 Received: from localhost.localdomain (unknown [194.230.155.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2341A21919; Tue, 8 Sep 2020 20:13:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596010; bh=sNzB6t/5kKkQ+Ltfcjtg8unu1ta56Hhvl+AG2wXjpr8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=gsnPn53TiN/dbM/VAPmS/R5HE8LefCbpm8Q2L3CaOSQPbuXnjyhGV39m3PDytut5Y I8bggQ+fZLYRv1TN74BCjXucqJboDWBPvN13n6WsTeqs4xEhNwmP/cp7RlHoBlLFqP neAeuTRUyfq+38cHhZTD36xl2YRPA3xaEEL5w0i4= From: Krzysztof Kozlowski To: Sebastian Reichel , Rob Herring , "Andrew F. Davis" , =?utf-8?q?Pali_Roh=C3=A1r?= , Dan Murphy , Krzysztof Kozlowski , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/7] power: supply: bq27xxx: adjust whitespace Date: Tue, 8 Sep 2020 22:13:15 +0200 Message-Id: <20200908201319.3567-3-krzk@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200908201319.3567-1-krzk@kernel.org> References: <20200908201319.3567-1-krzk@kernel.org> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org No functional change. Signed-off-by: Krzysztof Kozlowski --- drivers/power/supply/bq27xxx_battery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c index 65806f668b1f..2deac3fbb036 100644 --- a/drivers/power/supply/bq27xxx_battery.c +++ b/drivers/power/supply/bq27xxx_battery.c @@ -76,7 +76,7 @@ /* BQ27Z561 has different layout for Flags register */ #define BQ27Z561_FLAG_FDC BIT(4) /* Battery fully discharged */ -#define BQ27Z561_FLAG_FC BIT(5) /* Battery fully charged */ +#define BQ27Z561_FLAG_FC BIT(5) /* Battery fully charged */ #define BQ27Z561_FLAG_DIS_CH BIT(6) /* Battery is discharging */ /* control register params */ From patchwork Tue Sep 8 20:13:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 11764449 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0F795618 for ; Tue, 8 Sep 2020 20:14:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EA1E12145D for ; Tue, 8 Sep 2020 20:14:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596058; bh=H5IQY9Nls454P7CTQaw3C3R6LUfM6Oc9TYn06wRJ0Lk=; h=From:To:Subject:Date:In-Reply-To:References:List-ID:From; b=P5bSiQPo9fzm850p/HxN5jfUYeGn+J94QA5C5sJItc9th5poO7RjlZpZ5afEwneXU 7k/MnDtwPTlUFMN2Z6/aEkSwDXw7aMqKda3jkVqidz/HwrM9WH6Snk7FqDfPZju2Oh PmNO9ecghntDZUQo1CXyZrg7QIDs4KAk4cv6h9OE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731746AbgIHUNk (ORCPT ); Tue, 8 Sep 2020 16:13:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:34086 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730166AbgIHUNc (ORCPT ); Tue, 8 Sep 2020 16:13:32 -0400 Received: from localhost.localdomain (unknown [194.230.155.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 7D90C21D43; Tue, 8 Sep 2020 20:13:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596012; bh=H5IQY9Nls454P7CTQaw3C3R6LUfM6Oc9TYn06wRJ0Lk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=XNkkWk4PFb+BBKBOZeVnGC030CV8O+55J/wM0/RiG/Rbm1Vwk8l5o/jb8z3yX8NBS YS0Pj5VeYCQz9rCh1O2AbWB0YgORzzkiULix3bVsED6yhRGj1ZsFaQssw/w/JNYkZf 5r3ak2dma0Vf2huLHdgv0NHMZe1DGKqOOFE3Gie0= From: Krzysztof Kozlowski To: Sebastian Reichel , Rob Herring , "Andrew F. Davis" , =?utf-8?q?Pali_Roh=C3=A1r?= , Dan Murphy , Krzysztof Kozlowski , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/7] power: supply: bq27xxx: use BIT() for bit flags Date: Tue, 8 Sep 2020 22:13:16 +0200 Message-Id: <20200908201319.3567-4-krzk@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200908201319.3567-1-krzk@kernel.org> References: <20200908201319.3567-1-krzk@kernel.org> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org BIT() is a preferred way to toggle bit-like flags: no problems with 32/64 bit systems, less chances for mistakes. Signed-off-by: Krzysztof Kozlowski --- drivers/power/supply/bq27xxx_battery.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c index 2deac3fbb036..e971af43dd45 100644 --- a/drivers/power/supply/bq27xxx_battery.c +++ b/drivers/power/supply/bq27xxx_battery.c @@ -847,13 +847,14 @@ static struct bq27xxx_dm_reg bq27621_dm_regs[] = { #define bq27z561_dm_regs 0 #define bq28z610_dm_regs 0 - -#define BQ27XXX_O_ZERO 0x00000001 -#define BQ27XXX_O_OTDC 0x00000002 /* has OTC/OTD overtemperature flags */ -#define BQ27XXX_O_UTOT 0x00000004 /* has OT overtemperature flag */ -#define BQ27XXX_O_CFGUP 0x00000008 -#define BQ27XXX_O_RAM 0x00000010 -#define BQ27Z561_O_BITS 0x00000020 +#define bq34z100_dm_regs 0 + +#define BQ27XXX_O_ZERO BIT(0) +#define BQ27XXX_O_OTDC BIT(1) /* has OTC/OTD overtemperature flags */ +#define BQ27XXX_O_UTOT BIT(2) /* has OT overtemperature flag */ +#define BQ27XXX_O_CFGUP BIT(3) +#define BQ27XXX_O_RAM BIT(4) +#define BQ27Z561_O_BITS BIT(5) #define BQ27XXX_DATA(ref, key, opt) { \ .opts = (opt), \ From patchwork Tue Sep 8 20:13:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 11764451 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 90A011599 for ; Tue, 8 Sep 2020 20:14:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6E94921919 for ; Tue, 8 Sep 2020 20:14:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596058; bh=G1rBETN5Htd6dGPg5Ma1dHWDGClo+P7ZqLA4Y4JKMW4=; h=From:To:Subject:Date:In-Reply-To:References:List-ID:From; b=QXDFhLARsaM/DQLko/Xe/Gg3O5ogRjhYWwVS09MQ4x16VEnA3qrX4+44+HcgvWcjS Dv0uoZHTLDf4kXdRiw5lB2xJBfh7wvm30Wojdc+A4y/VfNUE5+cBuG5TxhdOesiFj2 bVVE8z2COpQdWc3pq4mUMuhBm4RG7hJBei816xm4= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730547AbgIHUNi (ORCPT ); Tue, 8 Sep 2020 16:13:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:34102 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726738AbgIHUNg (ORCPT ); Tue, 8 Sep 2020 16:13:36 -0400 Received: from localhost.localdomain (unknown [194.230.155.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 2605120936; Tue, 8 Sep 2020 20:13:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596015; bh=G1rBETN5Htd6dGPg5Ma1dHWDGClo+P7ZqLA4Y4JKMW4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=kHVa7NspCaBfKbJYvTF6xCHEcZYas6hLZDVQoWl0jXEoLlqWbA5/XM91+kVjb0c5X wrt8HNNPXjipBPc8AgkMyYGY8pyny80M0nMQORV2hbMrQN73GpppOcCb15Rm28NAg6 B3Pb5zXg99rF/+FqvHyfLK01mMM7N1kSYNo9vU+s= From: Krzysztof Kozlowski To: Sebastian Reichel , Rob Herring , "Andrew F. Davis" , =?utf-8?q?Pali_Roh=C3=A1r?= , Dan Murphy , Krzysztof Kozlowski , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/7] power: supply: bq27xxx: add separate flag for single SoC register Date: Tue, 8 Sep 2020 22:13:17 +0200 Message-Id: <20200908201319.3567-5-krzk@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200908201319.3567-1-krzk@kernel.org> References: <20200908201319.3567-1-krzk@kernel.org> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org bq27000, bq27010 and upcoming bq34z100 have a single byte SoC register. However except this similarity, bq34z100 is quite different than bq27000/bq27010, so flag BQ27XXX_O_ZERO cannot be reused here. Add a new bit flag describing that SoC is a single byte register. No functional change for bq27000 and bq27010. Signed-off-by: Krzysztof Kozlowski --- drivers/power/supply/bq27xxx_battery.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c index e971af43dd45..88cdad0ecb08 100644 --- a/drivers/power/supply/bq27xxx_battery.c +++ b/drivers/power/supply/bq27xxx_battery.c @@ -855,6 +855,7 @@ static struct bq27xxx_dm_reg bq27621_dm_regs[] = { #define BQ27XXX_O_CFGUP BIT(3) #define BQ27XXX_O_RAM BIT(4) #define BQ27Z561_O_BITS BIT(5) +#define BQ27XXX_O_SOC_SI BIT(6) /* SoC is single register */ #define BQ27XXX_DATA(ref, key, opt) { \ .opts = (opt), \ @@ -872,8 +873,8 @@ static struct { enum power_supply_property *props; size_t props_size; } bq27xxx_chip_data[] = { - [BQ27000] = BQ27XXX_DATA(bq27000, 0 , BQ27XXX_O_ZERO), - [BQ27010] = BQ27XXX_DATA(bq27010, 0 , BQ27XXX_O_ZERO), + [BQ27000] = BQ27XXX_DATA(bq27000, 0 , BQ27XXX_O_ZERO | BQ27XXX_O_SOC_SI), + [BQ27010] = BQ27XXX_DATA(bq27010, 0 , BQ27XXX_O_ZERO | BQ27XXX_O_SOC_SI), [BQ2750X] = BQ27XXX_DATA(bq2750x, 0 , BQ27XXX_O_OTDC), [BQ2751X] = BQ27XXX_DATA(bq2751x, 0 , BQ27XXX_O_OTDC), [BQ2752X] = BQ27XXX_DATA(bq2752x, 0 , BQ27XXX_O_OTDC), @@ -1420,7 +1421,7 @@ static int bq27xxx_battery_read_soc(struct bq27xxx_device_info *di) { int soc; - if (di->opts & BQ27XXX_O_ZERO) + if (di->opts & BQ27XXX_O_SOC_SI) soc = bq27xxx_read(di, BQ27XXX_REG_SOC, true); else soc = bq27xxx_read(di, BQ27XXX_REG_SOC, false); From patchwork Tue Sep 8 20:13:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 11764445 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D10AA618 for ; Tue, 8 Sep 2020 20:14:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B8FE32145D for ; Tue, 8 Sep 2020 20:14:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596049; bh=kH3ZX6jeXwk/tHvglsarvks10HBChwFrU/V3tKKYUOU=; h=From:To:Subject:Date:In-Reply-To:References:List-ID:From; b=pZwQw5JIQSKQcUI6kwNRHwD+U0+Mz/dXnaxtcValV7Oc+SInLqPiy6Do0tlHYg7HD nvnzXG91XaLd7gHOXjHY/Ib4y/9ppWq6hH0nJYRCl/xMrtpEdcyl/trZDikQ5zTIY7 HwRS9ghPeajK2BsP5dPjc9KSlpQ6bxJ7aSE5G9yM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730780AbgIHUNo (ORCPT ); Tue, 8 Sep 2020 16:13:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:34156 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731791AbgIHUNk (ORCPT ); Tue, 8 Sep 2020 16:13:40 -0400 Received: from localhost.localdomain (unknown [194.230.155.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0C59A2145D; Tue, 8 Sep 2020 20:13:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596020; bh=kH3ZX6jeXwk/tHvglsarvks10HBChwFrU/V3tKKYUOU=; h=From:To:Subject:Date:In-Reply-To:References:From; b=eGBpo/kDj+x7uQmdnDxrmflNsylVVSNk0nUvRhgbbWVgUTF8RMVydYEXkft+4N1xN cl+Ky/Y71wJH8kf4KFeU5QW0q5/40VmsaHkc5vYlrpyPlT3joWWl9eZ5prfVvAHejP SUrQL5DxVZYRGZn/lj/3lgIU8oLbsRn9d3nAJv3k= From: Krzysztof Kozlowski To: Sebastian Reichel , Rob Herring , "Andrew F. Davis" , =?utf-8?q?Pali_Roh=C3=A1r?= , Dan Murphy , Krzysztof Kozlowski , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/7] power: supply: bq27xxx: add separate flag for capacity inaccurate Date: Tue, 8 Sep 2020 22:13:18 +0200 Message-Id: <20200908201319.3567-6-krzk@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200908201319.3567-1-krzk@kernel.org> References: <20200908201319.3567-1-krzk@kernel.org> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org bq27000, bq27010 and upcoming bq34z100 have a Capacity Inaccurate flag. However except this similarity, bq34z100 is quite different than bq27000/bq27010, so flag BQ27XXX_O_ZERO cannot be reused here. Add a new bit flag describing this capability. No functional change for bq27000 and bq27010. Signed-off-by: Krzysztof Kozlowski --- drivers/power/supply/bq27xxx_battery.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c index 88cdad0ecb08..cda03e1f9586 100644 --- a/drivers/power/supply/bq27xxx_battery.c +++ b/drivers/power/supply/bq27xxx_battery.c @@ -856,6 +856,7 @@ static struct bq27xxx_dm_reg bq27621_dm_regs[] = { #define BQ27XXX_O_RAM BIT(4) #define BQ27Z561_O_BITS BIT(5) #define BQ27XXX_O_SOC_SI BIT(6) /* SoC is single register */ +#define BQ27XXX_O_HAS_CI BIT(7) /* has Capacity Inaccurate flag */ #define BQ27XXX_DATA(ref, key, opt) { \ .opts = (opt), \ @@ -873,8 +874,8 @@ static struct { enum power_supply_property *props; size_t props_size; } bq27xxx_chip_data[] = { - [BQ27000] = BQ27XXX_DATA(bq27000, 0 , BQ27XXX_O_ZERO | BQ27XXX_O_SOC_SI), - [BQ27010] = BQ27XXX_DATA(bq27010, 0 , BQ27XXX_O_ZERO | BQ27XXX_O_SOC_SI), + [BQ27000] = BQ27XXX_DATA(bq27000, 0 , BQ27XXX_O_ZERO | BQ27XXX_O_SOC_SI | BQ27XXX_O_HAS_CI), + [BQ27010] = BQ27XXX_DATA(bq27010, 0 , BQ27XXX_O_ZERO | BQ27XXX_O_SOC_SI | BQ27XXX_O_HAS_CI), [BQ2750X] = BQ27XXX_DATA(bq2750x, 0 , BQ27XXX_O_OTDC), [BQ2751X] = BQ27XXX_DATA(bq2751x, 0 , BQ27XXX_O_OTDC), [BQ2752X] = BQ27XXX_DATA(bq2752x, 0 , BQ27XXX_O_OTDC), @@ -1659,7 +1660,7 @@ static int bq27xxx_battery_read_health(struct bq27xxx_device_info *di) void bq27xxx_battery_update(struct bq27xxx_device_info *di) { struct bq27xxx_reg_cache cache = {0, }; - bool has_ci_flag = di->opts & BQ27XXX_O_ZERO; + bool has_ci_flag = di->opts & BQ27XXX_O_HAS_CI; bool has_singe_flag = di->opts & BQ27XXX_O_ZERO; cache.flags = bq27xxx_read(di, BQ27XXX_REG_FLAGS, has_singe_flag); From patchwork Tue Sep 8 20:13:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 11764447 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BFDB8618 for ; Tue, 8 Sep 2020 20:14:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A24A9208FE for ; Tue, 8 Sep 2020 20:14:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596055; bh=wJ87e8T7EOYIHG2r7VdfUWG50zR+zTU8CzrQ6amSZO0=; h=From:To:Subject:Date:In-Reply-To:References:List-ID:From; b=gj+HhLlx8Bf6Jy0OMC1Ya8U9av/rk42ifgAXKKwZYSeccIp5yyUBSG8h/z3fhknWi /0fRY+nJ9IuZrsWHn45XoUogLaOx1SWGI77OzikeWwmYhZD0tnJrHY4eNAG/UmOTcL eW2ocRH4rBoIMUIRq87vAUjYu59FqC4OeKMz0UKM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730200AbgIHUOK (ORCPT ); Tue, 8 Sep 2020 16:14:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:34194 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730182AbgIHUNn (ORCPT ); Tue, 8 Sep 2020 16:13:43 -0400 Received: from localhost.localdomain (unknown [194.230.155.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6C82221919; Tue, 8 Sep 2020 20:13:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1599596022; bh=wJ87e8T7EOYIHG2r7VdfUWG50zR+zTU8CzrQ6amSZO0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=rIewicuzRpS0zihYsf461TwPuRaI/rMi41Si3bjy37M+K7TXipdMwstz6xMMMFMY6 Mz1xdAvMhsO2idev9YqdV/n8qq18B4HWKCfiDzNm5bVsUC8SQqSyUnWTwFjH07OQ1Y KVJ18b6C/nEN+aXaF+9kavK3hT3m8bmQEtgO6GA0= From: Krzysztof Kozlowski To: Sebastian Reichel , Rob Herring , "Andrew F. Davis" , =?utf-8?q?Pali_Roh=C3=A1r?= , Dan Murphy , Krzysztof Kozlowski , linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/7] power: supply: bq27xxx: add support for TI bq34z100 Date: Tue, 8 Sep 2020 22:13:19 +0200 Message-Id: <20200908201319.3567-7-krzk@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200908201319.3567-1-krzk@kernel.org> References: <20200908201319.3567-1-krzk@kernel.org> Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org Add support for new device: the TI bq34z100-G1, a Wide Range Fuel Gauge for Li-Ion, PbA, NiMH, and NiCd batteries. The device shares a lot with other models, although it has its own differences requiring new quirks. This patch was tested on a system equipped with NiMH batteries. Signed-off-by: Krzysztof Kozlowski --- drivers/power/supply/bq27xxx_battery.c | 50 +++++++++++++++++++++- drivers/power/supply/bq27xxx_battery_i2c.c | 2 + include/linux/power/bq27xxx_battery.h | 1 + 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c index cda03e1f9586..315e0909e6a4 100644 --- a/drivers/power/supply/bq27xxx_battery.c +++ b/drivers/power/supply/bq27xxx_battery.c @@ -38,6 +38,7 @@ * https://www.ti.com/product/bq27621-g1 * https://www.ti.com/product/bq27z561 * https://www.ti.com/product/bq28z610 + * https://www.ti.com/product/bq34z100-g1 */ #include @@ -476,6 +477,26 @@ static u8 [BQ27XXX_REG_DCAP] = 0x3c, [BQ27XXX_REG_AP] = 0x22, BQ27XXX_DM_REG_ROWS, + }, + bq34z100_regs[BQ27XXX_REG_MAX] = { + [BQ27XXX_REG_CTRL] = 0x00, + [BQ27XXX_REG_TEMP] = 0x0c, + [BQ27XXX_REG_INT_TEMP] = 0x2a, + [BQ27XXX_REG_VOLT] = 0x08, + [BQ27XXX_REG_AI] = 0x0a, + [BQ27XXX_REG_FLAGS] = 0x0e, + [BQ27XXX_REG_TTE] = 0x18, + [BQ27XXX_REG_TTF] = 0x1a, + [BQ27XXX_REG_TTES] = 0x1e, + [BQ27XXX_REG_TTECP] = INVALID_REG_ADDR, + [BQ27XXX_REG_NAC] = INVALID_REG_ADDR, + [BQ27XXX_REG_FCC] = 0x06, + [BQ27XXX_REG_CYCT] = 0x2c, + [BQ27XXX_REG_AE] = 0x24, + [BQ27XXX_REG_SOC] = 0x02, + [BQ27XXX_REG_DCAP] = 0x3c, + [BQ27XXX_REG_AP] = 0x22, + BQ27XXX_DM_REG_ROWS, }; static enum power_supply_property bq27000_props[] = { @@ -750,6 +771,27 @@ static enum power_supply_property bq28z610_props[] = { POWER_SUPPLY_PROP_MANUFACTURER, }; +static enum power_supply_property bq34z100_props[] = { + POWER_SUPPLY_PROP_STATUS, + POWER_SUPPLY_PROP_PRESENT, + POWER_SUPPLY_PROP_VOLTAGE_NOW, + POWER_SUPPLY_PROP_CURRENT_NOW, + POWER_SUPPLY_PROP_CAPACITY, + POWER_SUPPLY_PROP_CAPACITY_LEVEL, + POWER_SUPPLY_PROP_TEMP, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW, + POWER_SUPPLY_PROP_TIME_TO_EMPTY_AVG, + POWER_SUPPLY_PROP_TIME_TO_FULL_NOW, + POWER_SUPPLY_PROP_TECHNOLOGY, + POWER_SUPPLY_PROP_CHARGE_FULL, + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, + POWER_SUPPLY_PROP_CYCLE_COUNT, + POWER_SUPPLY_PROP_ENERGY_NOW, + POWER_SUPPLY_PROP_POWER_AVG, + POWER_SUPPLY_PROP_HEALTH, + POWER_SUPPLY_PROP_MANUFACTURER, +}; + struct bq27xxx_dm_reg { u8 subclass_id; u8 offset; @@ -857,6 +899,7 @@ static struct bq27xxx_dm_reg bq27621_dm_regs[] = { #define BQ27Z561_O_BITS BIT(5) #define BQ27XXX_O_SOC_SI BIT(6) /* SoC is single register */ #define BQ27XXX_O_HAS_CI BIT(7) /* has Capacity Inaccurate flag */ +#define BQ27XXX_O_MUL_CHEM BIT(8) /* multiple chemistries supported */ #define BQ27XXX_DATA(ref, key, opt) { \ .opts = (opt), \ @@ -903,6 +946,8 @@ static struct { [BQ27621] = BQ27XXX_DATA(bq27621, 0x80008000, BQ27XXX_O_UTOT | BQ27XXX_O_CFGUP | BQ27XXX_O_RAM), [BQ27Z561] = BQ27XXX_DATA(bq27z561, 0 , BQ27Z561_O_BITS), [BQ28Z610] = BQ27XXX_DATA(bq28z610, 0 , BQ27Z561_O_BITS), + [BQ34Z100] = BQ27XXX_DATA(bq34z100, 0 , BQ27XXX_O_OTDC | BQ27XXX_O_SOC_SI | \ + BQ27XXX_O_HAS_CI | BQ27XXX_O_MUL_CHEM), }; static DEFINE_MUTEX(bq27xxx_list_lock); @@ -1914,7 +1959,10 @@ static int bq27xxx_battery_get_property(struct power_supply *psy, ret = bq27xxx_simple_value(di->cache.time_to_full, val); break; case POWER_SUPPLY_PROP_TECHNOLOGY: - val->intval = POWER_SUPPLY_TECHNOLOGY_LION; + if (di->opts & BQ27XXX_O_MUL_CHEM) + val->intval = POWER_SUPPLY_TECHNOLOGY_UNKNOWN; + else + val->intval = POWER_SUPPLY_TECHNOLOGY_LION; break; case POWER_SUPPLY_PROP_CHARGE_NOW: ret = bq27xxx_simple_value(bq27xxx_battery_read_nac(di), val); diff --git a/drivers/power/supply/bq27xxx_battery_i2c.c b/drivers/power/supply/bq27xxx_battery_i2c.c index 765873dfc495..eb4f4284982f 100644 --- a/drivers/power/supply/bq27xxx_battery_i2c.c +++ b/drivers/power/supply/bq27xxx_battery_i2c.c @@ -247,6 +247,7 @@ static const struct i2c_device_id bq27xxx_i2c_id_table[] = { { "bq27621", BQ27621 }, { "bq27z561", BQ27Z561 }, { "bq28z610", BQ28Z610 }, + { "bq34z100", BQ34Z100 }, {}, }; MODULE_DEVICE_TABLE(i2c, bq27xxx_i2c_id_table); @@ -282,6 +283,7 @@ static const struct of_device_id bq27xxx_battery_i2c_of_match_table[] = { { .compatible = "ti,bq27621" }, { .compatible = "ti,bq27z561" }, { .compatible = "ti,bq28z610" }, + { .compatible = "ti,bq34z100" }, {}, }; MODULE_DEVICE_TABLE(of, bq27xxx_battery_i2c_of_match_table); diff --git a/include/linux/power/bq27xxx_battery.h b/include/linux/power/bq27xxx_battery.h index 987d9652aa4e..111a40d0d3d5 100644 --- a/include/linux/power/bq27xxx_battery.h +++ b/include/linux/power/bq27xxx_battery.h @@ -32,6 +32,7 @@ enum bq27xxx_chip { BQ27621, BQ27Z561, BQ28Z610, + BQ34Z100, }; struct bq27xxx_device_info;