Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp844950imm; Fri, 12 Oct 2018 07:36:52 -0700 (PDT) X-Google-Smtp-Source: ACcGV62umXNVF00TPQpY9zyE5FDlAOG6X2YkJRVfMoyub/7Lkn28BVspRr266KVe5XyRtmZmcH7D X-Received: by 2002:a17:902:3204:: with SMTP id y4-v6mr1349950plb.135.1539355011974; Fri, 12 Oct 2018 07:36:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539355011; cv=none; d=google.com; s=arc-20160816; b=ex8mqQuDO0hcWkATfytibrJ5+4L9njWdl7BaEbj8pF0FxUteVZNQ7SJ2qojFCH2bnz 8fDwEaRVyyC672UiohwUw5LgvyRbsmVFE1HMrN9TV1o4HpOcpjrzDjhO5Lbj3zyX/fEf 59sTwqUTy5AP08vpjxX1Mf39nRC+CwhC/jpQsyae5AfNW1xurNl/As9LPyvNF9UtiY4A XVm2xkI6zbNWqXJWkxZZvrpmruFEXmt0ViOQx0uq07Vb8b0JXzz0oc/CtGvaajb+6iNK nQN3iAh8adiGiUmiQ8Kwl0z61DFXY0we9ZEYB4m1MUnrqyLMuVHPt9j9QQeDNIA750z1 jzBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=YwVfaSO92we1ZAmc6v9BDIq47cpl1Ky0G9WYjwEqf/M=; b=d4o+wTugtZyjRrIvHGAINqkOn2tXH8uSFPDcZnDigdn4KE13ZUZLzJMMMOvfmJEekL JLOVSOZjVa2FsS7n7IsonkLiqrQR8oZo35tWWq7wnBzuzxoY2cOiEZE/hHC4ElVc7c7m t8p6CGppxCZK2DYsoQr4n3i2AouDgHBKxRISYYI/bblI35eLAK0wsnWscmq2V+GW9phj +Ll6pI9+ESyYZqrehP93p+21NUJxjxeg525ETC4dfCAJnU0sAYX6hdYif5bEThuHLfEg ZWaD9QMCG6u9WGAZ0CjAnrGKkJo9+jp4Uifnomhpq40CDK98TGywOfw8BGin237t0ZO4 qqdg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m10-v6si1484949pgc.130.2018.10.12.07.36.36; Fri, 12 Oct 2018 07:36:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729025AbeJLWIQ (ORCPT + 99 others); Fri, 12 Oct 2018 18:08:16 -0400 Received: from mail-oi1-f193.google.com ([209.85.167.193]:36549 "EHLO mail-oi1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728809AbeJLWIQ (ORCPT ); Fri, 12 Oct 2018 18:08:16 -0400 Received: by mail-oi1-f193.google.com with SMTP id p125-v6so10023833oic.3; Fri, 12 Oct 2018 07:35:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=YwVfaSO92we1ZAmc6v9BDIq47cpl1Ky0G9WYjwEqf/M=; b=Ks1aTrUtE04q8xNJIhOG+u7SS15JOsASPX1qLf8jq0NPvmCbXAaq+T16Etw/kWY8OT zwY5eyrX4gYiYxM1S//tXjc4jNcRXLLkKVUQ71eSDk5lfK0GOnlk2Q0fml4UkM4LxQU7 eDkmDMBkaxntHnb3i847TtnQYeYC8I/D+5fXyDYaYyK5IDGmZQOgti9hELFueQDZfkjJ 1Z/t3Uimfg47U/GtD6Q4IP/1M+nEM7o4J91+vVNEWJ/0qHrfnxtXR1dzibU705SN8M/5 dceg/Wp6mvE9RMXcqudiNaGPQKz1VoNBjTJ/3CLVfXXURepl6xBTPWi9KIFZ7uOU63Ux kI2Q== X-Gm-Message-State: ABuFfohX0nebgR5B0DEJW3CVkEKRXicQijzyYClwXvxHqikyOw3OW6bo QcVqxdwqryBbs8kcd7eSiA== X-Received: by 2002:aca:704:: with SMTP id 4-v6mr3148770oih.119.1539354932180; Fri, 12 Oct 2018 07:35:32 -0700 (PDT) Received: from localhost (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.gmail.com with ESMTPSA id 31-v6sm369846ota.23.2018.10.12.07.35.31 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 12 Oct 2018 07:35:31 -0700 (PDT) Date: Fri, 12 Oct 2018 09:35:30 -0500 From: Rob Herring To: Baolin Wang Cc: sre@kernel.org, mark.rutland@arm.com, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, yuanjiang.yu@unisoc.com, broonie@kernel.org, ctatlor97@gmail.com, linus.walleij@linaro.org Subject: Re: [PATCH v3 2/4] power: supply: core: Introduce properties to present the battery OCV capacity table Message-ID: <20181012143530.GA28145@bogus> References: <2787f18a0366576959557d05112a069dca982269.1538033078.git.baolin.wang@linaro.org> <7dccec1694a05a524710e59a63859974b4cdae89.1538033078.git.baolin.wang@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7dccec1694a05a524710e59a63859974b4cdae89.1538033078.git.baolin.wang@linaro.org> User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Sep 27, 2018 at 03:26:55PM +0800, Baolin Wang wrote: > Some battery driver will use the open circuit voltage (OCV) value to look > up the corresponding battery capacity percent in one certain degree Celsius. > Thus this patch provides some battery properties to present the OCV table > temperatures and OCV capacity table values. Moreover it also provides some > helper functions to use the OCV capacity table for users. > > Suggested-by: Sebastian Reichel > Signed-off-by: Baolin Wang > Reviewed-by: Linus Walleij > --- > Changes from v2: > - Use type __be32 to calculate the table length. > - Update error messages. > - Add some helper functions. > > Changes from v1: > - New patch in v2. > --- > .../devicetree/bindings/power/supply/battery.txt | 14 +++ Please split binding patches. > drivers/power/supply/power_supply_core.c | 125 +++++++++++++++++++- > include/linux/power_supply.h | 19 +++ > 3 files changed, 157 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/power/supply/battery.txt b/Documentation/devicetree/bindings/power/supply/battery.txt > index 938d027..cad38df 100644 > --- a/Documentation/devicetree/bindings/power/supply/battery.txt > +++ b/Documentation/devicetree/bindings/power/supply/battery.txt > @@ -23,6 +23,16 @@ Optional Properties: > - 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 > + - ocv-capacity-table-0: An array providing the battery capacity percent > + with corresponding open circuit voltage (OCV) of the battery, which > + is used to look up battery capacity according to current OCV value. > + - ocv-capacity-table-1: Same as ocv-capacity-table-0 > + ...... > + - ocv-capacity-table-n: Same as ocv-capacity-table-0 So it is tubles of (percent, voltage)? What's the units for voltage? What determines the # of entries for each table? Do all tables have the same number of entries? > + - ocv-capacity-table-temperatures: An array containing the temperature > + in degree Celsius, for each of the battery capacity lookup table. > + The first temperature value specifies the OCV table 0, and the second > + temperature value specifies the OCV table 1, and so on. This should have unit suffix. Perhaps just "ocv-capacity-celsius" to avoid being too long. > Battery properties are named, where possible, for the corresponding > elements in enum power_supply_property, defined in > @@ -44,6 +54,10 @@ Example: > constant-charge-current-max-microamp = <900000>; > constant-charge-voltage-max-microvolt = <4200000>; > factory-internal-resistance-micro-ohms = <250000>; > + ocv-capacity-table-temperatures = <(-10) 0 10>; > + ocv-capacity-table-0 = <4185000 100>, <4113000 95>, <4066000 90>, ...; > + ocv-capacity-table-1 = <4200000 100>, <4185000 95>, <4113000 90>, ...; > + ocv-capacity-table-2 = <4250000 100>, <4200000 95>, <4185000 90>, ...; > }; > > charger: charger@11 {