162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/power/supply/gpio-charger.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: simple battery chargers only communicating through GPIOs 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Sebastian Reichel <sre@kernel.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: 1362306a36Sopenharmony_ci This binding is for all chargers, which are working more or less 1462306a36Sopenharmony_ci autonomously, only providing some status GPIOs and possibly some 1562306a36Sopenharmony_ci GPIOs for limited control over the charging process. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciproperties: 1862306a36Sopenharmony_ci compatible: 1962306a36Sopenharmony_ci const: gpio-charger 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci charger-type: 2262306a36Sopenharmony_ci enum: 2362306a36Sopenharmony_ci - unknown 2462306a36Sopenharmony_ci - battery 2562306a36Sopenharmony_ci - ups 2662306a36Sopenharmony_ci - mains 2762306a36Sopenharmony_ci - usb-sdp # USB standard downstream port 2862306a36Sopenharmony_ci - usb-dcp # USB dedicated charging port 2962306a36Sopenharmony_ci - usb-cdp # USB charging downstream port 3062306a36Sopenharmony_ci - usb-aca # USB accessory charger adapter 3162306a36Sopenharmony_ci description: 3262306a36Sopenharmony_ci Type of the charger, e.g. "mains" for a wall charger. 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci gpios: 3562306a36Sopenharmony_ci maxItems: 1 3662306a36Sopenharmony_ci description: GPIO indicating the charger presence 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci charge-status-gpios: 3962306a36Sopenharmony_ci maxItems: 1 4062306a36Sopenharmony_ci description: GPIO indicating the charging status 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci charge-current-limit-gpios: 4362306a36Sopenharmony_ci minItems: 1 4462306a36Sopenharmony_ci maxItems: 32 4562306a36Sopenharmony_ci description: GPIOs used for current limiting 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci charge-current-limit-mapping: 4862306a36Sopenharmony_ci description: List of tuples with current in uA and a GPIO bitmap (in 4962306a36Sopenharmony_ci this order). The tuples must be provided in descending order of the 5062306a36Sopenharmony_ci current limit. 5162306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-matrix 5262306a36Sopenharmony_ci items: 5362306a36Sopenharmony_ci items: 5462306a36Sopenharmony_ci - description: 5562306a36Sopenharmony_ci Current limit in uA 5662306a36Sopenharmony_ci - description: 5762306a36Sopenharmony_ci Encoded GPIO setting. Bit 0 represents last GPIO from the 5862306a36Sopenharmony_ci charge-current-limit-gpios property. Bit 1 second to last 5962306a36Sopenharmony_ci GPIO and so on. 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_cirequired: 6262306a36Sopenharmony_ci - compatible 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_cianyOf: 6562306a36Sopenharmony_ci - required: 6662306a36Sopenharmony_ci - gpios 6762306a36Sopenharmony_ci - required: 6862306a36Sopenharmony_ci - charge-status-gpios 6962306a36Sopenharmony_ci - required: 7062306a36Sopenharmony_ci - charge-current-limit-gpios 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_cidependencies: 7362306a36Sopenharmony_ci charge-current-limit-gpios: [ charge-current-limit-mapping ] 7462306a36Sopenharmony_ci charge-current-limit-mapping: [ charge-current-limit-gpios ] 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ciadditionalProperties: false 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ciexamples: 7962306a36Sopenharmony_ci - | 8062306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci charger { 8362306a36Sopenharmony_ci compatible = "gpio-charger"; 8462306a36Sopenharmony_ci charger-type = "usb-sdp"; 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci gpios = <&gpd 28 GPIO_ACTIVE_LOW>; 8762306a36Sopenharmony_ci charge-status-gpios = <&gpc 27 GPIO_ACTIVE_LOW>; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci charge-current-limit-gpios = <&gpioA 11 GPIO_ACTIVE_HIGH>, 9062306a36Sopenharmony_ci <&gpioA 12 GPIO_ACTIVE_HIGH>; 9162306a36Sopenharmony_ci charge-current-limit-mapping = <2500000 0x00>, // 2.5 A => both GPIOs low 9262306a36Sopenharmony_ci <700000 0x01>, // 700 mA => GPIO A.12 high 9362306a36Sopenharmony_ci <0 0x02>; // 0 mA => GPIO A.11 high 9462306a36Sopenharmony_ci }; 95