From patchwork Tue Feb 25 08:51:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Vaittinen, Matti" X-Patchwork-Id: 11402895 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 F2A8C17E0 for ; Tue, 25 Feb 2020 08:52:03 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CBF872176D for ; Tue, 25 Feb 2020 08:52:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="t4+QhFw9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CBF872176D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=fi.rohmeurope.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Subject:To:From :Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=wXGB9W7jjm1cXueVa451CemS6KHKpsgdn1V3oTpS9O0=; b=t4+QhFw9RoYvhq o1zgNXOuj4zuRo8BR2SXYT18ryCwvvq9/+fL3vS8ONOvcZF6syUOIZuwAgx+1jHSBKJMtOme8j1uF NYYjYHWbZKwtnUMT0R8MF0HzXpgQf9Nn9v/+J3+Chv+Pq0rdYiATdhBv3P2YJJUYYMAJ0ooDnz1bX ccX4RoXstSfzghIG6J3jW4Si4YqXwS0zQhVn/a10Gmrc2uoCI2TBonqC1MLj+693wsNYPYeLT/RHW LlDV6Juxede+wImiJYfO6ehuoSD+0EIb+/43rChJH/+gMrVxqRgvOh/jZcOGJn9U6BLIDfi2DLsNh cXymf82M0ZSIHX3b1dWA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6Vwg-00011F-9C; Tue, 25 Feb 2020 08:52:02 +0000 Received: from mail-lj1-f195.google.com ([209.85.208.195]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1j6VwW-0000rz-6E; Tue, 25 Feb 2020 08:51:54 +0000 Received: by mail-lj1-f195.google.com with SMTP id h23so13100067ljc.8; Tue, 25 Feb 2020 00:51:51 -0800 (PST) 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:mime-version :content-disposition:user-agent; bh=Kvje0WIw7KFHi5eXdBrKsbSHw9Uloy6b5E6xrY+Sd2Y=; b=GvaptmZ0WlYsMBYS2R6EtDghnvhI2MyT6PcF5xjg7iG3o8sr/ME3SVT+nnMWyg9ib2 CppOrdLmIpDvMknw//Rie9Ym1v15sBdlssXpIgdwkUOnee5ePTM/POzo1b4ZL3Gak4H5 eP+ziAw30aVc03VRNtKQKoTH7wgVbOdW71W3E6SWoWVx920tIELoVqWQQKLfa5zW4Wx3 l/zWonZye/tDzNYZkk70SOhjWys1mSNfyUdz4Ti4ccHHTr7v9pDTXMKZJKkDJwWjLnGV 4Xv7DkujC448XvZzbuS43Gz/DcFudAZDud9scAa43prPG1lRglYt/0pIjOZ5zsdtzDqo oGXw== X-Gm-Message-State: APjAAAWioejMGVOpqSoildkk6czVlAEYgIQaZWfiHMtnbOPRmX4q2dln uKM2bObhYnQMe6EmkVxm+/I= X-Google-Smtp-Source: APXvYqz7uZdBXFV64Wz9Uhk6CHJuqHjdgYBSYtnPSe438XEGhZW7urMt4TKhbEmaDjed40LoEOMtSQ== X-Received: by 2002:a2e:9d0f:: with SMTP id t15mr32683526lji.171.1582620710301; Tue, 25 Feb 2020 00:51:50 -0800 (PST) Received: from localhost.localdomain ([213.255.186.46]) by smtp.gmail.com with ESMTPSA id q10sm7408725ljj.60.2020.02.25.00.51.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2020 00:51:49 -0800 (PST) Date: Tue, 25 Feb 2020 10:51:36 +0200 From: Matti Vaittinen To: matti.vaittinen@fi.rohmeurope.com, mazziesaccount@gmail.com Subject: [PATCH v4 0/9] Support ROHM BD99954 charger IC Message-ID: MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.12.1 (2019-06-15) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200225_005152_236496_7F6BBA74 X-CRM114-Status: GOOD ( 16.33 ) X-Spam-Score: 0.2 (/) X-Spam-Report: SpamAssassin version 3.4.3 on bombadil.infradead.org summary: Content analysis details: (0.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.208.195 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.208.195 listed in wl.mailspike.net] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.2 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [mazziesaccount[at]gmail.com] 0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , Andrei Stefanescu , "Rafael J. Wysocki" , Tony Lindgren , Sebastian Reichel , linux-samsung-soc@vger.kernel.org, linux-omap@vger.kernel.org, linux-pm@vger.kernel.org, Krzysztof Kozlowski , Bartosz Golaszewski , Chen-Yu Tsai , Andy Gross , Markus Laine , devicetree@vger.kernel.org, Charles Keepax , Bartlomiej Zolnierkiewicz , linux-arm-msm@vger.kernel.org, Richard Fitzgerald , Mark Brown , linux-mediatek@lists.infradead.org, Matthias Brugger , Bjorn Andersson , linux-arm-kernel@lists.infradead.org, Support Opensource , Sangbeom Kim , Greg Kroah-Hartman , Matti Vaittinen , Liam Girdwood , linux-kernel@vger.kernel.org, Mikko Mutanen , Rob Herring , patches@opensource.cirrus.com Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org Support ROHM BD99954 Battery Management IC ROHM BD99954 is a Battery Management IC for 1-4 cell Lithium-Ion secondary battery. BD99954 is intended to be used in space-constraint equipment such as Low profile Notebook PC, Tablets and other applications. Series extracts a "linear ranges" helper out of the regulator framework. Linear ranges helper is intended to help converting real-world values to register values when conversion is linear. I suspect this is useful also for power subsystem and possibly for clk. This version of series introduces new battry DT binding entries and adds the parsing in power_supply_get_battery_info(). Please note that regulator drivers have been compile tested (but not linked) after patch 5. Please also note that only the BD71847 based regulator testing has been performed after the patch 6 - all testing is highly appreciated. Changelog v4: generic: - rebase and drop RFC. DT-bindings: - add I2C node address-cells and size-cells to fix yaml check errors - uncomment multipleOf: bd70528: - add patch which renames driver internal linear_range struct to avoid collision when regulator/driver.h (which gets included from rohm generic header) introduces the linear_range struct. regulators: - rebase to v5.6-rc2 and convert also the two newly introduced drivers to use linear_range struct instead of regulator_linear_range. linear_ranges: - Fix kerneldoc. Changelog RFC-v3: DT-bindings: - fix the BD99954 binding (the *-microvolt Vs. *-microvolts issue is still there. Not sure which one is correct) - renabe tricklecharge-* binding to trickle-charge-* as suggested by Rob. - drop the linear-ranges helper which was written for BD70528 and extract the linear-range code from regulator framework instead. - refactor regulator framework to utilize extracted linear-ranges code. - change the struct regulator_linear_range to linear_range from regulator drivers. - refactor BD70528 to use regulator framework originated linear-ranges code. - change BD99954 to use linear-ranges code from regulator framework Changelog RFC-v2: DT-bindings: - Used the battery parameters described in battery.txt - Added few new parameters to battery.txt - Added ASCII art charging profile chart for BD99954 to explain states and limits. Linear ranges: - Fixed division by zero error from linear-ranges code if step 0 is used. Power-supply core: - Added parsing of new battery parameters. BD99954 driver: - converted to use battery parameters from battery node - Added step 0 ranges for reg values which do not change voltage - added dt-node to psy-config Patch 1: DT binding docs for the new battery parameters Patch 2: BD99954 charger DT binding docs Patch 3: Linear ranges helpers Patch 4: Rename driver internal struct linear_range from bd70528-power Patch 5: Rename struct regulator_linear_range to struct linear_range and convert regulator drivers to use renamed struct Patch 6: Use linear-ranges helpers in regulator framework Patch 7: Use linear-ranges helpers in bd70528 driver Patch 8: Parsing of new battery parameters Patch 9: ROHM BD99954 charger IC driver --- Matti Vaittinen (9): dt-bindings: battery: add new battery parameters dt_bindings: ROHM BD99954 Charger drivers: base: add linear ranges helpers power: supply: bd70528: rename linear_range to avoid collision regulator: rename regulator_linear_range to linear_range regulator: use linear_ranges helper power: supply: bd70528: use linear ranges power: supply: add battery parameters power: supply: Support ROHM bd99954 charger .../bindings/power/supply/battery.txt | 6 + .../bindings/power/supply/rohm,bd9995x.yaml | 155 +++ drivers/base/Kconfig | 3 + drivers/base/Makefile | 1 + drivers/base/linear_ranges.c | 246 ++++ drivers/power/supply/Kconfig | 11 + drivers/power/supply/Makefile | 1 + drivers/power/supply/bd70528-charger.c | 140 +- drivers/power/supply/bd99954-charger.c | 1171 +++++++++++++++++ drivers/power/supply/power_supply_core.c | 8 + drivers/regulator/88pg86x.c | 4 +- drivers/regulator/88pm800-regulator.c | 4 +- drivers/regulator/Kconfig | 1 + drivers/regulator/act8865-regulator.c | 4 +- drivers/regulator/act8945a-regulator.c | 2 +- drivers/regulator/arizona-ldo1.c | 2 +- drivers/regulator/arizona-micsupp.c | 4 +- drivers/regulator/as3711-regulator.c | 6 +- drivers/regulator/as3722-regulator.c | 4 +- drivers/regulator/axp20x-regulator.c | 16 +- drivers/regulator/bcm590xx-regulator.c | 8 +- drivers/regulator/bd70528-regulator.c | 8 +- drivers/regulator/bd71828-regulator.c | 10 +- drivers/regulator/bd718x7-regulator.c | 26 +- drivers/regulator/da903x.c | 2 +- drivers/regulator/helpers.c | 130 +- drivers/regulator/hi6421-regulator.c | 4 +- drivers/regulator/lochnagar-regulator.c | 4 +- drivers/regulator/lp873x-regulator.c | 4 +- drivers/regulator/lp87565-regulator.c | 2 +- drivers/regulator/lp8788-buck.c | 2 +- drivers/regulator/max77650-regulator.c | 2 +- drivers/regulator/mcp16502.c | 4 +- drivers/regulator/mp8859.c | 2 +- drivers/regulator/mt6323-regulator.c | 6 +- drivers/regulator/mt6358-regulator.c | 8 +- drivers/regulator/mt6380-regulator.c | 6 +- drivers/regulator/mt6397-regulator.c | 6 +- drivers/regulator/palmas-regulator.c | 4 +- drivers/regulator/qcom-rpmh-regulator.c | 2 +- drivers/regulator/qcom_rpm-regulator.c | 14 +- drivers/regulator/qcom_smd-regulator.c | 70 +- drivers/regulator/rk808-regulator.c | 10 +- drivers/regulator/s2mps11.c | 14 +- drivers/regulator/sky81452-regulator.c | 2 +- drivers/regulator/stpmic1_regulator.c | 18 +- drivers/regulator/tps65086-regulator.c | 10 +- drivers/regulator/tps65217-regulator.c | 4 +- drivers/regulator/tps65218-regulator.c | 6 +- drivers/regulator/tps65912-regulator.c | 4 +- drivers/regulator/twl-regulator.c | 4 +- drivers/regulator/twl6030-regulator.c | 2 +- drivers/regulator/wm831x-dcdc.c | 2 +- drivers/regulator/wm831x-ldo.c | 4 +- drivers/regulator/wm8350-regulator.c | 2 +- drivers/regulator/wm8400-regulator.c | 2 +- include/linux/linear_range.h | 48 + include/linux/power/bd99954-charger.h | 1075 +++++++++++++++ include/linux/power_supply.h | 4 + include/linux/regulator/driver.h | 27 +- 60 files changed, 3007 insertions(+), 344 deletions(-) create mode 100644 Documentation/devicetree/bindings/power/supply/rohm,bd9995x.yaml create mode 100644 drivers/base/linear_ranges.c create mode 100644 drivers/power/supply/bd99954-charger.c create mode 100644 include/linux/linear_range.h create mode 100644 include/linux/power/bd99954-charger.h base-commit 11a48a5a18c6 ("Linux 5.6-rc2")