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