Re: [PATCH v2] dt-bindings: power: Convert bq27xxx dt to yaml

From: Dan Murphy
Date: Mon May 11 2020 - 08:34:12 EST


Sebastian

On 5/10/20 11:17 AM, Sebastian Reichel wrote:
Hi Dan,

On Thu, May 07, 2020 at 01:30:13PM -0500, Dan Murphy wrote:
Convert the bq27xxx.txt to yaml format

CC: Pali Rohár <pali@xxxxxxxxxx>
CC: Andrew F. Davis <afd@xxxxxx>
Signed-off-by: Dan Murphy <dmurphy@xxxxxx>
---
This needs is missing the power-supplies property. The N900 DT
contains a bq27200 referencing the charger, so it should fail the DT
check without the property being listed here.

Hmm.  I ran the dt checker specifically on the binding and it did not fail.  Unless I need to build some other DTs as well.

Either I will have the power-supplies property


.../bindings/power/supply/bq27xxx.txt | 56 ------------
.../bindings/power/supply/bq27xxx.yaml | 86 +++++++++++++++++++
2 files changed, 86 insertions(+), 56 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.txt
create mode 100644 Documentation/devicetree/bindings/power/supply/bq27xxx.yaml

diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt b/Documentation/devicetree/bindings/power/supply/bq27xxx.txt
deleted file mode 100644
index 4fa8e08df2b6..000000000000
--- a/Documentation/devicetree/bindings/power/supply/bq27xxx.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-TI BQ27XXX fuel gauge family
-
-Required properties:
-- compatible: contains one of the following:
- * "ti,bq27200" - BQ27200
- * "ti,bq27210" - BQ27210
- * "ti,bq27500" - deprecated, use revision specific property below
- * "ti,bq27510" - deprecated, use revision specific property below
- * "ti,bq27520" - deprecated, use revision specific property below
- * "ti,bq27500-1" - BQ27500/1
- * "ti,bq27510g1" - BQ27510-g1
- * "ti,bq27510g2" - BQ27510-g2
- * "ti,bq27510g3" - BQ27510-g3
- * "ti,bq27520g1" - BQ27520-g1
- * "ti,bq27520g2" - BQ27520-g2
- * "ti,bq27520g3" - BQ27520-g3
- * "ti,bq27520g4" - BQ27520-g4
- * "ti,bq27521" - BQ27521
- * "ti,bq27530" - BQ27530
- * "ti,bq27531" - BQ27531
- * "ti,bq27541" - BQ27541
- * "ti,bq27542" - BQ27542
- * "ti,bq27546" - BQ27546
- * "ti,bq27742" - BQ27742
- * "ti,bq27545" - BQ27545
- * "ti,bq27411" - BQ27411
- * "ti,bq27421" - BQ27421
- * "ti,bq27425" - BQ27425
- * "ti,bq27426" - BQ27426
- * "ti,bq27441" - BQ27441
- * "ti,bq27621" - BQ27621
-- reg: integer, I2C address of the fuel gauge.
-
-Optional properties:
-- monitored-battery: phandle of battery characteristics node
- The fuel gauge uses the following battery properties:
- + energy-full-design-microwatt-hours
- + charge-full-design-microamp-hours
- + voltage-min-design-microvolt
- Both or neither of the *-full-design-*-hours properties must be set.
- See Documentation/devicetree/bindings/power/supply/battery.txt
-
-Example:
-
- bat: battery {
- compatible = "simple-battery";
- voltage-min-design-microvolt = <3200000>;
- energy-full-design-microwatt-hours = <5290000>;
- charge-full-design-microamp-hours = <1430000>;
- };
-
- bq27510g3: fuel-gauge@55 {
- compatible = "ti,bq27510g3";
- reg = <0x55>;
- monitored-battery = <&bat>;
- };
diff --git a/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml
new file mode 100644
index 000000000000..54f497c291f2
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/supply/bq27xxx.yaml
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2020 Texas Instruments Incorporated
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/power/supply/bq27xxx.yaml#";
+$schema: "http://devicetree.org/meta-schemas/core.yaml#";
+
+title: TI BQ27XXX fuel gauge family
+
+maintainers:
+ - Pali Rohár <pali@xxxxxxxxxx>
+ - Andrew F. Davis <afd@xxxxxx>
+ - Sebastian Reichel <sre@xxxxxxxxxx>
+
+description: |
+ Support various Texas Instruments fuel gauge devices that share similar
+ register maps and power supply properties
allOf:
- $ref: power-supply.yaml#
Ack

+properties:
+ compatible:
+ enum:
+ - ti,bq27200 - BQ27200
+ - ti,bq27210 - BQ27210
+ - ti,bq27500 - deprecated, use revision specific property below
+ - ti,bq27510 - deprecated, use revision specific property below
+ - ti,bq27520 - deprecated, use revision specific property below
There is a deprecated property ("deprecated: true"), but IDK how to
apply it to specific compatible values. Maybe Rob can help out here.
Otherwise it's not a blocker, since the conversion is still an
improvement without having explicit deprecation marks :)

I would prefer to do this in separate patches.

The code still contains these deprecated values.

So technically we should remove them in this conversion from the binding, code and the 2 bindings that they are associated with.

These have been marked deprecated since 2017.

I know we are not supposed to remove items from the bindings so at the very least we should remove them from the code and update the devicetree files and as you said mark these as deprecated and removed in this conversion.

+ - ti,bq27500-1 - BQ27500/1
+ - ti,bq27510g1 - BQ27510-g1
+ - ti,bq27510g2 - BQ27510-g2
+ - ti,bq27510g3 - BQ27510-g3
+ - ti,bq27520g1 - BQ27520-g1
+ - ti,bq27520g2 - BQ27520-g2
+ - ti,bq27520g3 - BQ27520-g3
+ - ti,bq27520g4 - BQ27520-g4
+ - ti,bq27521 - BQ27521
+ - ti,bq27530 - BQ27530
+ - ti,bq27531 - BQ27531
+ - ti,bq27541 - BQ27541
+ - ti,bq27542 - BQ27542
+ - ti,bq27546 - BQ27546
+ - ti,bq27742 - BQ27742
+ - ti,bq27545 - BQ27545
+ - ti,bq27411 - BQ27411
+ - ti,bq27421 - BQ27421
+ - ti,bq27425 - BQ27425
+ - ti,bq27426 - BQ27426
+ - ti,bq27441 - BQ27441
+ - ti,bq27621 - BQ27621
+
+ reg:
+ maxItems: 1
+ description: integer, I2C address of the fuel gauge.
+
+ monitored-battery:
+ description: |
+ phandle of battery characteristics node.
+ The fuel gauge uses the following battery properties:
+ - energy-full-design-microwatt-hours
+ - charge-full-design-microamp-hours
+ - voltage-min-design-microvolt
+ Both or neither of the *-full-design-*-hours properties must be set.
+ See Documentation/devicetree/bindings/power/supply/battery.txt
power-supplies: true
Ack

+
+required:
+ - compatible
+ - reg
+additionalProperties: false
+
+examples:
+ - |
+ i2c0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ bat: battery {
+ compatible = "simple-battery";
+ voltage-min-design-microvolt = <3200000>;
+ energy-full-design-microwatt-hours = <5290000>;
+ charge-full-design-microamp-hours = <1430000>;
+ };
+
+ bq27510g3: fuel-gauge@55 {
+ compatible = "ti,bq27510g3";
+ reg = <0x55>;
+ monitored-battery = <&bat>;
+ };
+ };
Otherwise looks good to me.

Ack

Dan


-- Sebastian