Commit 039053c1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull power supply and reset updates from Sebastian Reichel:
 "Power-supply core:

   - introduce "No Battery" health status

   - use library interpolation

   - add power_supply_battery_info documentation

   - migrate power_supply_battery_info to be fully heap allocated making
     it more obvious that it needs to be free'd manually

  Drivers:

   - max77976-charger: new driver

   - qcom-smbb: add pm8226 charger support

   - bq25890-charger: support battery temperature readings

   - ab8500: continue migrating towards using standard core APIs"

* tag 'for-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (28 commits)
  power: supply_core: Pass pointer to battery info
  power: supply: ab8500: Fix the error handling path of ab8500_charger_probe()
  power: reset: mt6397: Check for null res pointer
  power: bq25890: add POWER_SUPPLY_PROP_TEMP
  power: supply: qcom_smbb: support pm8226
  dt-bindings: power: supply: pm8941-charger: add pm8226
  power: supply: ab8500: Standardize capacity lookup
  power: supply: ab8500: Standardize temp res lookup
  power: supply: ab8500: Standardize CV voltage
  power: supply: ab8500: Standardize CC current
  power: supply: ab8500: Make recharge capacity a constant
  power: supply: ab8500: Standardize termination current
  power: supply: ab8500: Standardize internal resistance
  power: supply: ab8500_fg: Init battery data in bind()
  power: supply: ab8500: Standardize voltages
  power: supply: ab8500: Standardize technology
  power: supply: ab8500: Standardize design capacity
  power: supply: ab8500: Use only one battery type
  power: supply: ab8500: Drop unused battery types
  power: supply: ab8500: Standardize operating temperature
  ...
parents 7db48b6b 25fd3303
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -413,7 +413,7 @@ Description:
			      "Over voltage", "Unspecified failure", "Cold",
			      "Watchdog timer expire", "Safety timer expire",
			      "Over current", "Calibration required", "Warm",
			      "Cool", "Hot"
			      "Cool", "Hot", "No battery"

What:		/sys/class/power_supply/<supply_name>/precharge_current
Date:		June 2017
+0 −41
Original line number Diff line number Diff line
Driver a GPIO line that can be used to turn the power off.

The driver supports both level triggered and edge triggered power off.
At driver load time, the driver will request the given gpio line and
install a handler to power off the system. If the optional properties
'input' is not found, the GPIO line will be driven in the inactive
state. Otherwise its configured as an input.

When the power-off handler is called, the gpio is configured as an
output, and drive active, so triggering a level triggered power off
condition. This will also cause an inactive->active edge condition, so
triggering positive edge triggered power off. After a delay of 100ms,
the GPIO is set to inactive, thus causing an active->inactive edge,
triggering negative edge triggered power off. After another 100ms
delay the GPIO is driver active again. If the power is still on and
the CPU still running after a 3000ms delay, a WARN_ON(1) is emitted.

Required properties:
- compatible : should be "gpio-poweroff".
- gpios : The GPIO to set high/low, see "gpios property" in
  Documentation/devicetree/bindings/gpio/gpio.txt. If the pin should be
  low to power down the board set it to "Active Low", otherwise set
  gpio to "Active High".

Optional properties:
- input : Initially configure the GPIO line as an input. Only reconfigure
  it to an output when the power-off handler is called. If this optional
  property is not specified, the GPIO is initialized as an output in its
  inactive state.
- active-delay-ms: Delay (default 100) to wait after driving gpio active
- inactive-delay-ms: Delay (default 100) to wait after driving gpio inactive
- timeout-ms: Time to wait before asserting a WARN_ON(1). If nothing is
              specified, 3000 ms is used.

Examples:

gpio-poweroff {
	compatible = "gpio-poweroff";
	gpios = <&gpio 4 0>;
	timeout-ms = <3000>;
};
+59 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/reset/gpio-poweroff.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: GPIO controlled power off

maintainers:
  - Sebastian Reichel <sre@kernel.org>

description: >
  System power off support via a GPIO line. When a shutdown is
  executed the operating system is expected to switch the GPIO
  from inactive to active. After a delay (active-delay-ms) it
  is expected to be switched back to inactive. After another
  delay (inactive-delay-ms) it is configured as active again.
  Finally the operating system assumes the power off failed if
  the system is still running after waiting some time (timeout-ms).

properties:
  compatible:
    const: gpio-poweroff

  gpios:
    maxItems: 1

  input:
    type: boolean
    description: >
      Initially configure the GPIO line as an input. Only reconfigure
      it to an output when the power-off sequence is initiated. If this optional
      property is not specified, the GPIO is initialized as an output in its inactive state.

  active-delay-ms:
    default: 100
    description: Delay to wait after driving gpio active

  inactive-delay-ms:
    default: 100
    description: Delay to wait after driving gpio inactive

  timeout-ms:
    default: 3000
    description: Time to wait before assuming the power off sequence failed.

required:
  - compatible
  - gpios

additionalProperties: false

examples:
  - |
    gpio-poweroff {
        compatible = "gpio-poweroff";
        gpios = <&gpio 4 0>;
        timeout-ms = <3000>;
    };
+44 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/supply/maxim,max77976.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim Integrated MAX77976 Battery charger

maintainers:
  - Luca Ceresoli <luca@lucaceresoli.net>

description: |
  The Maxim MAX77976 is a 19Vin / 5.5A, 1-Cell Li+ battery charger
  configured via I2C.

allOf:
  - $ref: power-supply.yaml#

properties:
  compatible:
    const: maxim,max77976

  reg:
    maxItems: 1

required:
  - compatible
  - reg

unevaluatedProperties: false

examples:
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      charger@6b {
        compatible = "maxim,max77976";
        reg = <0x6b>;
      };
    };

...
+3 −1
Original line number Diff line number Diff line
@@ -11,7 +11,9 @@ maintainers:

properties:
  compatible:
    const: qcom,pm8941-charger
    enum:
      - qcom,pm8226-charger
      - qcom,pm8941-charger

  reg:
    maxItems: 1
Loading