Merge tag 'for-v6.3-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 4 Mar 2023 00:33:28 +0000 (16:33 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 4 Mar 2023 00:33:28 +0000 (16:33 -0800)
Pull more power supply updates from Sebastian Reichel:

 - Fix DT binding for Richtek RT9467

 - Fix a NULL pointer check in the power-supply core

 - Document meaning of absent "present" property

* tag 'for-v6.3-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
  dt-bindings: power: supply: Revise Richtek RT9467 compatible name
  ABI: testing: sysfs-class-power: Document absence of "present" property
  power: supply: fix null pointer check order in __power_supply_register

Documentation/ABI/testing/sysfs-class-power
Documentation/devicetree/bindings/power/supply/richtek,rt9467-charger.yaml [deleted file]
Documentation/devicetree/bindings/power/supply/richtek,rt9467.yaml [new file with mode: 0644]
drivers/power/supply/power_supply_core.c

index e434fc523291d85b10503c45d394032d7359d086..7c81f0a25a48727a477de3d712155535cca92728 100644 (file)
@@ -437,7 +437,8 @@ What:               /sys/class/power_supply/<supply_name>/present
 Date:          May 2007
 Contact:       linux-pm@vger.kernel.org
 Description:
-               Reports whether a battery is present or not in the system.
+               Reports whether a battery is present or not in the system. If the
+               property does not exist, the battery is considered to be present.
 
                Access: Read
 
diff --git a/Documentation/devicetree/bindings/power/supply/richtek,rt9467-charger.yaml b/Documentation/devicetree/bindings/power/supply/richtek,rt9467-charger.yaml
deleted file mode 100644 (file)
index 92c5706..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/power/supply/richtek,rt9467-charger.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Richtek RT9467 Switching Battery Charger with Power Path Management
-
-maintainers:
-  - ChiYuan Huang <cy_huang@richtek.com>
-  - ChiaEn Wu <chiaen_wu@richtek.com>
-
-description: |
-  RT9467 is a switch-mode single cell Li-Ion/Li-Polymer battery charger for
-  portable applications. It integrates a synchronous PWM controller, power
-  MOSFETs, input current sensing and regulation, high-accuracy voltage
-  regulation, and charge termination. The charge current is regulated through
-  integrated sensing resistors.
-
-  The RT9467 also features USB On-The-Go (OTG) support. It also integrates
-  D+/D- pin for USB host/charging port detection.
-
-  Datasheet is available at
-  https://www.richtek.com/assets/product_file/RT9467/DS9467-01.pdf
-
-properties:
-  compatible:
-    const: richtek,rt9467-charger
-
-  reg:
-    maxItems: 1
-
-  wakeup-source: true
-
-  interrupts:
-    maxItems: 1
-
-  charge-enable-gpios:
-    description: GPIO is used to turn on and off charging.
-    maxItems: 1
-
-  usb-otg-vbus-regulator:
-    type: object
-    description: OTG boost regulator.
-    unevaluatedProperties: false
-    $ref: /schemas/regulator/regulator.yaml#
-
-    properties:
-      enable-gpios: true
-
-required:
-  - compatible
-  - reg
-  - wakeup-source
-  - interrupts
-
-additionalProperties: false
-
-examples:
-  - |
-    #include <dt-bindings/interrupt-controller/irq.h>
-    #include <dt-bindings/gpio/gpio.h>
-    i2c {
-      #address-cells = <1>;
-      #size-cells = <0>;
-
-      charger@5b {
-        compatible = "richtek,rt9467-charger";
-        reg = <0x5b>;
-        wakeup-source;
-        interrupts-extended = <&gpio_intc 32 IRQ_TYPE_LEVEL_LOW>;
-        charge-enable-gpios = <&gpio26 1 GPIO_ACTIVE_LOW>;
-
-        rt9467_otg_vbus: usb-otg-vbus-regulator {
-          regulator-name = "rt9467-usb-otg-vbus";
-          regulator-min-microvolt = <4425000>;
-          regulator-max-microvolt = <5825000>;
-          regulator-min-microamp = <500000>;
-          regulator-max-microamp = <3000000>;
-        };
-      };
-    };
diff --git a/Documentation/devicetree/bindings/power/supply/richtek,rt9467.yaml b/Documentation/devicetree/bindings/power/supply/richtek,rt9467.yaml
new file mode 100644 (file)
index 0000000..3723717
--- /dev/null
@@ -0,0 +1,82 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/power/supply/richtek,rt9467.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Richtek RT9467 Switching Battery Charger with Power Path Management
+
+maintainers:
+  - ChiYuan Huang <cy_huang@richtek.com>
+  - ChiaEn Wu <chiaen_wu@richtek.com>
+
+description: |
+  RT9467 is a switch-mode single cell Li-Ion/Li-Polymer battery charger for
+  portable applications. It integrates a synchronous PWM controller, power
+  MOSFETs, input current sensing and regulation, high-accuracy voltage
+  regulation, and charge termination. The charge current is regulated through
+  integrated sensing resistors.
+
+  The RT9467 also features USB On-The-Go (OTG) support. It also integrates
+  D+/D- pin for USB host/charging port detection.
+
+  Datasheet is available at
+  https://www.richtek.com/assets/product_file/RT9467/DS9467-01.pdf
+
+properties:
+  compatible:
+    const: richtek,rt9467
+
+  reg:
+    maxItems: 1
+
+  wakeup-source: true
+
+  interrupts:
+    maxItems: 1
+
+  charge-enable-gpios:
+    description: GPIO is used to turn on and off charging.
+    maxItems: 1
+
+  usb-otg-vbus-regulator:
+    type: object
+    description: OTG boost regulator.
+    unevaluatedProperties: false
+    $ref: /schemas/regulator/regulator.yaml#
+
+    properties:
+      enable-gpios: true
+
+required:
+  - compatible
+  - reg
+  - wakeup-source
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    #include <dt-bindings/gpio/gpio.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      charger@5b {
+        compatible = "richtek,rt9467";
+        reg = <0x5b>;
+        wakeup-source;
+        interrupts-extended = <&gpio_intc 32 IRQ_TYPE_LEVEL_LOW>;
+        charge-enable-gpios = <&gpio26 1 GPIO_ACTIVE_LOW>;
+
+        rt9467_otg_vbus: usb-otg-vbus-regulator {
+          regulator-name = "rt9467-usb-otg-vbus";
+          regulator-min-microvolt = <4425000>;
+          regulator-max-microvolt = <5825000>;
+          regulator-min-microamp = <500000>;
+          regulator-max-microamp = <3000000>;
+        };
+      };
+    };
index cc5b2e22b42ac277913490a9e3e54bc0175ee05a..f3d7c1da299fef86b86b58f297da60234df26b50 100644 (file)
@@ -1207,13 +1207,13 @@ __power_supply_register(struct device *parent,
        struct power_supply *psy;
        int rc;
 
+       if (!desc || !desc->name || !desc->properties || !desc->num_properties)
+               return ERR_PTR(-EINVAL);
+
        if (!parent)
                pr_warn("%s: Expected proper parent device for '%s'\n",
                        __func__, desc->name);
 
-       if (!desc || !desc->name || !desc->properties || !desc->num_properties)
-               return ERR_PTR(-EINVAL);
-
        if (psy_has_property(desc, POWER_SUPPLY_PROP_USB_TYPE) &&
            (!desc->usb_types || !desc->num_usb_types))
                return ERR_PTR(-EINVAL);