# 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>;
      };
    };
