Documentation / devicetree / bindings / power / supply / gpio-charger.yaml


Based on kernel version 6.11. Page generated on 2024-09-24 08:21 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
# 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
    };