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:
Коммит
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
|
chip's trigger line. If this property is not set, the
|
||||||
trigger function is ignored and the chip is kept alive
|
trigger function is ignored and the chip is kept alive
|
||||||
until an explicit kill signal is received
|
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:
|
Example:
|
||||||
|
|
||||||
|
@ -24,6 +27,7 @@ ltc2952 {
|
||||||
compatible = "lltc,ltc2952";
|
compatible = "lltc,ltc2952";
|
||||||
|
|
||||||
trigger-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
|
trigger-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
|
||||||
|
trigger-delay-ms = <2000>;
|
||||||
watchdog-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
|
watchdog-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
|
||||||
kill-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
|
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,bq27z561
|
||||||
- ti,bq28z610
|
- ti,bq28z610
|
||||||
- ti,bq34z100
|
- ti,bq34z100
|
||||||
|
- ti,bq78z100
|
||||||
|
|
||||||
reg:
|
reg:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
@ -65,7 +66,7 @@ properties:
|
||||||
- charge-full-design-microamp-hours
|
- charge-full-design-microamp-hours
|
||||||
- voltage-min-design-microvolt
|
- voltage-min-design-microvolt
|
||||||
Both or neither of the *-full-design-*-hours properties must be set.
|
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
|
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
|
# multipleOf: 64000
|
||||||
# a charge cycle terminates when the battery voltage is above recharge
|
# a charge cycle terminates when the battery voltage is above recharge
|
||||||
# threshold, and the current is below this setting (7 in above chart)
|
# 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:
|
reg:
|
||||||
maxItems: 1
|
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: |
|
description: |
|
||||||
Battery compatible with the smart battery system specifications
|
Battery compatible with the smart battery system specifications
|
||||||
|
|
||||||
properties:
|
allOf:
|
||||||
|
- $ref: power-supply.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
oneOf:
|
oneOf:
|
||||||
- items:
|
- items:
|
||||||
- enum:
|
- enum:
|
||||||
|
- ti,bq20z45
|
||||||
- ti,bq20z65
|
- ti,bq20z65
|
||||||
- ti,bq20z75
|
- ti,bq20z75
|
||||||
- enum:
|
- enum:
|
||||||
|
@ -60,7 +63,7 @@ required:
|
||||||
- compatible
|
- compatible
|
||||||
- reg
|
- reg
|
||||||
|
|
||||||
additionalProperties: false
|
unevaluatedProperties: false
|
||||||
|
|
||||||
examples:
|
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 ===
|
AB85000 PMIC contains a node, which contains shared
|
||||||
|
information about the battery connected to the PMIC.
|
||||||
AB8500 is a mixed signal multimedia and power management
|
The node has no compatible property.
|
||||||
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.
|
|
||||||
|
|
||||||
Properties of this node are:
|
Properties of this node are:
|
||||||
|
|
||||||
thermistor-on-batctrl:
|
thermistor-on-batctrl:
|
||||||
A boolean value indicating thermistor interface to battery
|
A boolean value indicating thermistor interface to battery
|
||||||
|
|
||||||
|
@ -55,4 +32,3 @@ battery-type:
|
||||||
ab8500_battery: ab8500_battery {
|
ab8500_battery: ab8500_battery {
|
||||||
stericsson,battery-type = "LIPO";
|
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
|
Drivers should call power_supply_get_battery_info() to obtain battery
|
||||||
characteristics from a devicetree battery node, defined in
|
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.
|
implemented in drivers/power/supply/bq27xxx_battery.c.
|
||||||
|
|
||||||
Properties in struct power_supply_battery_info and their counterparts in the
|
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
|
LEGO MINDSTORMS EV3
|
||||||
R: David Lechner <david@lechnology.com>
|
R: David Lechner <david@lechnology.com>
|
||||||
S: Maintained
|
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: arch/arm/boot/dts/da850-lego-ev3.dts
|
||||||
F: drivers/power/supply/lego_ev3_battery.c
|
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/linux/cciss*.h
|
||||||
F: include/uapi/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
|
MICROSOFT SURFACE DTX DRIVER
|
||||||
M: Maximilian Luz <luzmaximilian@gmail.com>
|
M: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
L: platform-driver-x86@vger.kernel.org
|
L: platform-driver-x86@vger.kernel.org
|
||||||
|
@ -15854,6 +15862,13 @@ S: Supported
|
||||||
W: http://www.ibm.com/developerworks/linux/linux390/
|
W: http://www.ibm.com/developerworks/linux/linux390/
|
||||||
F: drivers/s390/scsi/zfcp_*
|
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
|
S3C24XX SD/MMC Driver
|
||||||
M: Ben Dooks <ben-linux@fluff.org>
|
M: Ben Dooks <ben-linux@fluff.org>
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include <linux/mfd/core.h>
|
#include <linux/mfd/core.h>
|
||||||
#include <linux/mfd/abx500.h>
|
#include <linux/mfd/abx500.h>
|
||||||
#include <linux/mfd/abx500/ab8500.h>
|
#include <linux/mfd/abx500/ab8500.h>
|
||||||
#include <linux/mfd/abx500/ab8500-bm.h>
|
|
||||||
#include <linux/mfd/dbx500-prcmu.h>
|
#include <linux/mfd/dbx500-prcmu.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/of_device.h>
|
#include <linux/of_device.h>
|
||||||
|
@ -609,14 +608,14 @@ int ab8500_suspend(struct ab8500 *ab8500)
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct mfd_cell ab8500_bm_devs[] = {
|
static const struct mfd_cell ab8500_bm_devs[] = {
|
||||||
MFD_CELL_OF("ab8500-charger", NULL, &ab8500_bm_data,
|
MFD_CELL_OF("ab8500-charger", NULL, NULL, 0, 0,
|
||||||
sizeof(ab8500_bm_data), 0, "stericsson,ab8500-charger"),
|
"stericsson,ab8500-charger"),
|
||||||
MFD_CELL_OF("ab8500-btemp", NULL, &ab8500_bm_data,
|
MFD_CELL_OF("ab8500-btemp", NULL, NULL, 0, 0,
|
||||||
sizeof(ab8500_bm_data), 0, "stericsson,ab8500-btemp"),
|
"stericsson,ab8500-btemp"),
|
||||||
MFD_CELL_OF("ab8500-fg", NULL, &ab8500_bm_data,
|
MFD_CELL_OF("ab8500-fg", NULL, NULL, 0, 0,
|
||||||
sizeof(ab8500_bm_data), 0, "stericsson,ab8500-fg"),
|
"stericsson,ab8500-fg"),
|
||||||
MFD_CELL_OF("ab8500-chargalg", NULL, &ab8500_bm_data,
|
MFD_CELL_OF("ab8500-chargalg", NULL, NULL, 0, 0,
|
||||||
sizeof(ab8500_bm_data), 0, "stericsson,ab8500-chargalg"),
|
"stericsson,ab8500-chargalg"),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct mfd_cell ab8500_devs[] = {
|
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) += gpio-poweroff.o
|
||||||
obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
|
obj-$(CONFIG_POWER_RESET_GPIO_RESTART) += gpio-restart.o
|
||||||
obj-$(CONFIG_POWER_RESET_HISI) += hisi-reboot.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_MSM) += msm-poweroff.o
|
||||||
obj-$(CONFIG_POWER_RESET_MT6323) += mt6323-poweroff.o
|
obj-$(CONFIG_POWER_RESET_MT6323) += mt6323-poweroff.o
|
||||||
obj-$(CONFIG_POWER_RESET_OXNAS) += oxnas-restart.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)
|
if (!reset)
|
||||||
return -ENOMEM;
|
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) {
|
if (!reset->rstc_base) {
|
||||||
dev_err(&pdev->dev, "Could not map reset controller address\n");
|
dev_err(&pdev->dev, "Could not map reset controller address\n");
|
||||||
return -ENODEV;
|
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 */
|
/* we need to shutdown the ddr controller, so get ramc base */
|
||||||
for_each_matching_node_and_match(np, at91_ramc_of_match, &match) {
|
for_each_matching_node_and_match(np, at91_ramc_of_match, &match) {
|
||||||
reset->ramc_lpr = (u32)match->data;
|
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]) {
|
if (!reset->ramc_base[idx]) {
|
||||||
dev_err(&pdev->dev, "Could not map ram controller address\n");
|
dev_err(&pdev->dev, "Could not map ram controller address\n");
|
||||||
of_node_put(np);
|
of_node_put(np);
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// 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.
|
* Copyright (c) 2014 Linaro Ltd.
|
||||||
*
|
*
|
||||||
* Author: Haojian Zhuang <haojian.zhuang@linaro.org>
|
* Author: Haojian Zhuang <haojian.zhuang@linaro.org>
|
||||||
|
@ -68,6 +68,7 @@ static const struct of_device_id hisi_reboot_of_match[] = {
|
||||||
{ .compatible = "hisilicon,sysctrl" },
|
{ .compatible = "hisilicon,sysctrl" },
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
MODULE_DEVICE_TABLE(of, hisi_reboot_of_match);
|
||||||
|
|
||||||
static struct platform_driver hisi_reboot_driver = {
|
static struct platform_driver hisi_reboot_driver = {
|
||||||
.probe = hisi_reboot_probe,
|
.probe = hisi_reboot_probe,
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
#include <linux/mod_devicetable.h>
|
#include <linux/mod_devicetable.h>
|
||||||
#include <linux/gpio/consumer.h>
|
#include <linux/gpio/consumer.h>
|
||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
|
#include <linux/property.h>
|
||||||
|
|
||||||
struct ltc2952_poweroff {
|
struct ltc2952_poweroff {
|
||||||
struct hrtimer timer_trigger;
|
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)
|
static int ltc2952_poweroff_init(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
u32 trigger_delay_ms;
|
||||||
struct ltc2952_poweroff *data = platform_get_drvdata(pdev);
|
struct ltc2952_poweroff *data = platform_get_drvdata(pdev);
|
||||||
|
|
||||||
ltc2952_poweroff_default(data);
|
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",
|
data->gpio_watchdog = devm_gpiod_get(&pdev->dev, "watchdog",
|
||||||
GPIOD_OUT_LOW);
|
GPIOD_OUT_LOW);
|
||||||
if (IS_ERR(data->gpio_watchdog)) {
|
if (IS_ERR(data->gpio_watchdog)) {
|
||||||
|
|
|
@ -45,6 +45,7 @@ static const struct of_device_id of_restart_poweroff_match[] = {
|
||||||
{ .compatible = "restart-poweroff", },
|
{ .compatible = "restart-poweroff", },
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
MODULE_DEVICE_TABLE(of, of_restart_poweroff_match);
|
||||||
|
|
||||||
static struct platform_driver restart_poweroff_driver = {
|
static struct platform_driver restart_poweroff_driver = {
|
||||||
.probe = restart_poweroff_probe,
|
.probe = restart_poweroff_probe,
|
||||||
|
|
|
@ -133,7 +133,7 @@ static int vexpress_reset_probe(struct platform_device *pdev)
|
||||||
case FUNC_REBOOT:
|
case FUNC_REBOOT:
|
||||||
ret = _vexpress_register_restart_handler(&pdev->dev);
|
ret = _vexpress_register_restart_handler(&pdev->dev);
|
||||||
break;
|
break;
|
||||||
};
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,8 +109,8 @@ struct pm860x_battery_info {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ccnt {
|
struct ccnt {
|
||||||
unsigned long long int pos;
|
unsigned long long pos;
|
||||||
unsigned long long int neg;
|
unsigned long long neg;
|
||||||
unsigned int spos;
|
unsigned int spos;
|
||||||
unsigned int sneg;
|
unsigned int sneg;
|
||||||
|
|
||||||
|
|
|
@ -698,17 +698,17 @@ config BATTERY_GAUGE_LTC2941
|
||||||
|
|
||||||
config AB8500_BM
|
config AB8500_BM
|
||||||
bool "AB8500 Battery Management Driver"
|
bool "AB8500 Battery Management Driver"
|
||||||
depends on AB8500_CORE && AB8500_GPADC && (IIO = y)
|
depends on AB8500_CORE && AB8500_GPADC && (IIO = y) && OF
|
||||||
help
|
help
|
||||||
Say Y to include support for AB8500 battery management.
|
Say Y to include support for AB8500 battery management.
|
||||||
|
|
||||||
config BATTERY_GOLDFISH
|
config BATTERY_GOLDFISH
|
||||||
tristate "Goldfish battery driver"
|
tristate "Goldfish battery driver"
|
||||||
depends on GOLDFISH || COMPILE_TEST
|
|
||||||
depends on HAS_IOMEM
|
depends on HAS_IOMEM
|
||||||
help
|
help
|
||||||
Say Y to enable support for the battery and AC power in the
|
Say Y to enable support for the Goldfish battery and AC power
|
||||||
Goldfish emulator.
|
driver. Originated in the Android Studio Emulator (goldfish) it is
|
||||||
|
going to be used in other emulators.
|
||||||
|
|
||||||
config BATTERY_RT5033
|
config BATTERY_RT5033
|
||||||
tristate "RT5033 fuel gauge support"
|
tristate "RT5033 fuel gauge support"
|
||||||
|
@ -801,4 +801,36 @@ config BATTERY_ACER_A500
|
||||||
help
|
help
|
||||||
Say Y to include support for Acer Iconia Tab A500 battery fuel gauge.
|
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
|
endif # POWER_SUPPLY
|
||||||
|
|
|
@ -101,3 +101,5 @@ obj-$(CONFIG_CHARGER_BD99954) += bd99954-charger.o
|
||||||
obj-$(CONFIG_CHARGER_WILCO) += wilco-charger.o
|
obj-$(CONFIG_CHARGER_WILCO) += wilco-charger.o
|
||||||
obj-$(CONFIG_RN5T618_POWER) += rn5t618_power.o
|
obj-$(CONFIG_RN5T618_POWER) += rn5t618_power.o
|
||||||
obj-$(CONFIG_BATTERY_ACER_A500) += acer_a500_battery.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 */
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
/*
|
|
||||||
* Copyright ST-Ericsson 2012.
|
|
||||||
*
|
|
||||||
* Author: Arun Murthy <arun.murthy@stericsson.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _AB8500_BM_H
|
#ifndef _AB8500_CHARGER_H_
|
||||||
#define _AB8500_BM_H
|
#define _AB8500_CHARGER_H_
|
||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/mfd/abx500.h>
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* System control 2 register offsets.
|
* System control 2 register offsets.
|
||||||
|
@ -273,6 +267,277 @@ enum bup_vch_sel {
|
||||||
#define BUS_PP_PRECHG_CURRENT_MASK 0x0E
|
#define BUS_PP_PRECHG_CURRENT_MASK 0x0E
|
||||||
#define BUS_POWER_PATH_PRECHG_ENA 0x01
|
#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
|
* 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
|
* 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;
|
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;
|
extern struct abx500_bm_data ab8500_bm_data;
|
||||||
|
|
||||||
void ab8500_charger_usb_state_changed(u8 bm_usb_state, u16 mA);
|
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);
|
struct ab8500_fg *ab8500_fg_get(void);
|
||||||
int ab8500_fg_inst_curr_blocking(struct ab8500_fg *dev);
|
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_start(struct ab8500_fg *di);
|
||||||
int ab8500_fg_inst_curr_finalize(struct ab8500_fg *di, int *res);
|
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_started(struct ab8500_fg *di);
|
||||||
int ab8500_fg_inst_curr_done(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
|
#endif /* _AB8500_CHARGER_H_ */
|
||||||
static struct abx500_bm_data ab8500_bm_data;
|
|
||||||
#endif
|
|
||||||
#endif /* _AB8500_BM_H */
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче