95 lines
2.6 KiB
YAML
95 lines
2.6 KiB
YAML
# SPDX-License-Identifier: GPL-2.0
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/power/supply/gpio-charger.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: simple battery chargers only communicating through GPIOs
|
|
|
|
maintainers:
|
|
- Sebastian Reichel <sre@kernel.org>
|
|
|
|
description:
|
|
This binding is for all chargers, which are working more or less
|
|
autonomously, only providing some status GPIOs and possibly some
|
|
GPIOs for limited control over the charging process.
|
|
|
|
properties:
|
|
compatible:
|
|
const: gpio-charger
|
|
|
|
charger-type:
|
|
enum:
|
|
- unknown
|
|
- battery
|
|
- ups
|
|
- mains
|
|
- usb-sdp # USB standard downstream port
|
|
- usb-dcp # USB dedicated charging port
|
|
- usb-cdp # USB charging downstream port
|
|
- usb-aca # USB accessory charger adapter
|
|
description:
|
|
Type of the charger, e.g. "mains" for a wall charger.
|
|
|
|
gpios:
|
|
maxItems: 1
|
|
description: GPIO indicating the charger presence
|
|
|
|
charge-status-gpios:
|
|
maxItems: 1
|
|
description: GPIO indicating the charging status
|
|
|
|
charge-current-limit-gpios:
|
|
minItems: 1
|
|
maxItems: 32
|
|
description: GPIOs used for current limiting
|
|
|
|
charge-current-limit-mapping:
|
|
description: List of tuples with current in uA and a GPIO bitmap (in
|
|
this order). The tuples must be provided in descending order of the
|
|
current limit.
|
|
$ref: /schemas/types.yaml#/definitions/uint32-matrix
|
|
items:
|
|
items:
|
|
- description:
|
|
Current limit in uA
|
|
- description:
|
|
Encoded GPIO setting. Bit 0 represents last GPIO from the
|
|
charge-current-limit-gpios property. Bit 1 second to last
|
|
GPIO and so on.
|
|
|
|
required:
|
|
- compatible
|
|
|
|
anyOf:
|
|
- required:
|
|
- gpios
|
|
- required:
|
|
- charge-status-gpios
|
|
- required:
|
|
- charge-current-limit-gpios
|
|
|
|
dependencies:
|
|
charge-current-limit-gpios: [ charge-current-limit-mapping ]
|
|
charge-current-limit-mapping: [ charge-current-limit-gpios ]
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
|
|
charger {
|
|
compatible = "gpio-charger";
|
|
charger-type = "usb-sdp";
|
|
|
|
gpios = <&gpd 28 GPIO_ACTIVE_LOW>;
|
|
charge-status-gpios = <&gpc 27 GPIO_ACTIVE_LOW>;
|
|
|
|
charge-current-limit-gpios = <&gpioA 11 GPIO_ACTIVE_HIGH>,
|
|
<&gpioA 12 GPIO_ACTIVE_HIGH>;
|
|
charge-current-limit-mapping = <2500000 0x00>, // 2.5 A => both GPIOs low
|
|
<700000 0x01>, // 700 mA => GPIO A.12 high
|
|
<0 0x02>; // 0 mA => GPIO A.11 high
|
|
};
|