# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (C) 2020 Texas Instruments Incorporated
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/supply/bq2515x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI bq2515x 500-mA Linear charger family

maintainers:
  - Andrew Davis <afd@ti.com>

description: |
  The BQ2515x family is a highly integrated battery charge management IC that
  integrates the most common functions for wearable devices, namely a charger,
  an output voltage rail, ADC for battery and system monitoring, and
  push-button controller.

  Specifications about the charger can be found at:
    http://www.ti.com/lit/ds/symlink/bq25150.pdf
    http://www.ti.com/lit/ds/symlink/bq25155.pdf

properties:
  compatible:
    enum:
      - ti,bq25150
      - ti,bq25155

  reg:
    maxItems: 1
    description: I2C address of the charger.

  ac-detect-gpios:
    description: |
       GPIO used for connecting the bq2515x device PG (AC Detect)
       pin.
    maxItems: 1

  reset-gpios:
    description: GPIO used for hardware reset.
    maxItems: 1

  powerdown-gpios:
    description: GPIO used for low power mode of IC.
    maxItems: 1

  charge-enable-gpios:
    description: GPIO used to turn on and off charging.
    maxItems: 1

  input-current-limit-microamp:
    description: Maximum input current in micro Amps.
    minimum: 50000
    maximum: 500000

  monitored-battery:
    $ref: /schemas/types.yaml#/definitions/phandle
    description: phandle to the battery node being monitored

required:
  - compatible
  - reg
  - monitored-battery

additionalProperties: false

examples:
  - |
    bat: battery {
      compatible = "simple-battery";
      constant-charge-current-max-microamp = <50000>;
      precharge-current-microamp = <2500>;
      constant-charge-voltage-max-microvolt = <4000000>;
    };
    #include <dt-bindings/gpio/gpio.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      bq25150: charger@6b {
        compatible = "ti,bq25150";
        reg = <0x6b>;
        monitored-battery = <&bat>;
        input-current-limit-microamp = <100000>;

        ac-detect-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
        reset-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
        powerdown-gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
        charge-enable-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
      };
    };
