power supply and reset changes for the v5.13 series

battery/charger driver changes:
  * core: provide function stubs if CONFIG_POWER_SUPPLY=n
  * core: reduce loglevel for probe defer info
  * surface-battery: new battery driver for Surface
  * surface-charger: new charger driver for Surface
  * bq27xxx: add bq78z100 support
  * bq27xxx: fix current_now/power_avg for newer chips
  * cw2015: add CHARGE_NOW support
  * ab8500: drop pdata support
  * convert most DT bindings to YAML
  * lot's of minor fixes and cleanups
 
 reset drivers:
  * ltc2952-poweroff: make trigger delay configurable from DT
  * minor fixes and cleanups
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE72YNB0Y/i3JqeVQT2O7X88g7+poFAmCHIvEACgkQ2O7X88g7
 +poldw/9E3n0HK/SZR/kdpXCt8oLQ6Ey7SSKi1a+i1Qe2VgAdDPVceI7T5yRvMeo
 CVhTQ5nCl2HdZMhbNWgN1xY37eybX3cUGCYieXoWA/ALSdLRNVFcz5aOexJcWyYg
 nxcg+qJ5CYOHIJBjA+0H0t9GRTz5PkYyzgilajkhN0EJIxMzjF1hnv9YLReibN4g
 WD+EZNnpPO1FcxGsmKwhyEmO1xEAqe9LMj/qffiHNHgN+kX2GVW9t+TCLwPtCbnZ
 6SwT7seT2Lk9nKhhZNWk5R+W1uhXicYsvkXlqVM6TOjbn3hDqGhC0D2OXz+A0ykW
 R7WQB4gWyy9coU8gTerRBWd8BTjsc2oAvy8fYuAmEkqpiecZD5AwZO8mNwKX0y7d
 DRloYsFVs1FJrW+6eA+2S+PPwMI4sfVGWpp2DNti8STxeBPFkQDUyVVwhR3xbm79
 5DBj8V8VKekqteUOhnB5ZpyqkbIUMS2zYPgWq7p5g9GnYSffeQI7sOZrNna0pUDg
 9pNYaRzNHWVONftxQP4SY1pMbsZFXV3znYwdXZjO8eiRCSi8hbpo9y+I2fFp/7fW
 9vr//cDWLcgSpqt5z0yhgVjGtXXwcvkd3X2BgX8BY0hhH9NrOEFD6o2DXDPZAC+q
 djcW3nl5QpUUzXp07xxSFAxNTmo8jlegkZenNkYLVLEahvG0jjs=
 =9IUN
 -----END PGP SIGNATURE-----

Merge tag 'for-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply

Pull power supply and reset updates from Sebastian Reichel:
 "battery/charger driver changes:
   - core:
      - provide function stubs if CONFIG_POWER_SUPPLY=n
      - reduce loglevel for probe defer info
   - surface:
      - new battery and charger drivers for Surface
   - bq27xxx:
      - add bq78z100 support
      - fix current_now/power_avg for newer chips
   - cw2015:
      - add CHARGE_NOW support
   - ab8500:
      - drop pdata support
   - convert most DT bindings to YAML
   - lots of minor fixes and cleanups

  reset drivers:
   - ltc2952-poweroff:
      - make trigger delay configurable from DT
   - minor fixes and cleanups"

* tag 'for-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (97 commits)
  power: supply: cpcap-battery: fix invalid usage of list cursor
  power: supply: bq256xx: add kerneldoc for structure members
  power: supply: act8945a: correct kerneldoc
  power: supply: max17040: remove unneeded double cast
  power: supply: max17040: handle device_property_read_u8_array() failure
  power: supply: max14577: remove unneeded variable initialization
  power: supply: surface-charger: Make symbol 'surface_ac_pm_ops' static
  power: supply: surface-battery: Make some symbols static
  power: reset: restart-poweroff: Add missing MODULE_DEVICE_TABLE
  power: reset: hisi-reboot: add missing MODULE_DEVICE_TABLE
  power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove()
  power: supply: generic-adc-battery: fix possible use-after-free in gab_remove()
  power: supply: Add AC driver for Surface Aggregator Module
  power: supply: Add battery driver for Surface Aggregator Module
  power: supply: bq25980: Move props from battery node
  power: supply: core: Use true and false for bool variable
  power: supply: goldfish: Remove the GOLDFISH dependency
  power: reset: ltc2952: make trigger delay configurable
  power: supply: cpcap-charger: Simplify bool conversion
  power: supply: cpcap-charger: Add usleep to cpcap charger to avoid usb plug bounce
  ...
This commit is contained in:
Linus Torvalds 2021-04-28 15:43:58 -07:00
commit 5a69e9bce9
139 changed files with 4679 additions and 2132 deletions

View File

@ -0,0 +1,15 @@
What: /sys/class/power_supply/<supply_name>/alarm
Date: April 2021
KernelVersion: 5.13
Contact: Maximilian Luz <luzmaximilian@gmail.com>
Description:
Battery trip point. When the remaining battery capacity crosses this
value in either direction, the system will be notified and if
necessary woken.
Set to zero to clear/disable.
Access: Read, Write
Valid values: In micro-Wh or micro-Ah, depending on the power unit
of the battery

View File

@ -17,6 +17,9 @@ Optional properties:
chip's trigger line. If this property is not set, the
trigger function is ignored and the chip is kept alive
until an explicit kill signal is received
- trigger-delay-ms The number of milliseconds to wait after trigger line
assertion before executing shut down procedure.
The default is 2500ms.
Example:
@ -24,6 +27,7 @@ ltc2952 {
compatible = "lltc,ltc2952";
trigger-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
trigger-delay-ms = <2000>;
watchdog-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
kill-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
};

View File

@ -1,16 +0,0 @@
=== AB8500 Battery Temperature Monitor Driver ===
The properties below describes the node for btemp driver.
Required Properties:
- compatible = Shall be: "stericsson,ab8500-btemp"
- battery = Shall be battery specific information
Example:
ab8500_btemp {
compatible = "stericsson,ab8500-btemp";
battery = <&ab8500_battery>;
};
For information on battery specific node, Ref:
Documentation/devicetree/bindings/power/supply/ab8500/fg.txt

View File

@ -1,16 +0,0 @@
=== AB8500 Charging Algorithm Driver ===
The properties below describes the node for chargalg driver.
Required Properties:
- compatible = Shall be: "stericsson,ab8500-chargalg"
- battery = Shall be battery specific information
Example:
ab8500_chargalg {
compatible = "stericsson,ab8500-chargalg";
battery = <&ab8500_battery>;
};
For information on battery specific node, Ref:
Documentation/devicetree/bindings/power/supply/ab8500/fg.txt

View File

@ -1,25 +0,0 @@
=== AB8500 Charger Driver ===
Required Properties:
- compatible = Shall be "stericsson,ab8500-charger"
- battery = Shall be battery specific information
Example:
ab8500_charger {
compatible = "stericsson,ab8500-charger";
battery = <&ab8500_battery>;
};
- vddadc-supply: Supply for USB and Main charger
Example:
ab8500-charger {
vddadc-supply = <&ab8500_ldo_tvout_reg>;
}
- autopower_cfg:
Boolean value depicting the presence of 'automatic poweron after powerloss'
Example:
ab8500-charger {
autopower_cfg;
};
For information on battery specific node, Ref:
Documentation/devicetree/bindings/power/supply/ab8500/fg.txt

View File

@ -1,44 +0,0 @@
Device-Tree bindings for charger of Active-semi ACT8945A Multi-Function Device
Required properties:
- compatible: "active-semi,act8945a-charger".
- active-semi,chglev-gpios: charge current level phandle with args
as described in ../gpio/gpio.txt.
- active-semi,lbo-gpios: specify the low battery voltage detect phandle
with args as as described in ../gpio/gpio.txt.
- interrupts: <a b> where a is the interrupt number and b is a
field that represents an encoding of the sense and level
information for the interrupt.
Optional properties:
- active-semi,input-voltage-threshold-microvolt: unit: mV;
Specifies the charger's input over-voltage threshold value;
The value can be: 6600, 7000, 7500, 8000; default: 6600
- active-semi,precondition-timeout: unit: minutes;
Specifies the charger's PRECONDITION safety timer setting value;
The value can be: 40, 60, 80, 0; If 0, it means to disable this timer;
default: 40.
- active-semi,total-timeout: unit: hours;
Specifies the charger's total safety timer setting value;
The value can be: 3, 4, 5, 0; If 0, it means to disable this timer;
default: 3.
Example:
pmic@5b {
compatible = "active-semi,act8945a";
reg = <0x5b>;
charger {
compatible = "active-semi,act8945a-charger";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
interrupt-parent = <&pioA>;
interrupts = <45 IRQ_TYPE_LEVEL_LOW>;
active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>;
active-semi,input-voltage-threshold-microvolt = <6600>;
active-semi,precondition-timeout = <40>;
active-semi,total-timeout = <3>;
};
};

View File

@ -0,0 +1,76 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/active-semi,act8945a-charger.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Active-semi ACT8945A Charger Function
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: active-semi,act8945a-charger
interrupts:
maxItems: 1
active-semi,chglev-gpios:
maxItems: 1
description: charge current level GPIO
active-semi,lbo-gpios:
maxItems: 1
description: low battery voltage detect GPIO
active-semi,input-voltage-threshold-microvolt:
description: |
Specifies the charger's input over-voltage threshold value.
Despite the name, specified values are in millivolt (mV).
Defaults to 6.6 V
enum: [ 6600, 7000, 7500, 8000 ]
active-semi,precondition-timeout:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Specifies the charger's PRECONDITION safety timer setting value in minutes.
If 0, it means to disable this timer.
Defaults to 40 minutes.
enum: [ 0, 40, 60, 80 ]
active-semi,total-timeout:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Specifies the charger's total safety timer setting value in hours;
If 0, it means to disable this timer;
Defaults to 3 hours.
enum: [ 0, 3, 4, 5 ]
required:
- compatible
- interrupts
- active-semi,chglev-gpios
- active-semi,lbo-gpios
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
pmic {
charger {
compatible = "active-semi,act8945a-charger";
interrupt-parent = <&pioA>;
interrupts = <45 IRQ_TYPE_LEVEL_LOW>;
active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>;
active-semi,input-voltage-threshold-microvolt = <6600>;
active-semi,precondition-timeout = <40>;
active-semi,total-timeout = <3>;
};
};

View File

@ -1,25 +0,0 @@
AXP20X and AXP22X PMICs' AC power supply
Required Properties:
- compatible: One of:
"x-powers,axp202-ac-power-supply"
"x-powers,axp221-ac-power-supply"
"x-powers,axp813-ac-power-supply"
This node is a subnode of the axp20x PMIC.
The AXP20X can read the current current and voltage supplied by AC by
reading ADC channels from the AXP20X ADC.
The AXP22X is only able to tell if an AC power supply is present and
usable.
AXP813/AXP803 are able to limit current and supply voltage
Example:
&axp209 {
ac_power_supply: ac-power-supply {
compatible = "x-powers,axp202-ac-power-supply";
};
};

View File

@ -1,20 +0,0 @@
AXP20x and AXP22x battery power supply
Required Properties:
- compatible, one of:
"x-powers,axp209-battery-power-supply"
"x-powers,axp221-battery-power-supply"
"x-powers,axp813-battery-power-supply"
This node is a subnode of its respective PMIC DT node.
The supported devices can read the battery voltage, charge and discharge
currents of the battery by reading ADC channels from the ADC.
Example:
&axp209 {
battery_power_supply: battery-power-supply {
compatible = "x-powers,axp209-battery-power-supply";
}
};

View File

@ -1,41 +0,0 @@
AXP20x USB power supply
Required Properties:
-compatible: One of: "x-powers,axp202-usb-power-supply"
"x-powers,axp221-usb-power-supply"
"x-powers,axp223-usb-power-supply"
"x-powers,axp813-usb-power-supply"
The AXP223 PMIC shares most of its behaviour with the AXP221 but has slight
variations such as the former being able to set the VBUS power supply max
current to 100mA, unlike the latter.
This node is a subnode of the axp20x PMIC.
Example:
axp209: pmic@34 {
compatible = "x-powers,axp209";
reg = <0x34>;
interrupt-parent = <&nmi_intc>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
interrupt-controller;
#interrupt-cells = <1>;
regulators {
x-powers,dcdc-freq = <1500>;
vdd_cpu: dcdc2 {
regulator-always-on;
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <1450000>;
regulator-name = "vdd-cpu";
};
...
};
usb-power-supply: usb-power-supply {
compatible = "x-powers,axp202-usb-power-supply";
};
};

View File

@ -1,3 +0,0 @@
The contents of this file has been moved to battery.yaml
Please note that not all charger drivers respect all of the properties.

View File

@ -1,47 +0,0 @@
Binding for TI bq2415x Li-Ion Charger
Required properties:
- compatible: Should contain one of the following:
* "ti,bq24150"
* "ti,bq24150"
* "ti,bq24150a"
* "ti,bq24151"
* "ti,bq24151a"
* "ti,bq24152"
* "ti,bq24153"
* "ti,bq24153a"
* "ti,bq24155"
* "ti,bq24156"
* "ti,bq24156a"
* "ti,bq24158"
- reg: integer, i2c address of the device.
- ti,current-limit: integer, initial maximum current charger can pull
from power supply in mA.
- ti,weak-battery-voltage: integer, weak battery voltage threshold in mV.
The chip will use slow precharge if battery voltage
is below this value.
- ti,battery-regulation-voltage: integer, maximum charging voltage in mV.
- ti,charge-current: integer, maximum charging current in mA.
- ti,termination-current: integer, charge will be terminated when current in
constant-voltage phase drops below this value (in mA).
- ti,resistor-sense: integer, value of sensing resistor in milliohm.
Optional properties:
- ti,usb-charger-detection: phandle to usb charger detection device.
(required for auto mode)
Example from Nokia N900:
bq24150a {
compatible = "ti,bq24150a";
reg = <0x6b>;
ti,current-limit = <100>;
ti,weak-battery-voltage = <3400>;
ti,battery-regulation-voltage = <4200>;
ti,charge-current = <650>;
ti,termination-current = <100>;
ti,resistor-sense = <68>;
ti,usb-charger-detection = <&isp1704>;
};

View File

@ -0,0 +1,98 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/bq2415x.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Binding for TI bq2415x Li-Ion Charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- ti,bq24150
- ti,bq24150
- ti,bq24150a
- ti,bq24151
- ti,bq24151a
- ti,bq24152
- ti,bq24153
- ti,bq24153a
- ti,bq24155
- ti,bq24156
- ti,bq24156a
- ti,bq24158
reg:
maxItems: 1
ti,current-limit:
$ref: /schemas/types.yaml#/definitions/uint32
description: initial maximum current charger can pull from power supply in mA.
ti,weak-battery-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
weak battery voltage threshold in mV.
The chip will use slow precharge if battery voltage is below this value.
ti,battery-regulation-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description: maximum charging voltage in mV.
ti,charge-current:
$ref: /schemas/types.yaml#/definitions/uint32
description: maximum charging current in mA.
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 mA).
ti,resistor-sense:
$ref: /schemas/types.yaml#/definitions/uint32
description: value of sensing resistor in milliohm.
ti,usb-charger-detection:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle to usb charger detection device (required for auto mode)
required:
- compatible
- reg
- ti,current-limit
- ti,weak-battery-voltage
- ti,battery-regulation-voltage
- ti,charge-current
- ti,termination-current
- ti,resistor-sense
additionalProperties: false
examples:
- |
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
charger@6b {
compatible = "ti,bq24150a";
reg = <0x6b>;
ti,current-limit = <100>;
ti,weak-battery-voltage = <3400>;
ti,battery-regulation-voltage = <4200>;
ti,charge-current = <650>;
ti,termination-current = <100>;
ti,resistor-sense = <68>;
ti,usb-charger-detection = <&isp1704>;
};
};

View File

@ -1,61 +0,0 @@
TI BQ24190 Li-Ion Battery Charger
Required properties:
- compatible: contains one of the following:
* "ti,bq24190"
* "ti,bq24192"
* "ti,bq24192i"
* "ti,bq24196"
- reg: integer, I2C address of the charger.
- interrupts[-extended]: configuration for charger INT pin.
Optional properties:
- monitored-battery: phandle of battery characteristics devicetree node
The charger uses the following battery properties:
+ precharge-current-microamp: maximum charge current during precharge
phase (typically 20% of battery capacity).
+ charge-term-current-microamp: a charge cycle terminates when the
battery voltage is above recharge threshold, and the current is below
this setting (typically 10% of battery capacity).
See also Documentation/devicetree/bindings/power/supply/battery.txt
- ti,system-minimum-microvolt: when power is connected and the battery is below
minimum system voltage, the system will be regulated above this setting.
child nodes:
- usb-otg-vbus:
Usage: optional
Description: Regulator that is used to control the VBUS voltage direction for
either USB host mode or for charging on the OTG port.
Notes:
- Some circuit boards wire the chip's "OTG" pin high (enabling 500mA default
charge current on USB SDP ports, among other features). To simulate this on
boards that wire the pin to a GPIO, set a gpio-hog.
Example:
bat: battery {
compatible = "simple-battery";
precharge-current-microamp = <256000>;
charge-term-current-microamp = <128000>;
// etc.
};
bq24190: charger@6a {
compatible = "ti,bq24190";
reg = <0x6a>;
interrupts-extended = <&gpiochip 10 IRQ_TYPE_EDGE_FALLING>;
monitored-battery = <&bat>;
ti,system-minimum-microvolt = <3200000>;
usb_otg_vbus: usb-otg-vbus { };
};
&twl_gpio {
otg {
gpio-hog;
gpios = <6 0>;
output-high;
line-name = "otg-gpio";
};
};

View File

@ -0,0 +1,92 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/bq24190.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Binding for TI BQ2419x Li-Ion Battery Charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- ti,bq24190
- ti,bq24192
- ti,bq24192i
- ti,bq24196
reg:
maxItems: 1
interrupts:
maxItems: 1
usb-otg-vbus:
type: object
description: |
Regulator that is used to control the VBUS voltage direction for
either USB host mode or for charging on the OTG port
ti,system-minimum-microvolt:
description: |
when power is connected and the battery is below minimum system voltage,
the system will be regulated above this setting.
omit-battery-class:
type: boolean
description: |
If this property is set, the operating system does not try to create a
battery device.
monitored-battery:
$ref: /schemas/types.yaml#/definitions/phandle
description: |
phandle to a "simple-battery" compatible node.
This property must be a phandle to a node using the format described
in battery.yaml, with the following properties being required:
- precharge-current-microamp: maximum charge current during precharge phase
(typically 20% of battery capacity).
- charge-term-current-microamp: a charge cycle terminates when the battery voltage is
above recharge threshold, and the current is below this
setting (typically 10% of battery capacity).
required:
- compatible
- reg
- interrupts
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
bat: battery {
compatible = "simple-battery";
precharge-current-microamp = <256000>;
charge-term-current-microamp = <128000>;
};
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
charger@6a {
compatible = "ti,bq24190";
reg = <0x6a>;
interrupt-parent = <&gpiochip>;
interrupts = <10 IRQ_TYPE_EDGE_FALLING>;
monitored-battery = <&bat>;
ti,system-minimum-microvolt = <3200000>;
usb_otg_vbus: usb-otg-vbus { };
};
};

View File

@ -1,62 +0,0 @@
Binding for TI bq24250/bq24251/bq24257 Li-Ion Charger
Required properties:
- compatible: Should contain one of the following:
* "ti,bq24250"
* "ti,bq24251"
* "ti,bq24257"
- reg: integer, i2c address of the device.
- interrupts: Interrupt mapping for GPIO IRQ (configure for both edges). Use in
conjunction with "interrupt-parent".
- 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).
Optional properties:
- pg-gpios: GPIO used for connecting the bq2425x device PG (Power Good) pin.
This pin is not available on all devices however it should be used if
possible as this is the recommended way to obtain the charger's input PG
state. If this pin is not specified a software-based approach for PG
detection is used.
- ti,current-limit: The maximum current to be drawn from the charger's input
(in uA). If this property is not specified, the input limit current is
set automatically using USB D+/D- signal based charger type detection.
If the hardware does not support the D+/D- based detection, a default
of 500,000 is used (=500mA) instead.
- ti,ovp-voltage: Configures the over voltage protection voltage (in uV). If
not specified a default of 6,5000,000 (=6.5V) is used.
- ti,in-dpm-voltage: Configures the threshold input voltage for the dynamic
power path management (in uV). If not specified a default of 4,360,000
(=4.36V) is used.
Example:
bq24257 {
compatible = "ti,bq24257";
reg = <0x6a>;
interrupt-parent = <&gpio1>;
interrupts = <16 IRQ_TYPE_EDGE_BOTH>;
pg-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
ti,battery-regulation-voltage = <4200000>;
ti,charge-current = <1000000>;
ti,termination-current = <50000>;
};
Example:
bq24250 {
compatible = "ti,bq24250";
reg = <0x6a>;
interrupt-parent = <&gpio1>;
interrupts = <16 IRQ_TYPE_EDGE_BOTH>;
ti,battery-regulation-voltage = <4200000>;
ti,charge-current = <500000>;
ti,termination-current = <50000>;
ti,current-limit = <900000>;
ti,ovp-voltage = <9500000>;
ti,in-dpm-voltage = <4440000>;
};

View File

@ -0,0 +1,124 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/bq24257.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Binding for bq24250, bq24251 and bq24257 Li-Ion Charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- ti,bq24250
- ti,bq24251
- ti,bq24257
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)
pg-gpios:
description: |
GPIO used for connecting the bq2425x device PG (Power Good) pin.
This pin is not available on all devices however it should be used if
possible as this is the recommended way to obtain the charger's input PG
state. If this pin is not specified a software-based approach for PG
detection is used.
maxItems: 1
ti,current-limit:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
The maximum current to be drawn from the charger's input (in uA).
If this property is not specified, the input limit current is set
automatically using USB D+/D- signal based charger type detection.
If the hardware does not support the D+/D- based detection, a default
of 500,000 is used (=500mA) instead.
ti,ovp-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Configures the over voltage protection voltage (in uV).
If not specified a default of 6,5000,000 (=6.5V) is used.
ti,in-dpm-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Configures the threshold input voltage for the dynamic power path management (in uV).
If not specified a default of 4,360,000 (=4.36V) is used.
required:
- compatible
- reg
- interrupts
- ti,battery-regulation-voltage
- ti,charge-current
- ti,termination-current
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
charger@6a {
compatible = "ti,bq24257";
reg = <0x6a>;
interrupt-parent = <&gpio1>;
interrupts = <16 IRQ_TYPE_EDGE_BOTH>;
pg-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
ti,battery-regulation-voltage = <4200000>;
ti,charge-current = <1000000>;
ti,termination-current = <50000>;
};
};
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
charger@6a {
compatible = "ti,bq24250";
reg = <0x6a>;
interrupt-parent = <&gpio1>;
interrupts = <16 IRQ_TYPE_EDGE_BOTH>;
ti,battery-regulation-voltage = <4200000>;
ti,charge-current = <500000>;
ti,termination-current = <50000>;
ti,current-limit = <900000>;
ti,ovp-voltage = <9500000>;
ti,in-dpm-voltage = <4440000>;
};
};

View File

@ -0,0 +1,89 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/bq24735.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Binding for TI BQ24735 Li-Ion Battery Charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: ti,bq24735
reg:
maxItems: 1
interrupts:
description: AC adapter plug event interrupt
maxItems: 1
ti,ac-detect-gpios:
maxItems: 1
description: |
This GPIO is optionally used to read the AC adapter status. This is a Host GPIO
that is configured as an input and connected to the ACOK pin on the bq24735.
Note: for backwards compatibility reasons, the GPIO must be active on AC adapter
absence despite ACOK being active (high) on AC adapter presence.
ti,charge-current:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Used to control and set the charging current.
This value must be between 128mA and 8.128A with a 64mA step resolution.
The POR value is 0x0000h. This number is in mA (e.g. 8192).
See spec for more information about the ChargeCurrent (0x14h) register.
ti,charge-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Used to control and set the charging voltage.
This value must be between 1.024V and 19.2V with a 16mV step resolution.
The POR value is 0x0000h. This number is in mV (e.g. 19200).
See spec for more information about the ChargeVoltage (0x15h) register.
ti,input-current:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Used to control and set the charger input current.
This value must be between 128mA and 8.064A with a 128mA step resolution.
The POR value is 0x1000h. This number is in mA (e.g. 8064).
See the spec for more information about the InputCurrent (0x3fh) register.
ti,external-control:
type: boolean
description: |
Indicates that the charger is configured externally and that the host should not
attempt to enable/disable charging or set the charge voltage/current.
poll-interval:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
If 'interrupts' is not specified, poll AC adapter presence with this interval (milliseconds).
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
charger@9 {
compatible = "ti,bq24735";
reg = <0x9>;
ti,ac-detect-gpios = <&gpio 72 0x1>;
};
};

View File

@ -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>;
};

View File

@ -0,0 +1,123 @@
# 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:
description: value of a resistor in series with the battery (in Micro Ohms)
ti,ibatcomp-clamp-microvolt:
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>;
};
};

View File

@ -52,6 +52,7 @@ properties:
- ti,bq27z561
- ti,bq28z610
- ti,bq34z100
- ti,bq78z100
reg:
maxItems: 1
@ -65,7 +66,7 @@ properties:
- 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
See Documentation/devicetree/bindings/power/supply/battery.yaml
power-supplies: true

View File

@ -1,31 +0,0 @@
Motorola CPCAP PMIC battery driver binding
Required properties:
- compatible: Shall be "motorola,cpcap-battery"
- interrupts: Interrupt specifier for each name in interrupt-names
- interrupt-names: Should contain the following entries:
"lowbph", "lowbpl", "chrgcurr1", "battdetb"
- io-channels: IIO ADC channel specifier for each name in io-channel-names
- io-channel-names: Should contain the following entries:
"battdetb", "battp", "chg_isense", "batti"
- power-supplies: List of phandles for power-supplying devices, as
described in power_supply.txt. Typically a reference
to cpcap_charger.
Example:
cpcap_battery: battery {
compatible = "motorola,cpcap-battery";
interrupts-extended = <
&cpcap 5 0 &cpcap 3 0
&cpcap 20 0 &cpcap 54 0
>;
interrupt-names =
"lowbph", "lowbpl",
"chrgcurr1", "battdetb";
io-channels = <&cpcap_adc 0 &cpcap_adc 1
&cpcap_adc 5 &cpcap_adc 6>;
io-channel-names = "battdetb", "battp",
"chg_isense", "batti";
power-supplies = <&cpcap_charger>;
};

View File

@ -0,0 +1,87 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/cpcap-battery.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Motorola CPCAP PMIC battery
maintainers:
- Tony Lindgren <tony@atomide.com>
- Sebastian Reichel <sre@kernel.org>
description: |
Motorola CPCAP is a PMIC found in some mobile phones, e.g.
the Droid 4. This binding describes its battery fuel gauge
sub-function.
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: motorola,cpcap-battery
interrupts:
items:
- description: eol interrupt
- description: low battery percentage interrupt
- description: critical battery percentage interrupt
- description: charger detect interrupt
- description: battery detect interrupt
- description: coulomb counter calibration interrupt
interrupt-names:
items:
- const: eol
- const: lowbph
- const: lowbpl
- const: chrgcurr1
- const: battdetb
- const: cccal
io-channels:
items:
- description: battery temperature
- description: battery voltage
- description: battery charge current
- description: battery current
io-channel-names:
items:
- const: battdetb
- const: battp
- const: chg_isense
- const: batti
power-supplies: true
required:
- compatible
- interrupts
- interrupt-names
- io-channels
- io-channel-names
- power-supplies
additionalProperties: false
examples:
- |
cpcap {
battery {
compatible = "motorola,cpcap-battery";
interrupts-extended =
<&cpcap 6 0>, <&cpcap 5 0>, <&cpcap 3 0>,
<&cpcap 20 0>, <&cpcap 54 0>, <&cpcap 57 0>;
interrupt-names =
"eol", "lowbph", "lowbpl",
"chrgcurr1", "battdetb", "cccal";
io-channels = <&cpcap_adc 0>, <&cpcap_adc 1>,
<&cpcap_adc 5>, <&cpcap_adc 6>;
io-channel-names = "battdetb", "battp",
"chg_isense", "batti";
power-supplies = <&cpcap_charger>;
};
};

View File

@ -1,40 +0,0 @@
Motorola CPCAP PMIC battery charger binding
Required properties:
- compatible: Shall be "motorola,mapphone-cpcap-charger"
- interrupts: Interrupt specifier for each name in interrupt-names
- interrupt-names: Should contain the following entries:
"chrg_det", "rvrs_chrg", "chrg_se1b", "se0conn",
"rvrs_mode", "chrgcurr2", "chrgcurr1", "vbusvld",
"battdetb"
- io-channels: IIO ADC channel specifier for each name in io-channel-names
- io-channel-names: Should contain the following entries:
"battdetb", "battp", "vbus", "chg_isense", "batti"
Optional properties:
- mode-gpios: Optionally CPCAP charger can have a companion wireless
charge controller that is controlled with two GPIOs
that are active low.
Example:
cpcap_charger: charger {
compatible = "motorola,mapphone-cpcap-charger";
interrupts-extended = <
&cpcap 13 0 &cpcap 12 0 &cpcap 29 0 &cpcap 28 0
&cpcap 22 0 &cpcap 21 0 &cpcap 20 0 &cpcap 19 0
&cpcap 54 0
>;
interrupt-names =
"chrg_det", "rvrs_chrg", "chrg_se1b", "se0conn",
"rvrs_mode", "chrgcurr2", "chrgcurr1", "vbusvld",
"battdetb";
mode-gpios = <&gpio3 29 GPIO_ACTIVE_LOW
&gpio3 23 GPIO_ACTIVE_LOW>;
io-channels = <&cpcap_adc 0 &cpcap_adc 1
&cpcap_adc 2 &cpcap_adc 5
&cpcap_adc 6>;
io-channel-names = "battdetb", "battp",
"vbus", "chg_isense",
"batti";
};

View File

@ -0,0 +1,106 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/cpcap-charger.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Motorola CPCAP PMIC charger
maintainers:
- Tony Lindgren <tony@atomide.com>
- Sebastian Reichel <sre@kernel.org>
description: |
Motorola CPCAP is a PMIC found in some mobile phones, e.g.
the Droid 4. This binding describes its battery charger
sub-function.
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: motorola,mapphone-cpcap-charger
interrupts:
items:
- description: charger detection interrupt
- description: reverse charge interrupt
- description: SE1 charger detection interrupt
- description: SE0 charger detection interrupt
- description: reverse mode interrupt
- description: charge current 2 interrupt
- description: charge current 1 interrupt
- description: VBUS valid interrupt
- description: battery detect interrupt
interrupt-names:
items:
- const: chrg_det
- const: rvrs_chrg
- const: chrg_se1b
- const: se0conn
- const: rvrs_mode
- const: chrgcurr2
- const: chrgcurr1
- const: vbusvld
- const: battdetb
io-channels:
items:
- description: battery temperature
- description: battery voltage
- description: VBUS voltage
- description: battery charge current
- description: battery current
io-channel-names:
items:
- const: battdetb
- const: battp
- const: vbus
- const: chg_isense
- const: batti
mode-gpios:
description: |
Optionally CPCAP charger can have a companion wireless
charge controller that is controlled with two GPIOs
that are active low.
minItems: 2
maxItems: 2
required:
- compatible
- interrupts
- interrupt-names
- io-channels
- io-channel-names
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
cpcap {
charger {
compatible = "motorola,mapphone-cpcap-charger";
interrupts-extended =
<&cpcap 13 0>, <&cpcap 12 0>, <&cpcap 29 0>, <&cpcap 28 0>,
<&cpcap 22 0>, <&cpcap 21 0>, <&cpcap 20 0>, <&cpcap 19 0>,
<&cpcap 54 0>;
interrupt-names =
"chrg_det", "rvrs_chrg", "chrg_se1b", "se0conn",
"rvrs_mode", "chrgcurr2", "chrgcurr1", "vbusvld",
"battdetb";
mode-gpios = <&gpio3 29 GPIO_ACTIVE_LOW>,
<&gpio3 23 GPIO_ACTIVE_LOW>;
io-channels = <&cpcap_adc 0>, <&cpcap_adc 1>,
<&cpcap_adc 2>, <&cpcap_adc 5>,
<&cpcap_adc 6>;
io-channel-names = "battdetb", "battp",
"vbus", "chg_isense",
"batti";
};
};

View File

@ -1,26 +0,0 @@
Dialog Semiconductor DA9150 Charger Power Supply bindings
Required properties:
- compatible: "dlg,da9150-charger" for DA9150 Charger Power Supply
Optional properties:
- io-channels: List of phandle and IIO specifier pairs
- io-channel-names: List of channel names used by charger
["CHAN_IBUS", "CHAN_VBUS", "CHAN_TJUNC", "CHAN_VBAT"]
(See Documentation/devicetree/bindings/iio/iio-bindings.txt for further info)
Example:
da9150-charger {
compatible = "dlg,da9150-charger";
io-channels = <&gpadc 0>,
<&gpadc 2>,
<&gpadc 8>,
<&gpadc 5>;
io-channel-names = "CHAN_IBUS",
"CHAN_VBUS",
"CHAN_TJUNC",
"CHAN_VBAT";
};

View File

@ -1,23 +0,0 @@
Dialog Semiconductor DA9150 Fuel-Gauge Power Supply bindings
Required properties:
- compatible: "dlg,da9150-fuel-gauge" for DA9150 Fuel-Gauge Power Supply
Optional properties:
- dlg,update-interval: Interval time (milliseconds) between battery level checks.
- dlg,warn-soc-level: Battery discharge level (%) where warning event raised.
[1 - 100]
- dlg,crit-soc-level: Battery discharge level (%) where critical event raised.
This value should be lower than the warning level.
[1 - 100]
Example:
fuel-gauge {
compatible = "dlg,da9150-fuel-gauge";
dlg,update-interval = <10000>;
dlg,warn-soc-level = /bits/ 8 <15>;
dlg,crit-soc-level = /bits/ 8 <5>;
};

View File

@ -0,0 +1,52 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/dlg,da9150-charger.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Dialog Semiconductor DA9150 Charger Power Supply bindings
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: dlg,da9150-charger
io-channels:
items:
- description: ADC channel for current
- description: ADC channel for bus voltage
- description: ADC channel for junction temperature
- description: ADC channel for battery voltage
io-channel-names:
items:
- const: CHAN_IBUS
- const: CHAN_VBUS
- const: CHAN_TJUNC
- const: CHAN_VBAT
required:
- compatible
additionalProperties: false
examples:
- |
pmic {
charger {
compatible = "dlg,da9150-charger";
io-channels = <&gpadc 0>,
<&gpadc 2>,
<&gpadc 8>,
<&gpadc 5>;
io-channel-names = "CHAN_IBUS",
"CHAN_VBUS",
"CHAN_TJUNC",
"CHAN_VBAT";
};
};

View File

@ -0,0 +1,51 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/dlg,da9150-fuel-gauge.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Dialog Semiconductor DA9150 Fuel-Gauge Power Supply bindings
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: dlg,da9150-fuel-gauge
dlg,update-interval:
$ref: /schemas/types.yaml#/definitions/uint32
description: Interval time (milliseconds) between battery level checks.
dlg,warn-soc-level:
$ref: /schemas/types.yaml#/definitions/uint8
minimum: 1
maximum: 100
description: Battery discharge level (%) where warning event raised.
dlg,crit-soc-level:
$ref: /schemas/types.yaml#/definitions/uint8
minimum: 1
maximum: 100
description: |
Battery discharge level (%) where critical event raised.
This value should be lower than the warning level.
required:
- compatible
additionalProperties: false
examples:
- |
pmic {
battery {
compatible = "dlg,da9150-fuel-gauge";
dlg,update-interval = <10000>;
dlg,warn-soc-level = /bits/ 8 <15>;
dlg,crit-soc-level = /bits/ 8 <5>;
};
};

View File

@ -1,17 +0,0 @@
Binding for NXP ISP1704 USB Charger Detection
Required properties:
- compatible: Should contain one of the following:
* "nxp,isp1704"
- nxp,enable-gpio: Should contain a phandle + gpio-specifier
to the GPIO pin connected to the chip's enable pin.
- usb-phy: Should contain a phandle to the USB PHY
the ISP1704 is connected to.
Example:
isp1704 {
compatible = "nxp,isp1704";
nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_LOW>;
usb-phy = <&usb2_phy>;
};

View File

@ -0,0 +1,42 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/isp1704.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Binding for NXP ISP1704 USB Charger Detection
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: nxp,isp1704
nxp,enable-gpio:
maxItems: 1
description: GPIO connected to the chip's enable pin
usb-phy:
$ref: /schemas/types.yaml#/definitions/phandle
description: USB PHY the ISP1704 is connected to
required:
- compatible
- nxp,enable-gpio
- usb-phy
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
charger-detect {
compatible = "nxp,isp1704";
nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_LOW>;
usb-phy = <&usb2_phy>;
};

View File

@ -0,0 +1,55 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/lego,ev3-battery.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: LEGO MINDSTORMS EV3 Battery
maintainers:
- David Lechner <david@lechnology.com>
- Sebastian Reichel <sre@kernel.org>
description: |
LEGO MINDSTORMS EV3 has some built-in capability for monitoring the battery.
It uses 6 AA batteries or a special Li-ion rechargeable battery pack that is
detected by a key switch in the battery compartment.
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: lego,ev3-battery
io-channels:
items:
- description: ADC channel for battery voltage
- description: ADC channel for battery current
io-channel-names:
items:
- const: voltage
- const: current
rechargeable-gpios:
maxItems: 1
description: Rechargeable battery indication gpio
required:
- compatible
- io-channels
- io-channel-names
- rechargeable-gpios
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
battery {
compatible = "lego,ev3-battery";
io-channels = <&adc 4>, <&adc 3>;
io-channel-names = "voltage", "current";
rechargeable-gpios = <&gpio 136 GPIO_ACTIVE_LOW>;
};

View File

@ -1,21 +0,0 @@
LEGO MINDSTORMS EV3 Battery
~~~~~~~~~~~~~~~~~~~~~~~~~~~
LEGO MINDSTORMS EV3 has some built-in capability for monitoring the battery.
It uses 6 AA batteries or a special Li-ion rechargeable battery pack that is
detected by a key switch in the battery compartment.
Required properties:
- compatible: Must be "lego,ev3-battery"
- io-channels: phandles to analog inputs for reading voltage and current
- io-channel-names: Must be "voltage", "current"
- rechargeable-gpios: phandle to the rechargeable battery indication gpio
Example:
battery {
compatible = "lego,ev3-battery";
io-channels = <&adc 4>, <&adc 3>;
io-channel-names = "voltage", "current";
rechargeable-gpios = <&gpio 136 GPIO_ACTIVE_LOW>;
};

View File

@ -0,0 +1,44 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/lltc,lt3651-charger.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Analog Devices LT3651 Charger Power Supply bindings
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- lltc,lt3651-charger
- lltc,ltc3651-charger # deprecated, use lltc,lt3651-charger
lltc,acpr-gpios:
maxItems: 1
lltc,fault-gpios:
maxItems: 1
lltc,chrg-gpios:
maxItems: 1
required:
- compatible
- lltc,acpr-gpios
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
charger {
compatible = "lltc,lt3651-charger";
lltc,acpr-gpios = <&gpio0 68 GPIO_ACTIVE_LOW>;
lltc,fault-gpios = <&gpio0 64 GPIO_ACTIVE_LOW>;
lltc,chrg-gpios = <&gpio0 63 GPIO_ACTIVE_LOW>;
};

View File

@ -0,0 +1,66 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/lltc,ltc294x.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Binding for LTC2941, LTC2942, LTC2943 and LTC2944 battery fuel gauges
description: |
All chips measure battery capacity.
The LTC2942 is pin compatible with the LTC2941, it adds voltage and
temperature monitoring, and is runtime detected. LTC2943 and LTC2944
are software compatible, uses a slightly different conversion formula
for the charge counter and adds voltage, current and temperature monitoring.
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- lltc,ltc2941
- lltc,ltc2942
- lltc,ltc2943
- lltc,ltc2944
reg:
maxItems: 1
lltc,resistor-sense:
$ref: /schemas/types.yaml#/definitions/int32
description: |
Sense resistor value in milli-ohms.
Can be negative value when the battery has been connected to the wrong end of the resistor.
lltc,prescaler-exponent:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
The prescaler exponent as explained in the datasheet.
This determines the range and accuracy of the gauge.
The value is programmed into the chip only if it differs from the current setting.
The setting is lost when the battery is disconnected.
required:
- compatible
- reg
- lltc,resistor-sense
- lltc,prescaler-exponent
additionalProperties: false
examples:
- |
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
battery@64 {
compatible = "lltc,ltc2943";
reg = <0x64>;
lltc,resistor-sense = <15>;
lltc,prescaler-exponent = <5>; /* 2^(2*5) = 1024 */
};
};

View File

@ -1,43 +0,0 @@
Binding for TI/National Semiconductor LP8727 Charger
Required properties:
- compatible: "ti,lp8727"
- reg: I2C slave address 27h
Optional properties:
- interrupts: interrupt specifier (see interrupt binding[0])
- debounce-ms: interrupt debounce time. (u32)
AC and USB charging parameters
- charger-type: "ac" or "usb" (string)
- eoc-level: value of 'enum lp8727_eoc_level' (u8)
- charging-current: value of 'enum lp8727_ichg' (u8)
[0]: Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
Example)
lp8727@27 {
compatible = "ti,lp8727";
reg = <0x27>;
/* GPIO 134 is used for LP8728 interrupt pin */
interrupt-parent = <&gpio5>; /* base = 128 */
interrupts = <6 0x2>; /* offset = 6, falling edge type */
debounce-ms = <300>;
/* AC charger: 5% EOC and 500mA charging current */
ac {
charger-type = "ac";
eoc-level = /bits/ 8 <0>;
charging-current = /bits/ 8 <4>;
};
/* USB charger: 10% EOC and 400mA charging current */
usb {
charger-type = "usb";
eoc-level = /bits/ 8 <1>;
charging-current = /bits/ 8 <2>;
};
};

View File

@ -1,29 +0,0 @@
Analog Devices LT3651 Charger Power Supply bindings: lt3651-charger
Required properties:
- compatible: Should contain one of the following:
* "lltc,ltc3651-charger", (DEPRECATED: Use "lltc,lt3651-charger")
* "lltc,lt3651-charger"
- lltc,acpr-gpios: Connect to ACPR output. See remark below.
Optional properties:
- lltc,fault-gpios: Connect to FAULT output. See remark below.
- lltc,chrg-gpios: Connect to CHRG output. See remark below.
The lt3651 outputs are open-drain type and active low. The driver assumes the
GPIO reports "active" when the output is asserted, so if the pins have been
connected directly, the GPIO flags should be set to active low also.
The driver will attempt to aquire interrupts for all GPIOs to detect changes in
line state. If the system is not capabale of providing interrupts, the driver
cannot report changes and userspace will need to periodically read the sysfs
attributes to detect changes.
Example:
charger: battery-charger {
compatible = "lltc,lt3651-charger";
lltc,acpr-gpios = <&gpio0 68 GPIO_ACTIVE_LOW>;
lltc,fault-gpios = <&gpio0 64 GPIO_ACTIVE_LOW>;
lltc,chrg-gpios = <&gpio0 63 GPIO_ACTIVE_LOW>;
};

View File

@ -1,28 +0,0 @@
binding for LTC2941, LTC2942, LTC2943 and LTC2944 battery gauges
All chips measure battery capacity.
The LTC2942 is pin compatible with the LTC2941, it adds voltage and
temperature monitoring, and is runtime detected. LTC2943 and LTC2944
is software compatible, uses a slightly different conversion formula
for the charge counter and adds voltage, current and temperature monitoring.
Required properties:
- compatible: Should contain "lltc,ltc2941", "lltc,ltc2942", "lltc,ltc2943"
or "lltc,ltc2944" which also indicates the type of I2C chip attached.
- reg: The 7-bit I2C address.
- lltc,resistor-sense: The sense resistor value in milli-ohms. Can be a 32-bit
negative value when the battery has been connected to the wrong end of the
resistor.
- lltc,prescaler-exponent: The prescaler exponent as explained in the datasheet.
This determines the range and accuracy of the gauge. The value is programmed
into the chip only if it differs from the current setting. The setting is
lost when the battery is disconnected.
Example from the Topic Miami Florida board:
fuelgauge: ltc2943@64 {
compatible = "lltc,ltc2943";
reg = <0x64>;
lltc,resistor-sense = <15>;
lltc,prescaler-exponent = <5>; /* 2^(2*5) = 1024 */
};

View File

@ -1,52 +0,0 @@
max17040_battery
~~~~~~~~~~~~~~~~
Required properties :
- compatible : "maxim,max17040", "maxim,max17041", "maxim,max17043",
"maxim,max17044", "maxim,max17048", "maxim,max17049",
"maxim,max17058", "maxim,max17059" or "maxim,max77836-battery"
- reg: i2c slave address
Optional properties :
- maxim,alert-low-soc-level : The alert threshold that sets the state of
charge level (%) where an interrupt is
generated. Can be configured from 1 up to 32
(%). If skipped the power up default value of
4 (%) will be used.
- maxim,double-soc : Certain devices return double the capacity.
Specify this boolean property to divide the
reported value in 2 and thus normalize it.
SOC == State of Charge == Capacity.
- maxim,rcomp : A value to compensate readings for various
battery chemistries and operating temperatures.
max17040,41 have 2 byte rcomp, default to
0x97 0x00. All other devices have one byte
rcomp, default to 0x97.
- interrupts : Interrupt line see Documentation/devicetree/
bindings/interrupt-controller/interrupts.txt
- wakeup-source : This device has wakeup capabilities. Use this
property to use alert low SOC level interrupt
as wake up source.
Optional properties support interrupt functionality for alert low state of
charge level, present in some ICs in the same family, and should be used with
compatible "maxim,max77836-battery".
Example:
battery-fuel-gauge@36 {
compatible = "maxim,max77836-battery";
reg = <0x36>;
maxim,alert-low-soc-level = <10>;
interrupt-parent = <&gpio7>;
interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
wakeup-source;
};
battery-fuel-gauge@36 {
compatible = "maxim,max17048";
reg = <0x36>;
maxim,rcomp = /bits/ 8 <0x56>;
maxim,alert-low-soc-level = <10>;
maxim,double-soc;
};

