diff mbox series

[04/38] dt-bindings: power: supply: bq25890: Convert to DT schema format

Message ID 20210312154357.1561730-5-sebastian.reichel@collabora.com (mailing list archive)
State Not Applicable, archived
Headers show
Series Convert power-supply DT bindings to YAML | expand

Commit Message

Sebastian Reichel March 12, 2021, 3:43 p.m. UTC
Convert the binding to DT schema format.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
 .../bindings/power/supply/bq25890.txt         |  60 ---------
 .../bindings/power/supply/bq25890.yaml        | 125 ++++++++++++++++++
 2 files changed, 125 insertions(+), 60 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/power/supply/bq25890.txt
 create mode 100644 Documentation/devicetree/bindings/power/supply/bq25890.yaml

Comments

Rob Herring March 15, 2021, 6:21 p.m. UTC | #1
On Fri, Mar 12, 2021 at 8:44 AM Sebastian Reichel
<sebastian.reichel@collabora.com> wrote:
>
> Convert the binding to DT schema format.
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
>  .../bindings/power/supply/bq25890.txt         |  60 ---------
>  .../bindings/power/supply/bq25890.yaml        | 125 ++++++++++++++++++
>  2 files changed, 125 insertions(+), 60 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/power/supply/bq25890.txt
>  create mode 100644 Documentation/devicetree/bindings/power/supply/bq25890.yaml
>
> diff --git a/Documentation/devicetree/bindings/power/supply/bq25890.txt b/Documentation/devicetree/bindings/power/supply/bq25890.txt
> deleted file mode 100644
> index 805040c6fff9..000000000000
> --- a/Documentation/devicetree/bindings/power/supply/bq25890.txt
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -Binding for TI bq25890 Li-Ion Charger
> -
> -This driver will support the bq25892, the bq25896 and the bq25890. There are
> -other ICs in the same family but those have not been tested.
> -
> -Required properties:
> -- compatible: Should contain one of the following:
> -    * "ti,bq25890"
> -    * "ti,bq25892"
> -    * "ti,bq25895"
> -    * "ti,bq25896"
> -- reg: integer, i2c address of the device.
> -- interrupts: interrupt line;
> -- ti,battery-regulation-voltage: integer, maximum charging voltage (in uV);
> -- ti,charge-current: integer, maximum charging current (in uA);
> -- ti,termination-current: integer, charge will be terminated when current in
> -    constant-voltage phase drops below this value (in uA);
> -- ti,precharge-current: integer, maximum charge current during precharge
> -    phase (in uA);
> -- ti,minimum-sys-voltage: integer, when battery is charging and it is below
> -    minimum system voltage, the system will be regulated above
> -    minimum-sys-voltage setting (in uV);
> -- ti,boost-voltage: integer, VBUS voltage level in boost mode (in uV);
> -- ti,boost-max-current: integer, maximum allowed current draw in boost mode
> -    (in uA).
> -
> -Optional properties:
> -- ti,boost-low-freq: boolean, if present boost mode frequency will be 500kHz,
> -    otherwise 1.5MHz;
> -- ti,use-ilim-pin: boolean, if present the ILIM resistor will be used and the
> -    input current will be the lower between the resistor setting and the IINLIM
> -    register setting;
> -- ti,thermal-regulation-threshold: integer, temperature above which the charge
> -    current is lowered, to avoid overheating (in degrees Celsius). If omitted,
> -    the default setting will be used (120 degrees);
> -- ti,ibatcomp-micro-ohms: integer, value of a resistor in series with
> -    the battery;
> -- ti,ibatcomp-clamp-microvolt: integer, maximum charging voltage adjustment due
> -    to expected voltage drop on in-series resistor;
> -
> -Example:
> -
> -bq25890 {
> -       compatible = "ti,bq25890";
> -       reg = <0x6a>;
> -
> -       interrupt-parent = <&gpio1>;
> -       interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
> -
> -       ti,battery-regulation-voltage = <4200000>;
> -       ti,charge-current = <1000000>;
> -       ti,termination-current = <50000>;
> -       ti,precharge-current = <128000>;
> -       ti,minimum-sys-voltage = <3600000>;
> -       ti,boost-voltage = <5000000>;
> -       ti,boost-max-current = <1000000>;
> -
> -       ti,use-ilim-pin;
> -       ti,thermal-regulation-threshold = <120>;
> -};
> diff --git a/Documentation/devicetree/bindings/power/supply/bq25890.yaml b/Documentation/devicetree/bindings/power/supply/bq25890.yaml
> new file mode 100644
> index 000000000000..de6e03ec120c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/power/supply/bq25890.yaml
> @@ -0,0 +1,125 @@
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (C) 2021 Sebastian Reichel
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/power/supply/bq25890.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Binding for bq25890, bq25892, bq25895 and bq25896 Li-Ion Charger
> +
> +maintainers:
> +  - Sebastian Reichel <sre@kernel.org>
> +
> +allOf:
> +  - $ref: power-supply.yaml#
> +
> +properties:
> +  compatible:
> +    enum:
> +      - ti,bq25890
> +      - ti,bq25892
> +      - ti,bq25895
> +      - ti,bq25896
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  ti,battery-regulation-voltage:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: maximum charging voltage (in uV)
> +
> +  ti,charge-current:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: maximum charging current (in uA)
> +
> +  ti,termination-current:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      charge will be terminated when current in constant-voltage phase
> +      drops below this value (in uA)
> +
> +  ti,precharge-current:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: maximum charge current during precharge phase (in uA)
> +
> +  ti,minimum-sys-voltage:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      when battery is charging and it is below minimum system voltage,
> +      the system will be regulated above minimum-sys-voltage setting (in uV)
> +
> +  ti,boost-voltage:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: VBUS voltage level in boost mode (in uV)
> +
> +  ti,boost-max-current:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: maximum allowed current draw in boost mode (in uA)
> +
> +  ti,boost-low-freq:
> +    description: boost mode frequency will be 500kHz, otherwise 1.5MHz
> +    type: boolean
> +
> +  ti,use-ilim-pin:
> +    description: |
> +      ILIM resistor will be used and the input current will be the lower
> +      between the resistor setting and the IINLIM register setting
> +    type: boolean
> +
> +  ti,thermal-regulation-threshold:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: |
> +      temperature above which the charge current is lowered, to avoid overheating
> +      (in degrees Celsius). If omitted, the default setting will be used (120 degrees)
> +
> +  ti,ibatcomp-micro-ohms:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: value of a resistor in series with the battery (in Micro Ohms)
> +
> +  ti,ibatcomp-clamp-microvolt:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: max. charging voltage adjustment due to expected voltage drop on in-series resistor

You don't need a type $ref on properties with a standard unit suffix.
Though it looks like there's some non-standard ones (-microvolts) in
the series.

Rob
Sebastian Reichel March 16, 2021, 4:46 p.m. UTC | #2
Hi,

On Mon, Mar 15, 2021 at 12:21:34PM -0600, Rob Herring wrote:
> On Fri, Mar 12, 2021 at 8:44 AM Sebastian Reichel
> <sebastian.reichel@collabora.com> wrote:
> > +  ti,ibatcomp-clamp-microvolt:
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    description: max. charging voltage adjustment due to expected voltage drop on in-series resistor
> 
> You don't need a type $ref on properties with a standard unit suffix.
> Though it looks like there's some non-standard ones (-microvolts) in
> the series.

Ok. Unfortunately most properties in this series use non-standard
ones :(. Newer bindings using common properties have already been
written in YAML and/or make use of simple-battery.

Can we have a warning for this in the dt_binding_check? Maybe
something like

superfluous $ref for property with standard suffix

-- Sebastian
Rob Herring March 16, 2021, 5:50 p.m. UTC | #3
On Tue, Mar 16, 2021 at 10:46 AM Sebastian Reichel
<sebastian.reichel@collabora.com> wrote:
>
> Hi,
>
> On Mon, Mar 15, 2021 at 12:21:34PM -0600, Rob Herring wrote:
> > On Fri, Mar 12, 2021 at 8:44 AM Sebastian Reichel
> > <sebastian.reichel@collabora.com> wrote:
> > > +  ti,ibatcomp-clamp-microvolt:
> > > +    $ref: /schemas/types.yaml#/definitions/uint32
> > > +    description: max. charging voltage adjustment due to expected voltage drop on in-series resistor
> >
> > You don't need a type $ref on properties with a standard unit suffix.
> > Though it looks like there's some non-standard ones (-microvolts) in
> > the series.
>
> Ok. Unfortunately most properties in this series use non-standard
> ones :(. Newer bindings using common properties have already been
> written in YAML and/or make use of simple-battery.
>
> Can we have a warning for this in the dt_binding_check? Maybe
> something like

Yeah, I'm working on that.

> superfluous $ref for property with standard suffix

And having more helpful error messages is on my todo, but not much BW
to work on ATM.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/power/supply/bq25890.txt b/Documentation/devicetree/bindings/power/supply/bq25890.txt
deleted file mode 100644
index 805040c6fff9..000000000000
--- a/Documentation/devicetree/bindings/power/supply/bq25890.txt
+++ /dev/null
@@ -1,60 +0,0 @@ 
-Binding for TI bq25890 Li-Ion Charger
-
-This driver will support the bq25892, the bq25896 and the bq25890. There are
-other ICs in the same family but those have not been tested.
-
-Required properties:
-- compatible: Should contain one of the following:
-    * "ti,bq25890"
-    * "ti,bq25892"
-    * "ti,bq25895"
-    * "ti,bq25896"
-- reg: integer, i2c address of the device.
-- interrupts: interrupt line;
-- ti,battery-regulation-voltage: integer, maximum charging voltage (in uV);
-- ti,charge-current: integer, maximum charging current (in uA);
-- ti,termination-current: integer, charge will be terminated when current in
-    constant-voltage phase drops below this value (in uA);
-- ti,precharge-current: integer, maximum charge current during precharge
-    phase (in uA);
-- ti,minimum-sys-voltage: integer, when battery is charging and it is below
-    minimum system voltage, the system will be regulated above
-    minimum-sys-voltage setting (in uV);
-- ti,boost-voltage: integer, VBUS voltage level in boost mode (in uV);
-- ti,boost-max-current: integer, maximum allowed current draw in boost mode
-    (in uA).
-
-Optional properties:
-- ti,boost-low-freq: boolean, if present boost mode frequency will be 500kHz,
-    otherwise 1.5MHz;
-- ti,use-ilim-pin: boolean, if present the ILIM resistor will be used and the
-    input current will be the lower between the resistor setting and the IINLIM
-    register setting;
-- ti,thermal-regulation-threshold: integer, temperature above which the charge
-    current is lowered, to avoid overheating (in degrees Celsius). If omitted,
-    the default setting will be used (120 degrees);
-- ti,ibatcomp-micro-ohms: integer, value of a resistor in series with
-    the battery;
-- ti,ibatcomp-clamp-microvolt: integer, maximum charging voltage adjustment due
-    to expected voltage drop on in-series resistor;
-
-Example:
-
-bq25890 {
-	compatible = "ti,bq25890";
-	reg = <0x6a>;
-
-	interrupt-parent = <&gpio1>;
-	interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
-
-	ti,battery-regulation-voltage = <4200000>;
-	ti,charge-current = <1000000>;
-	ti,termination-current = <50000>;
-	ti,precharge-current = <128000>;
-	ti,minimum-sys-voltage = <3600000>;
-	ti,boost-voltage = <5000000>;
-	ti,boost-max-current = <1000000>;
-
-	ti,use-ilim-pin;
-	ti,thermal-regulation-threshold = <120>;
-};
diff --git a/Documentation/devicetree/bindings/power/supply/bq25890.yaml b/Documentation/devicetree/bindings/power/supply/bq25890.yaml
new file mode 100644
index 000000000000..de6e03ec120c
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/supply/bq25890.yaml
@@ -0,0 +1,125 @@ 
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2021 Sebastian Reichel
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/power/supply/bq25890.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: Binding for bq25890, bq25892, bq25895 and bq25896 Li-Ion Charger
+
+maintainers:
+  - Sebastian Reichel <sre@kernel.org>
+
+allOf:
+  - $ref: power-supply.yaml#
+
+properties:
+  compatible:
+    enum:
+      - ti,bq25890
+      - ti,bq25892
+      - ti,bq25895
+      - ti,bq25896
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  ti,battery-regulation-voltage:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: maximum charging voltage (in uV)
+
+  ti,charge-current:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: maximum charging current (in uA)
+
+  ti,termination-current:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      charge will be terminated when current in constant-voltage phase
+      drops below this value (in uA)
+
+  ti,precharge-current:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: maximum charge current during precharge phase (in uA)
+
+  ti,minimum-sys-voltage:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      when battery is charging and it is below minimum system voltage,
+      the system will be regulated above minimum-sys-voltage setting (in uV)
+
+  ti,boost-voltage:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: VBUS voltage level in boost mode (in uV)
+
+  ti,boost-max-current:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: maximum allowed current draw in boost mode (in uA)
+
+  ti,boost-low-freq:
+    description: boost mode frequency will be 500kHz, otherwise 1.5MHz
+    type: boolean
+
+  ti,use-ilim-pin:
+    description: |
+      ILIM resistor will be used and the input current will be the lower
+      between the resistor setting and the IINLIM register setting
+    type: boolean
+
+  ti,thermal-regulation-threshold:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: |
+      temperature above which the charge current is lowered, to avoid overheating
+      (in degrees Celsius). If omitted, the default setting will be used (120 degrees)
+
+  ti,ibatcomp-micro-ohms:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: value of a resistor in series with the battery (in Micro Ohms)
+
+  ti,ibatcomp-clamp-microvolt:
+    $ref: /schemas/types.yaml#/definitions/uint32
+    description: max. charging voltage adjustment due to expected voltage drop on in-series resistor
+
+required:
+  - compatible
+  - reg
+  - interrupts
+  - ti,battery-regulation-voltage
+  - ti,charge-current
+  - ti,termination-current
+  - ti,precharge-current
+  - ti,minimum-sys-voltage
+  - ti,boost-voltage
+  - ti,boost-max-current
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c0 {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      charger@6a {
+        compatible = "ti,bq25890";
+        reg = <0x6a>;
+
+        interrupt-parent = <&gpio1>;
+        interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
+
+        ti,battery-regulation-voltage = <4200000>;
+        ti,charge-current = <1000000>;
+        ti,termination-current = <50000>;
+        ti,precharge-current = <128000>;
+        ti,minimum-sys-voltage = <3600000>;
+        ti,boost-voltage = <5000000>;
+        ti,boost-max-current = <1000000>;
+
+        ti,use-ilim-pin;
+        ti,thermal-regulation-threshold = <120>;
+      };
+    };