# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/ti,bq25703a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: BQ25703A Charger Manager/Buck/Boost Converter

maintainers:
  - Chris Morgan <macromorgan@hotmail.com>

allOf:
  - $ref: /schemas/power/supply/power-supply.yaml#

properties:
  compatible:
    const: ti,bq25703a

  reg:
    const: 0x6b

  input-current-limit-microamp:
    description:
      Maximum total input current allowed used for both charging and
      powering the device.
    minimum: 50000
    maximum: 6400000
    default: 3250000

  interrupts:
    maxItems: 1

  monitored-battery:
    description:
      A minimum of constant-charge-current-max-microamp,
      constant-charge-voltage-max-microvolt, and
      voltage-min-design-microvolt are required.

  regulators:
    type: object
    additionalProperties: false
    description:
      Boost converter regulator output of bq257xx.

    properties:
      vbus:
        type: object
        $ref: /schemas/regulator/regulator.yaml
        additionalProperties: false

        properties:
          regulator-name: true
          regulator-min-microamp:
            minimum: 0
            maximum: 6350000
          regulator-max-microamp:
            minimum: 0
            maximum: 6350000
          regulator-min-microvolt:
            minimum: 4480000
            maximum: 20800000
          regulator-max-microvolt:
            minimum: 4480000
            maximum: 20800000
          enable-gpios:
            description:
              The BQ25703 may require both a register write and a GPIO
              toggle to enable the boost regulator.

        required:
          - regulator-name
          - regulator-min-microamp
          - regulator-max-microamp
          - regulator-min-microvolt
          - regulator-max-microvolt

unevaluatedProperties: false

required:
  - compatible
  - reg
  - input-current-limit-microamp
  - monitored-battery
  - power-supplies

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/pinctrl/rockchip.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        bq25703: charger@6b {
            compatible = "ti,bq25703a";
            reg = <0x6b>;
            input-current-limit-microamp = <5000000>;
            interrupt-parent = <&gpio0>;
            interrupts = <RK_PD5 IRQ_TYPE_LEVEL_LOW>;
            monitored-battery = <&battery>;
            power-supplies = <&fusb302>;

            regulators {
                usb_otg_vbus: vbus {
                    enable-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
                    regulator-max-microamp = <960000>;
                    regulator-max-microvolt = <5088000>;
                    regulator-min-microamp = <512000>;
                    regulator-min-microvolt = <4992000>;
                    regulator-name = "usb_otg_vbus";
                };
            };
        };
    };

...