View File

@ -1,35 +0,0 @@
max17042_battery
~~~~~~~~~~~~~~~~
Required properties :
- compatible : one of the following
* "maxim,max17042"
* "maxim,max17047"
* "maxim,max17050"
* "maxim,max17055"
Optional properties :
- maxim,rsns-microohm : Resistance of rsns resistor in micro Ohms
(datasheet-recommended value is 10000).
Defining this property enables current-sense functionality.
Optional threshold properties :
If skipped the condition won't be reported.
- maxim,cold-temp : Temperature threshold to report battery
as cold (in tenths of degree Celsius).
- maxim,over-heat-temp : Temperature threshold to report battery
as over heated (in tenths of degree Celsius).
- maxim,dead-volt : Voltage threshold to report battery
as dead (in mV).
- maxim,over-volt : Voltage threshold to report battery
as over voltage (in mV).
Example:
battery-charger@36 {
compatible = "maxim,max17042";
reg = <0x36>;
maxim,rsns-microohm = <10000>;
maxim,over-heat-temp = <600>;
maxim,over-volt = <4300>;
};

View File

@ -1,24 +0,0 @@
Maxim Semiconductor MAX8903 Battery Charger bindings
Required properties:
- compatible: "maxim,max8903" for MAX8903 Battery Charger
- dok-gpios: Valid DC power has been detected (active low, input), optional if uok-gpios is provided
- uok-gpios: Valid USB power has been detected (active low, input), optional if dok-gpios is provided
Optional properties:
- cen-gpios: Charge enable pin (active low, output)
- chg-gpios: Charger status pin (active low, input)
- flt-gpios: Fault pin (active low, output)
- dcm-gpios: Current limit mode setting (DC=1 or USB=0, output)
- usus-gpios: USB suspend pin (active high, output)
Example:
max8903-charger {
compatible = "maxim,max8903";
dok-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
flt-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
chg-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
cen-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
};

View File

@ -1,26 +0,0 @@
Devicetree bindings for Maxim DS2760
====================================
The ds2760 is a w1 slave device and must hence have its sub-node in DT
under a w1 bus master node.
The device exposes a power supply, so the details described in
Documentation/devicetree/bindings/power/supply/power_supply.txt apply.
Required properties:
- compatible: must be "maxim,ds2760"
Optional properties:
- power-supplies: Refers to one or more power supplies connected to
this battery.
- maxim,pmod-enabled: This boolean property enables the DS2760 to enter
sleep mode when the DQ line goes low for greater
than 2 seconds and leave sleep Mode when the DQ
line goes high.
- maxim,cache-time-ms: Time im milliseconds to cache the data for. When
this time expires, the values are read again from
the hardware. Defaults to 1000.
- rated-capacity-microamp-hours:
The rated capacity of the battery, in mAh.
If not specified, the value stored in the
non-volatile chip memory is used.

View File

@ -0,0 +1,43 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/maxim,ds2760.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Maxim DS2760 DT bindings
maintainers:
- Sebastian Reichel <sre@kernel.org>
description: |
The ds2760 is a w1 slave device and must hence have its sub-node in
DT under a w1 bus master node.
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: maxim,ds2760
maxim,pmod-enabled:
description: |
Allow the DS2760 to enter sleep mode when the DQ line goes low for more than 2 seconds
and leave sleep Mode when the DQ line goes high.
type: boolean
maxim,cache-time-ms:
description: |
Time im milliseconds to cache the data for.
When this time expires, the values are read again from the hardware.
Defaults to 1000.
rated-capacity-microamp-hours:
description: |
The rated capacity of the battery, in mAh.
If not specified, the value stored in the non-volatile chip memory is used.
required:
- compatible
unevaluatedProperties: false

View File

@ -1,23 +0,0 @@
Maxim MAX14656 / AL32 USB Charger Detector
Required properties :
- compatible : "maxim,max14656";
- reg: i2c slave address
- interrupts: interrupt line
Example:
&i2c2 {
clock-frequency = <50000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c2>;
max14656@35 {
compatible = "maxim,max14656";
reg = <0x35>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_charger_detect>;
interrupt-parent = <&gpio6>;
interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
};
};

View File

@ -0,0 +1,45 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/maxim,max14656.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Maxim MAX14656 DT bindings
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: maxim,max14656
reg:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
- interrupts
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
charger-detector@35 {
compatible = "maxim,max14656";
reg = <0x35>;
interrupt-parent = <&gpio6>;
interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
};
};

View File

@ -0,0 +1,95 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/maxim,max17040.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Maxim 17040 fuel gauge series
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- maxim,max17040
- maxim,max17041
- maxim,max17043
- maxim,max17044
- maxim,max17048
- maxim,max17049
- maxim,max17058
- maxim,max17059
- maxim,max77836-battery
reg:
maxItems: 1
maxim,alert-low-soc-level:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 1
maximum: 32
description: |
The alert threshold that sets the state of charge level (%) where an interrupt is generated.
If skipped the power up default value of 4 (%) will be used.
maxim,double-soc:
type: boolean
description: |
Certain devices return double the capacity.
Specify this to divide the reported value in 2 and thus normalize it.
SoC == State of Charge == Capacity.
maxim,rcomp:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
A value to compensate readings for various battery chemistries and operating temperatures.
max17040,41 have 2 byte rcomp, default to 0x97 0x00.
All other devices have one byte rcomp, default to 0x97.
interrupts:
maxItems: 1
wakeup-source:
type: boolean
description: |
Use this property to use alert low SoC level interrupt as wake up source.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
battery@36 {
compatible = "maxim,max17048";
reg = <0x36>;
maxim,rcomp = /bits/ 8 <0x56>;
maxim,alert-low-soc-level = <10>;
maxim,double-soc;
};
};
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
battery@36 {
compatible = "maxim,max77836-battery";
reg = <0x36>;
maxim,alert-low-soc-level = <10>;
interrupt-parent = <&gpio7>;
interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
wakeup-source;
};
};

View File

@ -0,0 +1,78 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/maxim,max17042.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Maxim 17042 fuel gauge series
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- maxim,max17042
- maxim,max17047
- maxim,max17050
- maxim,max17055
reg:
maxItems: 1
interrupts:
maxItems: 1
maxim,rsns-microohm:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Resistance of rsns resistor in micro Ohms (datasheet-recommended value is 10000).
Defining this property enables current-sense functionality.
maxim,cold-temp:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Temperature threshold to report battery as cold (in tenths of degree Celsius).
Default is not to report cold events.
maxim,over-heat-temp:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Temperature threshold to report battery as over heated (in tenths of degree Celsius).
Default is not to report over heating events.
maxim,dead-volt:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Voltage threshold to report battery as dead (in mV).
Default is not to report dead battery events.
maxim,over-volt:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
Voltage threshold to report battery as over voltage (in mV).
Default is not to report over-voltage events.
required:
- compatible
- reg
additionalProperties: false
examples:
- |
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
battery@36 {
compatible = "maxim,max17042";
reg = <0x36>;
maxim,rsns-microohm = <10000>;
maxim,over-heat-temp = <600>;
maxim,over-volt = <4300>;
};
};

View File

@ -0,0 +1,67 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/maxim,max8903.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Maxim Semiconductor MAX8903 Battery Charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: maxim,max8903
dok-gpios:
maxItems: 1
description: Valid DC power has been detected (active low, input)
uok-gpios:
maxItems: 1
description: Valid USB power has been detected (active low, input)
cen-gpios:
maxItems: 1
description: Charge enable pin (active low, output)
chg-gpios:
maxItems: 1
description: Charger status pin (active low, input)
flt-gpios:
maxItems: 1
description: Fault pin (active low, output)
dcm-gpios:
maxItems: 1
description: Current limit mode setting (DC=1 or USB=0, output)
usus-gpios:
maxItems: 1
description: USB suspend pin (active high, output)
required:
- compatible
anyOf:
- required:
- dok-gpios
- required:
- uok-gpios
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
charger {
compatible = "maxim,max8903";
dok-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
flt-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
chg-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
cen-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
};

View File

@ -1,27 +0,0 @@
Microchip UCS1002 USB Port Power Controller
Required properties:
- compatible : Should be "microchip,ucs1002";
- reg : I2C slave address
Optional properties:
- interrupts : A list of interrupts lines present (could be either
corresponding to A_DET# pin, ALERT# pin, or both)
- interrupt-names : A list of interrupt names. Should contain (if
present):
- "a_det" for line connected to A_DET# pin
- "alert" for line connected to ALERT# pin
Both are expected to be IRQ_TYPE_EDGE_BOTH
Example:
&i2c3 {
charger@32 {
compatible = "microchip,ucs1002";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ucs1002_pins>;
reg = <0x32>;
interrupts-extended = <&gpio5 2 IRQ_TYPE_EDGE_BOTH>,
<&gpio3 21 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "a_det", "alert";
};
};

View File

@ -0,0 +1,51 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/supply/microchip,ucs1002.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Microchip UCS1002 USB Port Power Controller
maintainers:
- Sebastian Reichel <sre@kernel.org>
properties:
compatible:
const: microchip,ucs1002
reg:
maxItems: 1
interrupts:
maxItems: 2
interrupt-names:
oneOf:
- items:
- const: a_det
- const: alert
- const: a_det
- const: alert
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
charger@32 {
compatible = "microchip,ucs1002";
reg = <0x32>;
interrupts-extended = <&gpio5 2 IRQ_TYPE_EDGE_BOTH>,
<&gpio3 21 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "a_det", "alert";
};
};

View File

@ -0,0 +1,49 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/nokia,n900-battery.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Nokia N900 battery
maintainers:
- Pali Rohár <pali@kernel.org>
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: nokia,n900-battery
io-channels:
items:
- description: ADC channel for temperature reading
- description: ADC channel for battery size identification
- description: ADC channel to measure the battery voltage
io-channel-names:
items:
- const: temp
- const: bsi
- const: vbat
required:
- compatible
- io-channels
- io-channel-names
additionalProperties: false
examples:
- |
battery {
compatible = "nokia,n900-battery";
io-channels = <&twl4030_madc 0>,
<&twl4030_madc 4>,
<&twl4030_madc 12>;
io-channel-names = "temp",
"bsi",
"vbat";
};

View File

@ -0,0 +1,27 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/olpc-battery.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: OLPC Battery
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
oneOf:
- items:
- const: olpc,xo1.5-battery
- const: olpc,xo1-battery
- items:
- const: olpc,xo1-battery
required:
- compatible
additionalProperties: false

View File

@ -1,5 +0,0 @@
OLPC battery
~~~~~~~~~~~~
Required properties:
- compatible : "olpc,xo1-battery" or "olpc,xo1.5-battery"

View File

@ -1,2 +0,0 @@
This binding has been converted to yaml please see power-supply.yaml in this
directory.

View File

@ -1,48 +0,0 @@
Qualcomm Coincell Charger:
The hardware block controls charging for a coincell or capacitor that is
used to provide power backup for certain features of the power management
IC (PMIC)
- compatible:
Usage: required
Value type: <string>
Definition: must be: "qcom,pm8941-coincell"
- reg:
Usage: required
Value type: <u32>
Definition: base address of the coincell charger registers
- qcom,rset-ohms:
Usage: required
Value type: <u32>
Definition: resistance (in ohms) for current-limiting resistor
must be one of: 800, 1200, 1700, 2100
- qcom,vset-millivolts:
Usage: required
Value type: <u32>
Definition: voltage (in millivolts) to apply for charging
must be one of: 2500, 3000, 3100, 3200
- qcom,charger-disable:
Usage: optional
Value type: <boolean>
Definition: defining this property disables charging
This charger is a sub-node of one of the 8941 PMIC blocks, and is specified
as a child node in DTS of that node. See ../mfd/qcom,spmi-pmic.txt and
../mfd/qcom-pm8xxx.txt
Example:
pm8941@0 {
coincell@2800 {
compatible = "qcom,pm8941-coincell";
reg = <0x2800>;
qcom,rset-ohms = <2100>;
qcom,vset-millivolts = <3000>;
};
};

View File

@ -0,0 +1,169 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/supply/qcom,pm8941-charger.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Switch-Mode Battery Charger and Boost
maintainers:
- Sebastian Reichel <sre@kernel.org>
properties:
compatible:
const: qcom,pm8941-charger
reg:
maxItems: 1
interrupts:
items:
- description: charge done
- description: charge fast mode
- description: charge trickle mode
- description: battery temperature ok
- description: battery present
- description: charger disconnected
- description: USB-in valid
- description: DC-in valid
interrupt-names:
items:
- const: chg-done
- const: chg-fast
- const: chg-trkl
- const: bat-temp-ok
- const: bat-present
- const: chg-gone
- const: usb-valid
- const: dc-valid
qcom,fast-charge-current-limit:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 100000
maximum: 3000000
description: Maximum charge current in uA; May be clamped to safety limits; Defaults to 1A
qcom,fast-charge-low-threshold-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 2100000
maximum: 3600000
description: |
Battery voltage limit in uV above which fast charging may operate; Defaults to 3.2V
Below this value linear or switch-mode auto-trickle-charging will operate.
qcom,fast-charge-high-threshold-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 3240000
maximum: 5000000
description: |
Battery voltage limit in uV below which fast charging may operate; Defaults to 4.2V
The fast charger will attempt to charge the battery to this voltage.
May be clamped to safety limits.
qcom,fast-charge-safe-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 3240000
maximum: 5000000
description: |
Maximum safe battery voltage in uV; May be pre-set by bootloader, in which case,
setting this will harmlessly fail. The property 'fast-charge-high-watermark' will
be clamped by this value. Defaults to 4.2V.
qcom,fast-charge-safe-current:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 100000
maximum: 3000000
description: |
Maximum safe battery charge current in uA; May pre-set by bootloader, in which case,
setting this will harmlessly fail. The property 'qcom,fast-charge-current-limit'
will be clamped by this value. Defaults to 1A.
qcom,auto-recharge-threshold-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 3240000
maximum: 5000000
description: |
Battery voltage limit in uV below which auto-recharge functionality will restart charging
after end-of-charge; The high cutoff limit for auto-recharge is 5% above this value.
Defaults to 4.1V.
qcom,minimum-input-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 4200000
maximum: 9600000
description: |
Input voltage level in uV above which charging may operate. Defaults to 4.3V.
qcom,dc-current-limit:
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 100000
maximum: 2500000
description: |
Default DC charge current limit in uA. Defaults to 100mA.
qcom,disable-dc:
type: boolean
description: Disable DC charger
qcom,jeita-extended-temp-range:
type: boolean
description: |
Enable JEITA extended temperature range; This does *not* adjust the maximum charge
voltage or current in the extended temperature range. It only allows charging when
the battery is in the extended temperature range. Voltage/current regulation must
be done externally to fully comply with the JEITA safety guidelines if this flag
is set.
usb-otg-in-supply:
description: Reference to the regulator supplying power to the USB_OTG_IN pin.
otg-vbus:
type: object
description: |
This node defines a regulator used to control the direction of VBUS voltage.
Specifically whether to supply voltage to VBUS for host mode operation of the OTG port,
or allow input voltage from external VBUS for charging. In the hardware, the supply for
this regulator comes from usb_otg_in-supply.
required:
- compatible
- reg
- interrupts
- interrupt-names
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
pmic {
#address-cells = <1>;
#size-cells = <0>;
charger@1000 {
compatible = "qcom,pm8941-charger";
reg = <0x1000>;
interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "chg-done",
"chg-fast",
"chg-trkl",
"bat-temp-ok",
"bat-present",
"chg-gone",
"usb-valid",
"dc-valid";
qcom,fast-charge-current-limit = <1000000>;
qcom,dc-current-limit = <1000000>;
usb-otg-in-supply = <&pm8941_5vs1>;
otg-vbus {};
};
};

View File

@ -0,0 +1,57 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/supply/qcom,pm8941-coincell.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Coincell Charger
description: |
The hardware block controls charging for a coincell or capacitor that is
used to provide power backup for certain features of the power management
IC (PMIC)
maintainers:
- Sebastian Reichel <sre@kernel.org>
properties:
compatible:
const: qcom,pm8941-coincell
reg:
maxItems: 1
qcom,rset-ohms:
description: resistance (in ohms) for current-limiting resistor
enum: [ 800, 1200, 1700, 2100 ]
qcom,vset-millivolts:
$ref: /schemas/types.yaml#/definitions/uint32
description: voltage (in millivolts) to apply for charging
enum: [ 2500, 3000, 3100, 3200 ]
qcom,charger-disable:
type: boolean
description: defining this property disables charging
required:
- compatible
- reg
- qcom,rset-ohms
- qcom,vset-millivolts
additionalProperties: false
examples:
- |
pmic {
#address-cells = <1>;
#size-cells = <0>;
charger@2800 {
compatible = "qcom,pm8941-coincell";
reg = <0x2800>;
qcom,rset-ohms = <2100>;
qcom,vset-millivolts = <3000>;
};
};

View File

@ -1,150 +0,0 @@
Qualcomm Switch-Mode Battery Charger and Boost
PROPERTIES
- compatible:
Usage: required
Value type: <stringlist>
Description: Must be one of:
- "qcom,pm8941-charger"
- reg:
Usage: required
Value type: <prop-encoded-array>
Description: Base address of registers for SMBB block
- interrupts:
Usage: required
Value type: <prop-encoded-array>
Description: The format of the specifier is defined by the binding document
describing the node's interrupt parent. Must contain one
specifier for each of the following interrupts, in order:
- charge done
- charge fast mode
- charge trickle mode
- battery temperature ok
- battery present
- charger disconnected
- USB-in valid
- DC-in valid
- interrupt-names:
Usage: required
Value type: <stringlist>
Description: Must contain the following list, strictly ordered:
"chg-done",
"chg-fast",
"chg-trkl",
"bat-temp-ok",
"bat-present",
"chg-gone",
"usb-valid",
"dc-valid"
- qcom,fast-charge-current-limit:
Usage: optional (default: 1A, or pre-configured value)
Value type: <u32>; uA; range [100mA : 3A]
Description: Maximum charge current; May be clamped to safety limits.
- qcom,fast-charge-low-threshold-voltage:
Usage: optional (default: 3.2V, or pre-configured value)
Value type: <u32>; uV; range [2.1V : 3.6V]
Description: Battery voltage limit above which fast charging may operate;
Below this value linear or switch-mode auto-trickle-charging
will operate.
- qcom,fast-charge-high-threshold-voltage:
Usage: optional (default: 4.2V, or pre-configured value)
Value type: <u32>; uV; range [3.24V : 5V]
Description: Battery voltage limit below which fast charging may operate;
The fast charger will attempt to charge the battery to this
voltage. May be clamped to safety limits.
- qcom,fast-charge-safe-voltage:
Usage: optional (default: 4.2V, or pre-configured value)
Value type: <u32>; uV; range [3.24V : 5V]
Description: Maximum safe battery voltage; May be pre-set by bootloader, in
which case, setting this will harmlessly fail. The property
'fast-charge-high-watermark' will be clamped by this value.
- qcom,fast-charge-safe-current:
Usage: optional (default: 1A, or pre-configured value)
Value type: <u32>; uA; range [100mA : 3A]
Description: Maximum safe battery charge current; May pre-set by bootloader,
in which case, setting this will harmlessly fail. The property
'qcom,fast-charge-current-limit' will be clamped by this value.
- qcom,auto-recharge-threshold-voltage:
Usage: optional (default: 4.1V, or pre-configured value)
Value type: <u32>; uV; range [3.24V : 5V]
Description: Battery voltage limit below which auto-recharge functionality
will restart charging after end-of-charge; The high cutoff
limit for auto-recharge is 5% above this value.
- qcom,minimum-input-voltage:
Usage: optional (default: 4.3V, or pre-configured value)
Value type: <u32>; uV; range [4.2V : 9.6V]
Description: Input voltage level above which charging may operate
- qcom,dc-current-limit:
Usage: optional (default: 100mA, or pre-configured value)
Value type: <u32>; uA; range [100mA : 2.5A]
Description: Default DC charge current limit
- qcom,disable-dc:
Usage: optional (default: false)
Value type: boolean: <u32> or <empty>
Description: Disable DC charger
- qcom,jeita-extended-temp-range:
Usage: optional (default: false)
Value type: boolean: <u32> or <empty>
Description: Enable JEITA extended temperature range; This does *not*
adjust the maximum charge voltage or current in the extended
temperature range. It only allows charging when the battery
is in the extended temperature range. Voltage/current
regulation must be done externally to fully comply with
the JEITA safety guidelines if this flag is set.
- usb_otg_in-supply:
Usage: optional
Value type: <phandle>
Description: Reference to the regulator supplying power to the USB_OTG_IN
pin.
child nodes:
- otg-vbus:
Usage: optional
Description: This node defines a regulator used to control the direction
of VBUS voltage - specifically: whether to supply voltage
to VBUS for host mode operation of the OTG port, or allow
input voltage from external VBUS for charging. In the
hardware, the supply for this regulator comes from
usb_otg_in-supply.
EXAMPLE
charger@1000 {
compatible = "qcom,pm8941-charger";
reg = <0x1000 0x700>;
interrupts = <0x0 0x10 7 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x10 5 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x10 4 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x12 1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x12 0 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x13 2 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x13 1 IRQ_TYPE_EDGE_BOTH>,
<0x0 0x14 1 IRQ_TYPE_EDGE_BOTH>;
interrupt-names = "chg-done",
"chg-fast",
"chg-trkl",
"bat-temp-ok",
"bat-present",
"chg-gone",
"usb-valid",
"dc-valid";
qcom,fast-charge-current-limit = <1000000>;
qcom,dc-charge-current-limit = <1000000>;
usb_otg_in-supply = <&pm8941_5vs1>;
otg-vbus {};
};

View File

@ -0,0 +1,90 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/richtek,rt9455.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Binding for Richtek rt9455 battery charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: richtek,rt9455
reg:
maxItems: 1
interrupts:
maxItems: 1
richtek,output-charge-current:
$ref: /schemas/types.yaml#/definitions/uint32
description: output current from the charger to the battery, in uA.
richtek,end-of-charge-percentage:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
percent of the output charge current. When the current in constant-voltage phase drops
below output_charge_current x end-of-charge-percentage, charge is terminated.
richtek,battery-regulation-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description: maximum battery voltage in uV.
richtek,boost-output-voltage:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
maximum voltage provided to consumer devices, when the charger is in boost mode, in uV.
richtek,min-input-voltage-regulation:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
input voltage level in uV, used to decrease voltage level when the over current of the
input power source occurs. This prevents input voltage drop due to insufficient
current provided by the power source. Defaults to 4500000 uV (4.5V).
richtek,avg-input-current-regulation:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
input current value in uA drained by the charger from the power source.
Defaults to 500000 uA (500mA).
required:
- compatible
- reg
- interrupts
- richtek,output-charge-current
- richtek,end-of-charge-percentage
- richtek,battery-regulation-voltage
- richtek,boost-output-voltage
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
charger@22 {
compatible = "richtek,rt9455";
reg = <0x22>;
interrupt-parent = <&gpio1>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
richtek,output-charge-current = <500000>;
richtek,end-of-charge-percentage = <10>;
richtek,battery-regulation-voltage = <4200000>;
richtek,boost-output-voltage = <5050000>;
richtek,min-input-voltage-regulation = <4500000>;
richtek,avg-input-current-regulation = <500000>;
};
};

View File

@ -110,7 +110,7 @@ properties:
# multipleOf: 64000
# a charge cycle terminates when the battery voltage is above recharge
# threshold, and the current is below this setting (7 in above chart)
# See also Documentation/devicetree/bindings/power/supply/battery.txt
# See also Documentation/devicetree/bindings/power/supply/battery.yaml
reg:
maxItems: 1

View File

@ -1,46 +0,0 @@
Binding for Richtek rt9455 battery charger
Required properties:
- compatible: it should contain one of the following:
"richtek,rt9455".
- reg: integer, i2c address of the device.
- interrupts: interrupt mapping for GPIO IRQ, it should be
configured with IRQ_TYPE_LEVEL_LOW flag.
- richtek,output-charge-current: integer, output current from the charger to the
battery, in uA.
- richtek,end-of-charge-percentage: integer, percent of the output charge current.
When the current in constant-voltage phase drops
below output_charge_current x end-of-charge-percentage,
charge is terminated.
- richtek,battery-regulation-voltage: integer, maximum battery voltage in uV.
- richtek,boost-output-voltage: integer, maximum voltage provided to consumer
devices, when the charger is in boost mode, in uV.
Optional properties:
- richtek,min-input-voltage-regulation: integer, input voltage level in uV, used to
decrease voltage level when the over current
of the input power source occurs.
This prevents input voltage drop due to insufficient
current provided by the power source.
Default: 4500000 uV (4.5V)
- richtek,avg-input-current-regulation: integer, input current value in uA drained by the
charger from the power source.
Default: 500000 uA (500mA)
Example:
rt9455@22 {
compatible = "richtek,rt9455";
reg = <0x22>;
interrupt-parent = <&gpio1>;
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
richtek,output-charge-current = <500000>;
richtek,end-of-charge-percentage = <10>;
richtek,battery-regulation-voltage = <4200000>;
richtek,boost-output-voltage = <5050000>;
richtek,min-input-voltage-regulation = <4500000>;
richtek,avg-input-current-regulation = <500000>;
};

View File

@ -1,25 +0,0 @@
Binding for Nokia N900 battery
The Nokia N900 battery status can be read via the TWL4030's A/D converter.
Required properties:
- compatible: Should contain one of the following:
* "nokia,n900-battery"
- io-channels: Should contain IIO channel specifiers
for each element in io-channel-names.
- io-channel-names: Should contain the following values:
* "temp" - The ADC channel for temperature reading
* "bsi" - The ADC channel for battery size identification
* "vbat" - The ADC channel to measure the battery voltage
Example from Nokia N900:
battery: n900-battery {
compatible = "nokia,n900-battery";
io-channels = <&twl4030_madc 0>,
<&twl4030_madc 4>,
<&twl4030_madc 12>;
io-channel-names = "temp",
"bsi",
"vbat";
};

View File

@ -12,12 +12,15 @@ maintainers:
description: |
Battery compatible with the smart battery system specifications
properties:
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
oneOf:
- items:
- enum:
- ti,bq20z45
- ti,bq20z65
- ti,bq20z75
- enum:
@ -60,7 +63,7 @@ required:
- compatible
- reg
additionalProperties: false
unevaluatedProperties: false
examples:
- |

View File

@ -0,0 +1,55 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/supply/sbs,sbs-charger.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: SBS compliant charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
description: |
Charger compatible with the smart battery system specifications
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
oneOf:
- items:
- enum:
- lltc,ltc4100
- enum:
- sbs,sbs-charger
- items:
- const: sbs,sbs-charger
reg:
maxItems: 1
interrupts:
maxItems: 1
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
charger@9 {
compatible = "lltc,ltc4100", "sbs,sbs-charger";
reg = <0x9>;
interrupt-parent = <&gpio6>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
};
};

View File

@ -1,66 +0,0 @@
Binding for sbs-manager
Required properties:
- compatible: "<vendor>,<part-number>", "sbs,sbs-charger" as fallback. The part
number compatible string might be used in order to take care of vendor
specific registers.
- reg: integer, i2c address of the device. Should be <0xa>.
Optional properties:
- gpio-controller: Marks the port as GPIO controller.
See "gpio-specifier" in .../devicetree/bindings/gpio/gpio.txt.
- #gpio-cells: Should be <2>. The first cell is the pin number, the second cell
is used to specify optional parameters:
See "gpio-specifier" in .../devicetree/bindings/gpio/gpio.txt.
From OS view the device is basically an i2c-mux used to communicate with up to
four smart battery devices at address 0xb. The driver actually implements this
behaviour. So standard i2c-mux nodes can be used to register up to four slave
batteries. Channels will be numerated starting from 1 to 4.
Example:
batman@a {
compatible = "lltc,ltc1760", "sbs,sbs-manager";
reg = <0x0a>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
battery@b {
compatible = "ti,bq2060", "sbs,sbs-battery";
reg = <0x0b>;
sbs,battery-detect-gpios = <&batman 1 1>;
};
};
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
battery@b {
compatible = "ti,bq2060", "sbs,sbs-battery";
reg = <0x0b>;
sbs,battery-detect-gpios = <&batman 2 1>;
};
};
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
battery@b {
compatible = "ti,bq2060", "sbs,sbs-battery";
reg = <0x0b>;
sbs,battery-detect-gpios = <&batman 3 1>;
};
};
};

View File

@ -0,0 +1,107 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/supply/sbs,sbs-manager.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: SBS compliant manger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
oneOf:
- items:
- enum:
- lltc,ltc1760
- enum:
- sbs,sbs-manager
- items:
- const: sbs,sbs-manager
reg:
const: 0xa
"#address-cells":
const: 1
"#size-cells":
const: 0
gpio-controller: true
"#gpio-cells":
const: 2
required:
- compatible
- reg
additionalProperties: false
patternProperties:
"^i2c@[1-4]$":
type: object
allOf:
- $ref: /schemas/i2c/i2c-controller.yaml#
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
batman: battery-manager@a {
compatible = "lltc,ltc1760", "sbs,sbs-manager";
reg = <0x0a>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
battery@b {
compatible = "ti,bq20z65", "sbs,sbs-battery";
reg = <0x0b>;
sbs,battery-detect-gpios = <&batman 1 1>;
};
};
i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
battery@b {
compatible = "ti,bq20z65", "sbs,sbs-battery";
reg = <0x0b>;
sbs,battery-detect-gpios = <&batman 2 1>;
};
};
i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
battery@b {
compatible = "ti,bq20z65", "sbs,sbs-battery";
reg = <0x0b>;
sbs,battery-detect-gpios = <&batman 3 1>;
};
};
};
};

View File

@ -1,21 +0,0 @@
SBS sbs-charger
~~~~~~~~~~
Required properties:
- compatible: "<vendor>,<part-number>", "sbs,sbs-charger" as fallback. The part
number compatible string might be used in order to take care of vendor
specific registers.
Optional properties:
- interrupts: Interrupt mapping for GPIO IRQ. Use in conjunction with
"interrupt-parent". If an interrupt is not provided the driver will switch
automatically to polling.
Example:
ltc4100@9 {
compatible = "lltc,ltc4100", "sbs,sbs-charger";
reg = <0x9>;
interrupt-parent = <&gpio6>;
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
};

View File

@ -0,0 +1,53 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/sc2731-charger.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Spreadtrum SC2731 PMICs battery charger binding
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: sprd,sc2731-charger
reg:
maxItems: 1
phys:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle to the USB phy
monitored-battery:
description: |
The charger uses the following battery properties
- charge-term-current-microamp: current for charge termination phase.
- constant-charge-voltage-max-microvolt: maximum constant input voltage.
See Documentation/devicetree/bindings/power/supply/battery.yaml
additionalProperties: false
examples:
- |
bat: battery {
compatible = "simple-battery";
charge-term-current-microamp = <120000>;
constant-charge-voltage-max-microvolt = <4350000>;
};
pmic {
#address-cells = <1>;
#size-cells = <0>;
battery@a00 {
compatible = "sprd,sc2731-charger";
reg = <0x0>;
phys = <&ssphy>;
monitored-battery = <&bat>;
};
};

View File

@ -1,40 +0,0 @@
Spreadtrum SC2731 PMIC battery charger binding
Required properties:
- compatible: Should be "sprd,sc2731-charger".
- reg: Address offset of charger register.
- phys: Contains a phandle to the USB phy.
Optional Properties:
- monitored-battery: phandle of battery characteristics devicetree node.
The charger uses the following battery properties:
- charge-term-current-microamp: current for charge termination phase.
- constant-charge-voltage-max-microvolt: maximum constant input voltage.
See Documentation/devicetree/bindings/power/supply/battery.txt
Example:
bat: battery {
compatible = "simple-battery";
charge-term-current-microamp = <120000>;
constant-charge-voltage-max-microvolt = <4350000>;
......
};
sc2731_pmic: pmic@0 {
compatible = "sprd,sc2731";
reg = <0>;
spi-max-frequency = <26000000>;
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
#interrupt-cells = <2>;
#address-cells = <1>;
#size-cells = <0>;
charger@0 {
compatible = "sprd,sc2731-charger";
reg = <0x0>;
phys = <&ssphy>;
monitored-battery = <&bat>;
};
};

View File

@ -1,59 +0,0 @@
Spreadtrum SC27XX PMICs Fuel Gauge Unit Power Supply Bindings
Required properties:
- compatible: Should be one of the following:
"sprd,sc2720-fgu",
"sprd,sc2721-fgu",
"sprd,sc2723-fgu",
"sprd,sc2730-fgu",
"sprd,sc2731-fgu".
- reg: The address offset of fuel gauge unit.
- battery-detect-gpios: GPIO for battery detection.
- io-channels: Specify the IIO ADC channels to get temperature and charge voltage.
- io-channel-names: Should be "bat-temp" or "charge-vol".
- nvmem-cells: A phandle to the calibration cells provided by eFuse device.
- nvmem-cell-names: Should be "fgu_calib".
- sprd,calib-resistance-micro-ohms: Specify the real resistance of coulomb counter
chip in micro Ohms.
- monitored-battery: Phandle of battery characteristics devicetree node.
See Documentation/devicetree/bindings/power/supply/battery.txt
Example:
bat: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <1900000>;
constant-charge-voltage-max-microvolt = <4350000>;
ocv-capacity-celsius = <20>;
ocv-capacity-table-0 = <4185000 100>, <4113000 95>, <4066000 90>,
<4022000 85>, <3983000 80>, <3949000 75>,
<3917000 70>, <3889000 65>, <3864000 60>,
<3835000 55>, <3805000 50>, <3787000 45>,
<3777000 40>, <3773000 35>, <3770000 30>,
<3765000 25>, <3752000 20>, <3724000 15>,
<3680000 10>, <3605000 5>, <3400000 0>;
......
};
sc2731_pmic: pmic@0 {
compatible = "sprd,sc2731";
reg = <0>;
spi-max-frequency = <26000000>;
interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
#interrupt-cells = <2>;
#address-cells = <1>;
#size-cells = <0>;
fgu@a00 {
compatible = "sprd,sc2731-fgu";
reg = <0xa00>;
battery-detect-gpios = <&pmic_eic 9 GPIO_ACTIVE_HIGH>;
io-channels = <&pmic_adc 5>, <&pmic_adc 14>;
io-channel-names = "bat-temp", "charge-vol";
nvmem-cells = <&fgu_calib>;
nvmem-cell-names = "fgu_calib";
monitored-battery = <&bat>;
sprd,calib-resistance-micro-ohms = <21500>;
};
};

View File

@ -0,0 +1,98 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/sc27xx-fg.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: Spreadtrum SC27XX PMICs Fuel Gauge Unit Power Supply Bindings
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- sprd,sc2720-fgu
- sprd,sc2721-fgu
- sprd,sc2723-fgu
- sprd,sc2730-fgu
- sprd,sc2731-fgu
reg:
maxItems: 1
battery-detect-gpios:
maxItems: 1
io-channels:
items:
- description: Battery Temperature ADC
- description: Battery Charge Voltage ADC
io-channel-names:
items:
- const: bat-temp
- const: charge-vol
nvmem-cells:
maxItems: 1
description: Calibration cells provided by eFuse device
nvmem-cell-names:
const: fgu_calib
sprd,calib-resistance-micro-ohms:
description: real resistance of coulomb counter chip in micro Ohms
monitored-battery: true
required:
- compatible
- reg
- battery-detect-gpios
- io-channels
- io-channel-names
- nvmem-cells
- nvmem-cell-names
- sprd,calib-resistance-micro-ohms
- monitored-battery
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
bat: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <1900000>;
constant-charge-voltage-max-microvolt = <4350000>;
ocv-capacity-celsius = <20>;
ocv-capacity-table-0 = <4185000 100>, <4113000 95>, <4066000 90>,
<4022000 85>, <3983000 80>, <3949000 75>,
<3917000 70>, <3889000 65>, <3864000 60>,
<3835000 55>, <3805000 50>, <3787000 45>,
<3777000 40>, <3773000 35>, <3770000 30>,
<3765000 25>, <3752000 20>, <3724000 15>,
<3680000 10>, <3605000 5>, <3400000 0>;
// ...
};
pmic {
#address-cells = <1>;
#size-cells = <0>;
battery@a00 {
compatible = "sprd,sc2731-fgu";
reg = <0xa00>;
battery-detect-gpios = <&pmic_eic 9 GPIO_ACTIVE_HIGH>;
io-channels = <&pmic_adc 5>, <&pmic_adc 14>;
io-channel-names = "bat-temp", "charge-vol";
nvmem-cells = <&fgu_calib>;
nvmem-cell-names = "fgu_calib";
monitored-battery = <&bat>;
sprd,calib-resistance-micro-ohms = <21500>;
};
};

View File

@ -1,32 +1,9 @@
=== AB8500 Fuel Gauge Driver ===
AB8500 is a mixed signal multimedia and power management
device comprising: power and energy-management-module,
wall-charger, usb-charger, audio codec, general purpose adc,
tvout, clock management and sim card interface.
Fuelgauge support is part of energy-management-modules, other
components of this module are:
main-charger, usb-combo-charger and battery-temperature-monitoring.
The properties below describes the node for fuelgauge driver.
Required Properties:
- compatible = This shall be: "stericsson,ab8500-fg"
- battery = Shall be battery specific information
Example:
ab8500_fg {
compatible = "stericsson,ab8500-fg";
battery = <&ab8500_battery>;
};
dependent node:
ab8500_battery: ab8500_battery {
};
This node will provide information on 'thermistor interface' and
'battery technology type' used.
AB85000 PMIC contains a node, which contains shared
information about the battery connected to the PMIC.
The node has no compatible property.
Properties of this node are:
thermistor-on-batctrl:
A boolean value indicating thermistor interface to battery
@ -55,4 +32,3 @@ battery-type:
ab8500_battery: ab8500_battery {
stericsson,battery-type = "LIPO";
}

View File

@ -0,0 +1,73 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/stericsson,ab8500-btemp.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: AB8500 Battery Temperature Monitor
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: stericsson,ab8500-btemp
battery:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle to battery node
interrupts:
maxItems: 5
interrupt-names:
items:
- const: BAT_CTRL_INDB
- const: BTEMP_LOW
- const: BTEMP_HIGH
- const: BTEMP_LOW_MEDIUM
- const: BTEMP_MEDIUM_HIGH
io-channels:
maxItems: 2
io-channel-names:
items:
- const: btemp_ball
- const: bat_ctrl
required:
- compatible
- battery
- interrupts
- interrupt-names
- io-channels
- io-channel-names
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
pmic {
battery-temperature {
compatible = "stericsson,ab8500-btemp";
battery = <&ab8500_battery>;
interrupts = <20 IRQ_TYPE_LEVEL_HIGH>,
<80 IRQ_TYPE_LEVEL_HIGH>,
<83 IRQ_TYPE_LEVEL_HIGH>,
<81 IRQ_TYPE_LEVEL_HIGH>,
<82 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "BAT_CTRL_INDB",
"BTEMP_LOW",
"BTEMP_HIGH",
"BTEMP_LOW_MEDIUM",
"BTEMP_MEDIUM_HIGH";
io-channels = <&gpadc 0x02>, <&gpadc 0x01>;
io-channel-names = "btemp_ball", "bat_ctrl";
};
};

View File

@ -0,0 +1,37 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/stericsson,ab8500-chargalg.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: AB8500 Charging Algorithm
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: stericsson,ab8500-chargalg
battery:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle to battery node
required:
- compatible
- battery
additionalProperties: false
examples:
- |
pmic {
charging-algorithm {
compatible = "stericsson,ab8500-chargalg";
battery = <&ab8500_battery>;
};
};

View File

@ -0,0 +1,123 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/stericsson,ab8500-charger.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: AB8500 Charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: stericsson,ab8500-charger
battery:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle to battery node
vddadc-supply:
description: Supply for USB and Main charger
autopower_cfg:
type: boolean
description: automatic poweron after powerloss
interrupts:
maxItems: 14
interrupt-names:
items:
- const: MAIN_CH_UNPLUG_DET
- const: MAIN_CHARGE_PLUG_DET
- const: MAIN_EXT_CH_NOT_OK
- const: MAIN_CH_TH_PROT_R
- const: MAIN_CH_TH_PROT_F
- const: VBUS_DET_F
- const: VBUS_DET_R
- const: USB_LINK_STATUS
- const: USB_CH_TH_PROT_R
- const: USB_CH_TH_PROT_F
- const: USB_CHARGER_NOT_OKR
- const: VBUS_OVV
- const: CH_WD_EXP
- const: VBUS_CH_DROP_END
io-channels:
minItems: 2
maxItems: 4
io-channel-names:
oneOf:
- items:
- const: main_charger_v
- const: main_charger_c
- const: vbus_v
- const: usb_charger_c
- items:
- const: vbus_v
- const: usb_charger_c
required:
- compatible
- battery
- vddadc-supply
- interrupts
- interrupt-names
- io-channels
- io-channel-names
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
pmic {
charger {
compatible = "stericsson,ab8500-charger";
battery = <&ab8500_battery>;
vddadc-supply = <&ab8500_ldo_tvout_reg>;
interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
<11 IRQ_TYPE_LEVEL_HIGH>,
<0 IRQ_TYPE_LEVEL_HIGH>,
<107 IRQ_TYPE_LEVEL_HIGH>,
<106 IRQ_TYPE_LEVEL_HIGH>,
<14 IRQ_TYPE_LEVEL_HIGH>,
<15 IRQ_TYPE_LEVEL_HIGH>,
<79 IRQ_TYPE_LEVEL_HIGH>,
<105 IRQ_TYPE_LEVEL_HIGH>,
<104 IRQ_TYPE_LEVEL_HIGH>,
<89 IRQ_TYPE_LEVEL_HIGH>,
<22 IRQ_TYPE_LEVEL_HIGH>,
<21 IRQ_TYPE_LEVEL_HIGH>,
<16 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "MAIN_CH_UNPLUG_DET",
"MAIN_CHARGE_PLUG_DET",
"MAIN_EXT_CH_NOT_OK",
"MAIN_CH_TH_PROT_R",
"MAIN_CH_TH_PROT_F",
"VBUS_DET_F",
"VBUS_DET_R",
"USB_LINK_STATUS",
"USB_CH_TH_PROT_R",
"USB_CH_TH_PROT_F",
"USB_CHARGER_NOT_OKR",
"VBUS_OVV",
"CH_WD_EXP",
"VBUS_CH_DROP_END";
io-channels = <&gpadc 0x03>,
<&gpadc 0x0a>,
<&gpadc 0x09>,
<&gpadc 0x0b>;
io-channel-names = "main_charger_v",
"main_charger_c",
"vbus_v",
"usb_charger_c";
};
};

View File

@ -0,0 +1,72 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021 Sebastian Reichel
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/stericsson,ab8500-fg.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: AB8500 Fuel Gauge
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: stericsson,ab8500-fg
battery:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle to battery node
interrupts:
maxItems: 5
interrupt-names:
items:
- const: NCONV_ACCU
- const: BATT_OVV
- const: LOW_BAT_F
- const: CC_INT_CALIB
- const: CCEOC
io-channels:
maxItems: 1
io-channel-names:
items:
- const: main_bat_v
required:
- compatible
- battery
- interrupts
- interrupt-names
- io-channels
- io-channel-names
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
pmic {
fuel-gauge {
compatible = "stericsson,ab8500-fg";
battery = <&ab8500_battery>;
interrupts = <24 IRQ_TYPE_LEVEL_HIGH>,
<8 IRQ_TYPE_LEVEL_HIGH>,
<28 IRQ_TYPE_LEVEL_HIGH>,
<27 IRQ_TYPE_LEVEL_HIGH>,
<26 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "NCONV_ACCU",
"BATT_OVV",
"LOW_BAT_F",
"CC_INT_CALIB",
"CCEOC";
io-channels = <&gpadc 0x08>;
io-channel-names = "main_bat_v";
};
};

View File

@ -1,39 +0,0 @@
TI BQ24735 Charge Controller
~~~~~~~~~~
Required properties :
- compatible : "ti,bq24735"
Optional properties :
- interrupts : Specify the interrupt to be used to trigger when the AC
adapter is either plugged in or removed.
- ti,ac-detect-gpios : This GPIO is optionally used to read the AC adapter
status. This is a Host GPIO that is configured as an input and connected
to the ACOK pin on the bq24735. Note: for backwards compatibility reasons,
the GPIO must be active on AC adapter absence despite ACOK being active
(high) on AC adapter presence.
- ti,charge-current : Used to control and set the charging current. This value
must be between 128mA and 8.128A with a 64mA step resolution. The POR value
is 0x0000h. This number is in mA (e.g. 8192), see spec for more information
about the ChargeCurrent (0x14h) register.
- ti,charge-voltage : Used to control and set the charging voltage. This value
must be between 1.024V and 19.2V with a 16mV step resolution. The POR value
is 0x0000h. This number is in mV (e.g. 19200), see spec for more information
about the ChargeVoltage (0x15h) register.
- ti,input-current : Used to control and set the charger input current. This
value must be between 128mA and 8.064A with a 128mA step resolution. The
POR value is 0x1000h. This number is in mA (e.g. 8064), see the spec for
more information about the InputCurrent (0x3fh) register.
- ti,external-control : Indicates that the charger is configured externally
and that the host should not attempt to enable/disable charging or set the
charge voltage/current.
- poll-interval : In case 'interrupts' is not specified, poll AC adapter
presence with this interval (milliseconds).
Example:
bq24735@9 {
compatible = "ti,bq24735";
reg = <0x9>;
ti,ac-detect-gpios = <&gpio 72 0x1>;
}

View File

@ -0,0 +1,90 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/supply/ti,lp8727.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Binding for TI/National Semiconductor LP8727 Charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: ti,lp8727
reg:
const: 0x27
interrupts:
maxItems: 1
debounce-ms:
description: interrupt debounce time in ms
patternProperties:
'^(ac|usb)$':
type: object
description: USB/AC charging parameters
properties:
charger-type:
enum:
- ac
- usb
eoc-level:
$ref: /schemas/types.yaml#/definitions/uint8
minimum: 0
maximum: 6
description: |
End of Charge Percentage with the following mapping:
0 = 5%, 1 = 10%, 2 = 16%, 3 = 20%, 4 = 25%, 5 = 33%, 6 = 50%
charging-current:
$ref: /schemas/types.yaml#/definitions/uint8
minimum: 0
maximum: 9
description: |
Charging current with the following mapping:
0 = 90mA, 1 = 100mA, 2 = 400mA, 3 = 450mA, 4 = 500mA, 5 = 600mA,
6 = 700mA, 7 = 800mA, 8 = 900mA, 9 = 1000mA
required:
- compatible
- reg
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
i2c0 {
#address-cells = <1>;
#size-cells = <0>;
lp8727: charger@27 {
compatible = "ti,lp8727";
reg = <0x27>;
interrupt-parent = <&gpio5>;
interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
debounce-ms = <300>;
/* AC charger: 5% EOC and 500mA charging current */
ac {
charger-type = "ac";
eoc-level = /bits/ 8 <0>;
charging-current = /bits/ 8 <4>;
};
/* USB charger: 10% EOC and 400mA charging current */
usb {
charger-type = "usb";
eoc-level = /bits/ 8 <1>;
charging-current = /bits/ 8 <2>;
};
};
};

View File

@ -0,0 +1,36 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/tps65090-charger.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: TPS65090 Frontend PMU with Switchmode Charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: ti,tps65090-charger
ti,enable-low-current-chrg:
type: boolean
description: |
Enables charging when a low current is detected while the default logic is to stop charging.
required:
- compatible
additionalProperties: false
examples:
- |
pmic {
charger {
compatible = "ti,tps65090-charger";
ti,enable-low-current-chrg;
};
};

View File

@ -1,17 +0,0 @@
TPS65090 Frontend PMU with Switchmode Charger
Required Properties:
-compatible: "ti,tps65090-charger"
Optional Properties:
-ti,enable-low-current-chrg: Enables charging when a low current is detected
while the default logic is to stop charging.
This node is a subnode of the tps65090 PMIC.
Example:
tps65090-charger {
compatible = "ti,tps65090-charger";
ti,enable-low-current-chrg;
};

View File

@ -0,0 +1,43 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/tps65217-charger.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: TPS65217 Charger
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: ti,tps65217-charger
interrupts:
minItems: 2
maxItems: 2
interrupt-names:
items:
- const: USB
- const: AC
required:
- compatible
- interrupts
- interrupt-names
additionalProperties: false
examples:
- |
pmic {
charger {
compatible = "ti,tps65217-charger";
interrupts = <0>, <1>;
interrupt-names = "USB", "AC";
};
};

View File

@ -1,17 +0,0 @@
TPS65217 Charger
Required Properties:
-compatible: "ti,tps65217-charger"
-interrupts: TPS65217 interrupt numbers for the AC and USB charger input change.
Should be <0> for the USB charger and <1> for the AC adapter.
-interrupt-names: Should be "USB" and "AC"
This node is a subnode of the tps65217 PMIC.
Example:
tps65217-charger {
compatible = "ti,tps65217-charger";
interrupts = <0>, <1>;
interrupt-names = "USB", "AC";
};

View File

@ -1,30 +0,0 @@
TWL BCI (Battery Charger Interface)
The battery charger needs to interact with the USB phy in order
to know when charging is permissible, and when there is a connection
or disconnection.
The choice of phy cannot be configured at a hardware level, so there
is no value in explicit configuration in device-tree. Rather
if there is a sibling of the BCI node which is compatible with
"ti,twl4030-usb", then that is used to determine when and how
use USB power for charging.
Required properties:
- compatible:
- "ti,twl4030-bci"
- interrupts: two interrupt lines from the TWL SIH (secondary
interrupt handler) - interrupts 9 and 2.
Optional properties:
- ti,bb-uvolt: microvolts for charging the backup battery.
- ti,bb-uamp: microamps for charging the backup battery.
Examples:
bci {
compatible = "ti,twl4030-bci";
interrupts = <9>, <2>;
ti,bb-uvolt = <3200000>;
ti,bb-uamp = <150>;
};

View File

@ -0,0 +1,68 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/twl4030-charger.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: TWL4030 BCI (Battery Charger Interface)
description: |
The battery charger needs to interact with the USB phy in order to know when
charging is permissible, and when there is a connection or disconnection.
The choice of phy cannot be configured at a hardware level, so there is no
value in explicit configuration in device-tree. Rather if there is a sibling
of the BCI node which is compatible with "ti,twl4030-usb", then that is used
to determine when and how use USB power for charging.
maintainers:
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
const: ti,twl4030-bci
interrupts:
minItems: 2
maxItems: 2
ti,bb-uvolt:
$ref: /schemas/types.yaml#/definitions/uint32
description: microvolts for charging the backup battery
ti,bb-uamp:
$ref: /schemas/types.yaml#/definitions/uint32
description: microamps for charging the backup battery
io-channels:
items:
- description: Accessory Charger Voltage Channel
io-channel-names:
items:
- const: vac
bci3v1-supply:
description: 3.1V USB regulator
required:
- compatible
- interrupts
additionalProperties: false
examples:
- |
pmic {
charger {
compatible = "ti,twl4030-bci";
interrupts = <9>, <2>;
ti,bb-uvolt = <3200000>;
ti,bb-uamp = <150>;
io-channels = <&twl_madc 11>;
io-channel-names = "vac";
};
};

View File

@ -0,0 +1,32 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/x-powers,axp20x-ac-power-supply.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: AXP20x AC power-supply
description: |
The AXP20X can read the current current and voltage supplied by AC by
reading ADC channels from the AXP20X ADC. The AXP22X is only able to
tell if an AC power supply is present and usable. AXP813/AXP803 are
able to limit current and supply voltage
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- x-powers,axp202-ac-power-supply
- x-powers,axp221-ac-power-supply
- x-powers,axp813-ac-power-supply
required:
- compatible
additionalProperties: false

View File

@ -0,0 +1,30 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/x-powers,axp20x-battery-power-supply.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: AXP20x Battery power-supply
description: |
The supported devices can read the battery voltage, charge and discharge
currents of the battery by reading ADC channels from the ADC.
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- x-powers,axp209-battery-power-supply
- x-powers,axp221-battery-power-supply
- x-powers,axp813-battery-power-supply
required:
- compatible
additionalProperties: false

View File

@ -0,0 +1,33 @@
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/supply/x-powers,axp20x-usb-power-supply.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: AXP20x USB power-supply
description: |
The AXP223 PMIC shares most of its behaviour with the AXP221 but has slight
variations such as the former being able to set the VBUS power supply max
current to 100mA, unlike the latter.
maintainers:
- Chen-Yu Tsai <wens@csie.org>
- Sebastian Reichel <sre@kernel.org>
allOf:
- $ref: power-supply.yaml#
properties:
compatible:
enum:
- x-powers,axp202-usb-power-supply
- x-powers,axp221-usb-power-supply
- x-powers,axp223-usb-power-supply
- x-powers,axp813-usb-power-supply
required:
- compatible
additionalProperties: false

View File

@ -233,7 +233,7 @@ Devicetree battery characteristics
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Drivers should call power_supply_get_battery_info() to obtain battery
characteristics from a devicetree battery node, defined in
Documentation/devicetree/bindings/power/supply/battery.txt. This is
Documentation/devicetree/bindings/power/supply/battery.yaml. This is
implemented in drivers/power/supply/bq27xxx_battery.c.
Properties in struct power_supply_battery_info and their counterparts in the

View File

@ -10175,7 +10175,7 @@ F: drivers/misc/eeprom/eeprom.c
LEGO MINDSTORMS EV3
R: David Lechner <david@lechnology.com>
S: Maintained
F: Documentation/devicetree/bindings/power/supply/lego_ev3_battery.txt
F: Documentation/devicetree/bindings/power/supply/lego,ev3-battery.yaml
F: arch/arm/boot/dts/da850-lego-ev3.dts
F: drivers/power/supply/lego_ev3_battery.c
@ -12002,6 +12002,14 @@ F: drivers/scsi/smartpqi/smartpqi*.[ch]
F: include/linux/cciss*.h
F: include/uapi/linux/cciss*.h
MICROSOFT SURFACE BATTERY AND AC DRIVERS
M: Maximilian Luz <luzmaximilian@gmail.com>
L: linux-pm@vger.kernel.org
L: platform-driver-x86@vger.kernel.org
S: Maintained
F: drivers/power/supply/surface_battery.c
F: drivers/power/supply/surface_charger.c
MICROSOFT SURFACE DTX DRIVER
M: Maximilian Luz <luzmaximilian@gmail.com>
L: platform-driver-x86@vger.kernel.org
@ -15854,6 +15862,13 @@ S: Supported
W: http://www.ibm.com/developerworks/linux/linux390/
F: drivers/s390/scsi/zfcp_*
S3C ADC BATTERY DRIVER
M: Krzysztof Kozlowski <krzk@kernel.org>
L: linux-samsung-soc@vger.kernel.org
S: Odd Fixes
F: drivers/power/supply/s3c_adc_battery.c
F: include/linux/s3c_adc_battery.h
S3C24XX SD/MMC Driver
M: Ben Dooks <ben-linux@fluff.org>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)

View File

