mirror of https://gitee.com/openkylin/linux.git
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:
commit
5a69e9bce9
|
@ -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
|
|
@ -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>;
|
||||
};
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
}
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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.
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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 { };
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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 */
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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 */
|
||||
};
|
|
@ -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;
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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.
|
|
@ -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
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
};
|
|
@ -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
|
|
@ -1,5 +0,0 @@
|
|||
OLPC battery
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Required properties:
|
||||
- compatible : "olpc,xo1-battery" or "olpc,xo1.5-battery"
|
|
@ -1,2 +0,0 @@
|
|||
This binding has been converted to yaml please see power-supply.yaml in this
|
||||
directory.
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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 {};
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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 {};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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
|
||||
|
|
|
@ -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>;
|
||||
};
|
|
@ -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";
|
||||
};
|
|
@ -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:
|
||||
- |
|
||||
|
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
}
|
||||
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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>;
|
||||
}
|
|
@ -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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -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;
|
||||
};
|
||||
};
|
|
@ -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;
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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";
|
||||
};
|
|
@ -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>;
|
||||
};
|
|
@ -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";
|
||||
};
|
||||
};
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
17
MAINTAINERS
17
MAINTAINERS
|
@ -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)
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue