From: David Heidelberg <david@ixit.cz>
To: Sebastian Reichel <sre@kernel.org>,
Jonghwa Lee <jonghwa3.lee@samsung.com>,
Chanwoo Choi <cw00.choi@samsung.com>,
Myungjoo Ham <myungjoo.ham@samsung.com>,
Sumit Semwal <sumit.semwal@linaro.org>,
John Stultz <john.stultz@linaro.org>,
Vinay Simha BN <simhavcs@gmail.com>,
mika.westerberg@linux.intel.com, ramakrishna.pallala@intel.com,
Dmitry Osipenko <digetx@gmail.com>,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: David Heidelberg <david@ixit.cz>,
Rob Herring <robh+dt@kernel.org>,
devicetree@vger.kernel.org
Subject: [PATCH 4/9] dt-bindings: power: supply: Add device-tree binding for Summit SMB3xx
Date: Sun, 29 Mar 2020 18:21:23 +0200 [thread overview]
Message-ID: <20200329162128.218584-5-david@ixit.cz> (raw)
In-Reply-To: <20200329161552.215075-1-david@ixit.cz>
Summit SMB3xx series is a Programmable Switching Li+ Battery Charger.
This device-tree binding documents Summit SMB345, SMB347 and SMB358 chargers.
Signed-off-by: David Heidelberg <david@ixit.cz>
---
.../power/supply/summit,smb347-charger.yaml | 224 ++++++++++++++++++
.../dt-bindings/power/summit,smb347-charger.h | 19 ++
2 files changed, 243 insertions(+)
create mode 100644 Documentation/devicetree/bindings/power/supply/summit,smb347-charger.yaml
create mode 100644 include/dt-bindings/power/summit,smb347-charger.h
diff --git a/Documentation/devicetree/bindings/power/supply/summit,smb347-charger.yaml b/Documentation/devicetree/bindings/power/supply/summit,smb347-charger.yaml
new file mode 100644
index 000000000000..1d6bccdcd233
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/supply/summit,smb347-charger.yaml
@@ -0,0 +1,224 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/power/supply/summit,smb347-charger.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Battery charger driver for SMB345, SMB347 and SMB358
+
+maintainers:
+ - David Heidelberg <david@ixit.cz>
+
+properties:
+ compatible:
+ enum:
+ - summit,smb345
+ - summit,smb347
+ - summit,smb358
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ summit,enable-usb-charging:
+ type: boolean
+ description: Enable charging trough USB.
+
+ summit,enable-otg-charging:
+ type: boolean
+ description: Provide power for USB OTG
+
+ summit,enable-mains-charging:
+ type: boolean
+ description: Enable charging trough mains
+
+ summit,enable-chg-ctrl:
+ description: Enable charging control
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ - enum:
+ - 0 # SMB3XX_CHG_ENABLE_SW SW (I2C interface)
+ - 1 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_LOW Pin control (Active Low)
+ - 2 # SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH Pin control (Active High)
+
+ summit,max-chg-curr:
+ description: Maximum current for charging (in uA)
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+
+ summit,max-chg-volt:
+ description: Maximum voltage for charging (in uV)
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 3500000
+ maximum: 4500000
+
+ summit,pre-chg-curr:
+ description: Pre-charging current for charging (in uA)
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+
+ summit,term-curr:
+ description: Charging cycle termination current (in uA)
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+
+ summit,fast-volt-threshold:
+ description: Voltage threshold to transit to fast charge mode (in uV)
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 2400000
+ maximum: 3000000
+
+ summit,mains-curr-limit:
+ description: Maximum input current from AC/DC input (in uA)
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+
+ summit,usb-curr-limit:
+ description: Maximum input current from USB input (in uA)
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+
+ summit,chg-curr-comp:
+ description: Charge current compensation (in uA)
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+
+ summit,chip-temp-threshold:
+ description: Chip temperature for thermal regulation in °C.
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [100, 110, 120, 130]
+
+ summit,soft-cold-temp-limit:
+ description: Cold battery temperature in °C for soft alarm.
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [0, 5, 10, 15]
+
+ summit,soft-hot-temp-limit:
+ description: Hot battery temperature in °C for soft alarm.
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [40, 45, 50, 55]
+
+ summit,hard-cold-temp-limit:
+ description: Cold battery temperature in °C for hard alarm.
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/int32
+ enum: [-5, 0, 5, 10]
+
+ summit,hard-hot-temp-limit:
+ description: Hot battery temperature in °C for hard alarm.
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ enum: [50, 55, 60, 65]
+
+ summit,soft-comp-method:
+ description: Soft temperature limit compensation method
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ - enum:
+ - 0 # SMB3XX_SOFT_TEMP_COMPENSATE_NONE Compensation none
+ - 1 # SMB3XX_SOFT_TEMP_COMPENSATE_CURRENT Current compensation
+ - 2 # SMB3XX_SOFT_TEMP_COMPENSATE_VOLTAGE Voltage compensation
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ enum:
+ - summit,smb345
+ - summit,smb358
+
+ then:
+ properties:
+ summit,max-chg-curr:
+ enum: [ 200000, 450000, 600000, 900000,
+ 1300000, 1500000, 1800000, 2000000]
+
+ summit,pre-chg-curr:
+ enum: [150000, 250000, 350000, 450000]
+
+ summit,term-curr:
+ enum: [ 30000, 40000, 60000, 80000,
+ 100000, 125000, 150000, 200000]
+
+ summit,mains-curr-limit:
+ enum: [ 300000, 500000, 700000, 1000000,
+ 1500000, 1800000, 2000000]
+
+ summit,usb-curr-limit:
+ enum: [ 300000, 500000, 700000, 1000000,
+ 1500000, 1800000, 2000000]
+
+ summit,chg-curr-comp:
+ enum: [200000, 450000, 600000, 900000]
+
+ else:
+ properties:
+ summit,max-chg-curr:
+ enum: [ 700000, 900000, 1200000, 1500000,
+ 1800000, 2000000, 2200000, 2500000]
+
+ summit,pre-chg-curr:
+ enum: [100000, 150000, 200000, 250000]
+
+ summit,term-curr:
+ enum: [ 37500, 50000, 100000, 150000,
+ 200000, 250000, 500000, 600000]
+
+ summit,mains-curr-limit:
+ enum: [ 300000, 500000, 700000, 900000, 1200000,
+ 1500000, 1800000, 2000000, 2200000, 2500000]
+
+ summit,usb-curr-limit:
+ enum: [ 300000, 500000, 700000, 900000, 1200000,
+ 1500000, 1800000, 2000000, 2200000, 2500000]
+
+ summit,chg-curr-comp:
+ enum: [250000, 700000, 900000, 1200000]
+
+required:
+ - compatible
+ - reg
+
+anyOf:
+ - required:
+ - summit,enable-usb-charging
+ - required:
+ - summit,enable-otg-charging
+ - required:
+ - summit,enable-mains-charging
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/power/summit,smb347-charger.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ charger@7f {
+ compatible = "summit,smb347";
+ reg = <0x7f>;
+ status = "okay";
+
+ summit,max-chg-curr = <1800000>;
+ summit,mains-curr-limit = <2000000>;
+ summit,usb-curr-limit = <500000>;
+
+ summit,chip-temp-threshold = <110>;
+ summit,soft-cold-temp-limit = <5>;
+
+ summit,enable-usb-charging;
+ summit,enable-mains-charging;
+
+ summit,enable-chg-ctrl = <SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH>;
+ };
+ };
diff --git a/include/dt-bindings/power/summit,smb347-charger.h b/include/dt-bindings/power/summit,smb347-charger.h
new file mode 100644
index 000000000000..d918bf321a71
--- /dev/null
+++ b/include/dt-bindings/power/summit,smb347-charger.h
@@ -0,0 +1,19 @@
+/* SPDX-License-Identifier: (GPL-2.0-or-later or MIT) */
+/*
+ * Author: David Heidelberg <david@ixit.cz>
+ */
+
+#ifndef _DT_BINDINGS_SMB347_CHARGER_H
+#define _DT_BINDINGS_SMB347_CHARGER_H
+
+/* Charging compensation method */
+#define SMB3XX_SOFT_TEMP_COMPENSATE_NONE 0
+#define SMB3XX_SOFT_TEMP_COMPENSATE_CURRENT 1
+#define SMB3XX_SOFT_TEMP_COMPENSATE_VOLTAGE 2
+
+/* Charging enable control */
+#define SMB3XX_CHG_ENABLE_SW 0
+#define SMB3XX_CHG_ENABLE_PIN_ACTIVE_LOW 1
+#define SMB3XX_CHG_ENABLE_PIN_ACTIVE_HIGH 2
+
+#endif
--
2.25.0
next prev parent reply other threads:[~2020-03-29 16:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-29 16:15 [PATCH 0/9] Summit SMB3xx driver & device-tree David Heidelberg
2020-03-29 16:15 ` [PATCH 1/9] power: supply: smb347-charger: IRQSTAT_D is volatile David Heidelberg
2020-05-10 16:28 ` Sebastian Reichel
2020-03-29 16:15 ` [PATCH 2/9] power: supply: smb347-charger: Add delay before getting IRQSTAT David Heidelberg
2020-05-10 16:28 ` Sebastian Reichel
2020-03-29 16:15 ` [PATCH 3/9] power: supply: smb347-charger: Use resource-managed API David Heidelberg
2020-05-10 16:33 ` Sebastian Reichel
2020-03-29 16:21 ` David Heidelberg [this message]
2020-04-10 16:49 ` [PATCH 4/9] dt-bindings: power: supply: Add device-tree binding for Summit SMB3xx Rob Herring
2020-04-10 19:02 ` Dmitry Osipenko
2020-04-15 14:27 ` Rob Herring
2020-04-15 15:30 ` Dmitry Osipenko
2020-05-09 1:14 ` Sebastian Reichel
2020-05-14 19:34 ` Dmitry Osipenko
2020-03-29 16:21 ` [PATCH 5/9] power: supply: smb347-charger: Implement device-tree support David Heidelberg
2020-03-31 0:25 ` Jonghwa Lee
2020-03-31 17:20 ` Dmitry Osipenko
2020-03-29 16:21 ` [PATCH 6/9] power: supply: smb347-charger: Support SMB345 and SMB358 David Heidelberg
2020-05-10 16:40 ` Sebastian Reichel
2020-03-29 16:21 ` [PATCH 7/9] power: supply: smb347-charger: Remove virtual smb347-battery David Heidelberg
2020-03-29 16:21 ` [PATCH 8/9] power: supply: smb347-charger: Replace mutex with IRQ disable/enable David Heidelberg
2020-03-29 16:21 ` [PATCH 9/9] arm: dts: qcom: apq8064-nexus7: Add smb345 charger node David Heidelberg
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=20200329162128.218584-5-david@ixit.cz \
--to=david@ixit.cz \
--cc=cw00.choi@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=digetx@gmail.com \
--cc=john.stultz@linaro.org \
--cc=jonghwa3.lee@samsung.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=myungjoo.ham@samsung.com \
--cc=ramakrishna.pallala@intel.com \
--cc=robh+dt@kernel.org \
--cc=simhavcs@gmail.com \
--cc=sre@kernel.org \
--cc=sumit.semwal@linaro.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