@ -19,7 +19,6 @@
#include <linux/mfd/core.h>
#include <linux/mfd/abx500.h>
#include <linux/mfd/abx500/ab8500.h>
#include <linux/mfd/abx500/ab8500-bm.h>
#include <linux/mfd/dbx500-prcmu.h>
#include <linux/of.h>
#include <linux/of_device.h>
@ -609,14 +608,14 @@ int ab8500_suspend(struct ab8500 *ab8500)
}
static const struct mfd_cell ab8500_bm_devs[] = {
MFD_CELL_OF("ab8500-charger", NULL, &ab8500_bm_data,
sizeof(ab8500_bm_data), 0, "stericsson,ab8500-charger"),
MFD_CELL_OF("ab8500-btemp", NULL, &ab8500_bm_data,
sizeof(ab8500_bm_data), 0, "stericsson,ab8500-btemp"),
MFD_CELL_OF("ab8500-fg", NULL, &ab8500_bm_data,
sizeof(ab8500_bm_data), 0, "stericsson,ab8500-fg"),
MFD_CELL_OF("ab8500-chargalg", NULL, &ab8500_bm_data,
sizeof(ab8500_bm_data), 0, "stericsson,ab8500-chargalg"),
MFD_CELL_OF("ab8500-charger", NULL, NULL, 0, 0,
"stericsson,ab8500-charger"),
MFD_CELL_OF("ab8500-btemp", NULL, NULL, 0, 0,
"stericsson,ab8500-btemp"),
MFD_CELL_OF("ab8500-fg", NULL, NULL, 0, 0,
"stericsson,ab8500-fg"),
MFD_CELL_OF("ab8500-chargalg", NULL, NULL, 0, 0,
"stericsson,ab8500-chargalg"),
};
static const struct mfd_cell ab8500_devs[] = {

View File

@ -11,7 +11,7 @@ obj-$(CONFIG_POWER_RESET_GEMINI_POWEROFF) += gemini-poweroff.o
obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
obj-$(CONFIG_POWER_RESET_HISI) += hisi-reboot.o
obj-${CONFIG_POWER_RESET_LINKSTATION} += linkstation-poweroff.o
obj-$(CONFIG_POWER_RESET_LINKSTATION) += linkstation-poweroff.o
obj-$(CONFIG_POWER_RESET_MSM) += msm-poweroff.o
obj-$(CONFIG_POWER_RESET_MT6323) += mt6323-poweroff.o
obj-$(CONFIG_POWER_RESET_OXNAS) += oxnas-restart.o

View File

@ -192,7 +192,7 @@ static int __init at91_reset_probe(struct platform_device *pdev)
if (!reset)
return -ENOMEM;
reset->rstc_base = of_iomap(pdev->dev.of_node, 0);
reset->rstc_base = devm_of_iomap(&pdev->dev, pdev->dev.of_node, 0, NULL);
if (!reset->rstc_base) {
dev_err(&pdev->dev, "Could not map reset controller address\n");
return -ENODEV;
@ -202,7 +202,7 @@ static int __init at91_reset_probe(struct platform_device *pdev)
/* we need to shutdown the ddr controller, so get ramc base */
for_each_matching_node_and_match(np, at91_ramc_of_match, &match) {
reset->ramc_lpr = (u32)match->data;
reset->ramc_base[idx] = of_iomap(np, 0);
reset->ramc_base[idx] = devm_of_iomap(&pdev->dev, np, 0, NULL);
if (!reset->ramc_base[idx]) {
dev_err(&pdev->dev, "Could not map ram controller address\n");
of_node_put(np);

View File

@ -1,8 +1,8 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
* Hisilicon SoC reset code
* HiSilicon SoC reset code
*
* Copyright (c) 2014 Hisilicon Ltd.
* Copyright (c) 2014 HiSilicon Ltd.
* Copyright (c) 2014 Linaro Ltd.
*
* Author: Haojian Zhuang <haojian.zhuang@linaro.org>
@ -68,6 +68,7 @@ static const struct of_device_id hisi_reboot_of_match[] = {
{ .compatible = "hisilicon,sysctrl" },
{}
};
MODULE_DEVICE_TABLE(of, hisi_reboot_of_match);
static struct platform_driver hisi_reboot_driver = {
.probe = hisi_reboot_probe,

View File

@ -55,6 +55,7 @@
#include <linux/mod_devicetable.h>
#include <linux/gpio/consumer.h>
#include <linux/reboot.h>
#include <linux/property.h>
struct ltc2952_poweroff {
struct hrtimer timer_trigger;
@ -172,10 +173,17 @@ static void ltc2952_poweroff_default(struct ltc2952_poweroff *data)
static int ltc2952_poweroff_init(struct platform_device *pdev)
{
int ret;
u32 trigger_delay_ms;
struct ltc2952_poweroff *data = platform_get_drvdata(pdev);
ltc2952_poweroff_default(data);
if (!device_property_read_u32(&pdev->dev, "trigger-delay-ms",
&trigger_delay_ms)) {
data->trigger_delay = ktime_set(trigger_delay_ms / MSEC_PER_SEC,
(trigger_delay_ms % MSEC_PER_SEC) * NSEC_PER_MSEC);
}
data->gpio_watchdog = devm_gpiod_get(&pdev->dev, "watchdog",
GPIOD_OUT_LOW);
if (IS_ERR(data->gpio_watchdog)) {

View File

@ -45,6 +45,7 @@ static const struct of_device_id of_restart_poweroff_match[] = {
{ .compatible = "restart-poweroff", },
{},
};
MODULE_DEVICE_TABLE(of, of_restart_poweroff_match);
static struct platform_driver restart_poweroff_driver = {
.probe = restart_poweroff_probe,

View File

@ -133,7 +133,7 @@ static int vexpress_reset_probe(struct platform_device *pdev)
case FUNC_REBOOT:
ret = _vexpress_register_restart_handler(&pdev->dev);
break;
};
}
return ret;
}

View File

@ -109,8 +109,8 @@ struct pm860x_battery_info {
};
struct ccnt {
unsigned long long int pos;
unsigned long long int neg;
unsigned long long pos;
unsigned long long neg;
unsigned int spos;
unsigned int sneg;

View File

@ -698,17 +698,17 @@ config BATTERY_GAUGE_LTC2941
config AB8500_BM
bool "AB8500 Battery Management Driver"
depends on AB8500_CORE && AB8500_GPADC && (IIO = y)
depends on AB8500_CORE && AB8500_GPADC && (IIO = y) && OF
help
Say Y to include support for AB8500 battery management.
config BATTERY_GOLDFISH
tristate "Goldfish battery driver"
depends on GOLDFISH || COMPILE_TEST
depends on HAS_IOMEM
help
Say Y to enable support for the battery and AC power in the
Goldfish emulator.
Say Y to enable support for the Goldfish battery and AC power
driver. Originated in the Android Studio Emulator (goldfish) it is
going to be used in other emulators.
config BATTERY_RT5033
tristate "RT5033 fuel gauge support"
@ -801,4 +801,36 @@ config BATTERY_ACER_A500
help
Say Y to include support for Acer Iconia Tab A500 battery fuel gauge.
config BATTERY_SURFACE
tristate "Battery driver for 7th-generation Microsoft Surface devices"
depends on SURFACE_AGGREGATOR_REGISTRY
help
Driver for battery devices connected via/managed by the Surface System
Aggregator Module (SSAM).
This driver provides battery-information and -status support for
Surface devices where said data is not exposed via the standard ACPI
devices. On those models (7th-generation), battery-information is
instead handled directly via SSAM client devices and this driver.
Say M or Y here to include battery status support for 7th-generation
Microsoft Surface devices, i.e. Surface Pro 7, Surface Laptop 3,
Surface Book 3, and Surface Laptop Go.
config CHARGER_SURFACE
tristate "AC driver for 7th-generation Microsoft Surface devices"
depends on SURFACE_AGGREGATOR_REGISTRY
help
Driver for AC devices connected via/managed by the Surface System
Aggregator Module (SSAM).
This driver provides AC-information and -status support for Surface
devices where said data is not exposed via the standard ACPI devices.
On those models (7th-generation), AC-information is instead handled
directly via a SSAM client device and this driver.
Say M or Y here to include AC status support for 7th-generation
Microsoft Surface devices, i.e. Surface Pro 7, Surface Laptop 3,
Surface Book 3, and Surface Laptop Go.
endif # POWER_SUPPLY

View File

@ -101,3 +101,5 @@ obj-$(CONFIG_CHARGER_BD99954) += bd99954-charger.o
obj-$(CONFIG_CHARGER_WILCO) += wilco-charger.o
obj-$(CONFIG_RN5T618_POWER) += rn5t618_power.o
obj-$(CONFIG_BATTERY_ACER_A500) += acer_a500_battery.o
obj-$(CONFIG_BATTERY_SURFACE) += surface_battery.o
obj-$(CONFIG_CHARGER_SURFACE) += surface_charger.o

View File

@ -1,15 +1,9 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright ST-Ericsson 2012.
*
* Author: Arun Murthy <arun.murthy@stericsson.com>
*/
#ifndef _AB8500_BM_H
#define _AB8500_BM_H
#ifndef _AB8500_CHARGER_H_
#define _AB8500_CHARGER_H_
#include <linux/kernel.h>
#include <linux/mfd/abx500.h>
/*
* System control 2 register offsets.
@ -273,6 +267,277 @@ enum bup_vch_sel {
#define BUS_PP_PRECHG_CURRENT_MASK 0x0E
#define BUS_POWER_PATH_PRECHG_ENA 0x01
/*
* ADC for the battery thermistor.
* When using the ABx500_ADC_THERM_BATCTRL the battery ID resistor is combined
* with a NTC resistor to both identify the battery and to measure its
* temperature. Different phone manufactures uses different techniques to both
* identify the battery and to read its temperature.
*/
enum abx500_adc_therm {
ABx500_ADC_THERM_BATCTRL,
ABx500_ADC_THERM_BATTEMP,
};
/**
* struct abx500_res_to_temp - defines one point in a temp to res curve. To
* be used in battery packs that combines the identification resistor with a
* NTC resistor.
* @temp: battery pack temperature in Celsius
* @resist: NTC resistor net total resistance
*/
struct abx500_res_to_temp {
int temp;
int resist;
};
/**
* struct abx500_v_to_cap - Table for translating voltage to capacity
* @voltage: Voltage in mV
* @capacity: Capacity in percent
*/
struct abx500_v_to_cap {
int voltage;
int capacity;
};
/* Forward declaration */
struct abx500_fg;
/**
* struct abx500_fg_parameters - Fuel gauge algorithm parameters, in seconds
* if not specified
* @recovery_sleep_timer: Time between measurements while recovering
* @recovery_total_time: Total recovery time
* @init_timer: Measurement interval during startup
* @init_discard_time: Time we discard voltage measurement at startup
* @init_total_time: Total init time during startup
* @high_curr_time: Time current has to be high to go to recovery
* @accu_charging: FG accumulation time while charging
* @accu_high_curr: FG accumulation time in high current mode
* @high_curr_threshold: High current threshold, in mA
* @lowbat_threshold: Low battery threshold, in mV
* @overbat_threshold: Over battery threshold, in mV
* @battok_falling_th_sel0 Threshold in mV for battOk signal sel0
* Resolution in 50 mV step.
* @battok_raising_th_sel1 Threshold in mV for battOk signal sel1
* Resolution in 50 mV step.
* @user_cap_limit Capacity reported from user must be within this
* limit to be considered as sane, in percentage
* points.
* @maint_thres This is the threshold where we stop reporting
* battery full while in maintenance, in per cent
* @pcut_enable: Enable power cut feature in ab8505
* @pcut_max_time: Max time threshold
* @pcut_flag_time: Flagtime threshold
* @pcut_max_restart: Max number of restarts
* @pcut_debounce_time: Sets battery debounce time
*/
struct abx500_fg_parameters {
int recovery_sleep_timer;
int recovery_total_time;
int init_timer;
int init_discard_time;
int init_total_time;
int high_curr_time;
int accu_charging;
int accu_high_curr;
int high_curr_threshold;
int lowbat_threshold;
int overbat_threshold;
int battok_falling_th_sel0;
int battok_raising_th_sel1;
int user_cap_limit;
int maint_thres;
bool pcut_enable;
u8 pcut_max_time;
u8 pcut_flag_time;
u8 pcut_max_restart;
u8 pcut_debounce_time;
};
/**
* struct abx500_charger_maximization - struct used by the board config.
* @use_maxi: Enable maximization for this battery type
* @maxi_chg_curr: Maximum charger current allowed
* @maxi_wait_cycles: cycles to wait before setting charger current
* @charger_curr_step delta between two charger current settings (mA)
*/
struct abx500_maxim_parameters {
bool ena_maxi;
int chg_curr;
int wait_cycles;
int charger_curr_step;
};
/**
* struct abx500_battery_type - different batteries supported
* @name: battery technology
* @resis_high: battery upper resistance limit
* @resis_low: battery lower resistance limit
* @charge_full_design: Maximum battery capacity in mAh
* @nominal_voltage: Nominal voltage of the battery in mV
* @termination_vol: max voltage upto which battery can be charged
* @termination_curr battery charging termination current in mA
* @recharge_cap battery capacity limit that will trigger a new
* full charging cycle in the case where maintenan-
* -ce charging has been disabled
* @normal_cur_lvl: charger current in normal state in mA
* @normal_vol_lvl: charger voltage in normal state in mV
* @maint_a_cur_lvl: charger current in maintenance A state in mA
* @maint_a_vol_lvl: charger voltage in maintenance A state in mV
* @maint_a_chg_timer_h: charge time in maintenance A state
* @maint_b_cur_lvl: charger current in maintenance B state in mA
* @maint_b_vol_lvl: charger voltage in maintenance B state in mV
* @maint_b_chg_timer_h: charge time in maintenance B state
* @low_high_cur_lvl: charger current in temp low/high state in mA
* @low_high_vol_lvl: charger voltage in temp low/high state in mV'
* @battery_resistance: battery inner resistance in mOhm.
* @n_r_t_tbl_elements: number of elements in r_to_t_tbl
* @r_to_t_tbl: table containing resistance to temp points
* @n_v_cap_tbl_elements: number of elements in v_to_cap_tbl
* @v_to_cap_tbl: Voltage to capacity (in %) table
* @n_batres_tbl_elements number of elements in the batres_tbl
* @batres_tbl battery internal resistance vs temperature table
*/
struct abx500_battery_type {
int name;
int resis_high;
int resis_low;
int charge_full_design;
int nominal_voltage;
int termination_vol;
int termination_curr;
int recharge_cap;
int normal_cur_lvl;
int normal_vol_lvl;
int maint_a_cur_lvl;
int maint_a_vol_lvl;
int maint_a_chg_timer_h;
int maint_b_cur_lvl;
int maint_b_vol_lvl;
int maint_b_chg_timer_h;
int low_high_cur_lvl;
int low_high_vol_lvl;
int battery_resistance;
int n_temp_tbl_elements;
const struct abx500_res_to_temp *r_to_t_tbl;
int n_v_cap_tbl_elements;
const struct abx500_v_to_cap *v_to_cap_tbl;
int n_batres_tbl_elements;
const struct batres_vs_temp *batres_tbl;
};
/**
* struct abx500_bm_capacity_levels - abx500 capacity level data
* @critical: critical capacity level in percent
* @low: low capacity level in percent
* @normal: normal capacity level in percent
* @high: high capacity level in percent
* @full: full capacity level in percent
*/
struct abx500_bm_capacity_levels {
int critical;
int low;
int normal;
int high;
int full;
};
/**
* struct abx500_bm_charger_parameters - Charger specific parameters
* @usb_volt_max: maximum allowed USB charger voltage in mV
* @usb_curr_max: maximum allowed USB charger current in mA
* @ac_volt_max: maximum allowed AC charger voltage in mV
* @ac_curr_max: maximum allowed AC charger current in mA
*/
struct abx500_bm_charger_parameters {
int usb_volt_max;
int usb_curr_max;
int ac_volt_max;
int ac_curr_max;
};
/**
* struct abx500_bm_data - abx500 battery management data
* @temp_under under this temp, charging is stopped
* @temp_low between this temp and temp_under charging is reduced
* @temp_high between this temp and temp_over charging is reduced
* @temp_over over this temp, charging is stopped
* @temp_now present battery temperature
* @temp_interval_chg temperature measurement interval in s when charging
* @temp_interval_nochg temperature measurement interval in s when not charging
* @main_safety_tmr_h safety timer for main charger
* @usb_safety_tmr_h safety timer for usb charger
* @bkup_bat_v voltage which we charge the backup battery with
* @bkup_bat_i current which we charge the backup battery with
* @no_maintenance indicates that maintenance charging is disabled
* @capacity_scaling indicates whether capacity scaling is to be used
* @abx500_adc_therm placement of thermistor, batctrl or battemp adc
* @chg_unknown_bat flag to enable charging of unknown batteries
* @enable_overshoot flag to enable VBAT overshoot control
* @auto_trig flag to enable auto adc trigger
* @fg_res resistance of FG resistor in 0.1mOhm
* @n_btypes number of elements in array bat_type
* @batt_id index of the identified battery in array bat_type
* @interval_charging charge alg cycle period time when charging (sec)
* @interval_not_charging charge alg cycle period time when not charging (sec)
* @temp_hysteresis temperature hysteresis
* @gnd_lift_resistance Battery ground to phone ground resistance (mOhm)
* @n_chg_out_curr number of elements in array chg_output_curr
* @n_chg_in_curr number of elements in array chg_input_curr
* @chg_output_curr charger output current level map
* @chg_input_curr charger input current level map
* @maxi maximization parameters
* @cap_levels capacity in percent for the different capacity levels
* @bat_type table of supported battery types
* @chg_params charger parameters
* @fg_params fuel gauge parameters
*/
struct abx500_bm_data {
int temp_under;
int temp_low;
int temp_high;
int temp_over;
int temp_now;
int temp_interval_chg;
int temp_interval_nochg;
int main_safety_tmr_h;
int usb_safety_tmr_h;
int bkup_bat_v;
int bkup_bat_i;
bool autopower_cfg;
bool ac_enabled;
bool usb_enabled;
bool no_maintenance;
bool capacity_scaling;
bool chg_unknown_bat;
bool enable_overshoot;
bool auto_trig;
enum abx500_adc_therm adc_therm;
int fg_res;
int n_btypes;
int batt_id;
int interval_charging;
int interval_not_charging;
int temp_hysteresis;
int gnd_lift_resistance;
int n_chg_out_curr;
int n_chg_in_curr;
int *chg_output_curr;
int *chg_input_curr;
const struct abx500_maxim_parameters *maxi;
const struct abx500_bm_capacity_levels *cap_levels;
struct abx500_battery_type *bat_type;
const struct abx500_bm_charger_parameters *chg_params;
const struct abx500_fg_parameters *fg_params;
};
enum {
NTC_EXTERNAL = 0,
NTC_INTERNAL,
};
/**
* struct res_to_temp - defines one point in a temp to res curve. To
* be used in battery packs that combines the identification resistor with a
@ -452,25 +717,17 @@ struct ab8500_bm_data {
const struct ab8500_fg_parameters *fg_params;
};
struct ab8500_btemp;
struct ab8500_gpadc;
struct ab8500_fg;
#ifdef CONFIG_AB8500_BM
extern struct abx500_bm_data ab8500_bm_data;
void ab8500_charger_usb_state_changed(u8 bm_usb_state, u16 mA);
struct ab8500_btemp *ab8500_btemp_get(void);
int ab8500_btemp_get_batctrl_temp(struct ab8500_btemp *btemp);
int ab8500_btemp_get_temp(struct ab8500_btemp *btemp);
struct ab8500_fg *ab8500_fg_get(void);
int ab8500_fg_inst_curr_blocking(struct ab8500_fg *dev);
int ab8500_fg_inst_curr_start(struct ab8500_fg *di);
int ab8500_fg_inst_curr_finalize(struct ab8500_fg *di, int *res);
int ab8500_fg_inst_curr_started(struct ab8500_fg *di);
int ab8500_fg_inst_curr_done(struct ab8500_fg *di);
int ab8500_bm_of_probe(struct device *dev,
struct device_node *np,
struct abx500_bm_data *bm);
#else
static struct abx500_bm_data ab8500_bm_data;
#endif
#endif /* _AB8500_BM_H */
#endif /* _AB8500_CHARGER_H_ */

Some files were not shown because too many files have changed in this diff Show More