# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/power/supply/rohm,bd99954.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ROHM BD99954 Battery charger

maintainers:
  - Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
  - Markus Laine <markus.laine@fi.rohmeurope.com>
  - Mikko Mutanen <mikko.mutanen@fi.rohmeurope.com>

description: |
  The ROHM BD99954 is a Battery Management LSI for 1-4 cell Lithium-Ion
  secondary battery intended to be used in space-constraint equipment such
  as Low profile Notebook PC, Tablets and other applications. BD99954
  provides a Dual-source Battery Charger, two port BC1.2 detection and a
  Battery Monitor.


properties:
  compatible:
    const: rohm,bd99954
#
#    The battery charging profile of BD99954.
#
#    Curve (1) represents charging current.
#    Curve (2) represents battery voltage.
#
#    The BD99954 data sheet divides charging to three phases.
#    a) Trickle-charge with constant current (8).
#    b) pre-charge with constant current (6)
#    c) fast-charge with:
#       First a constant current (5) phase (CC)
#       Then constant voltage (CV) phase (after the battery voltage has reached
#       target level - until charging current has dropped to termination
#       level (7)
#
#     V ^                                                        ^ I
#       .                                                        .
#       .                                                        .
# (4)- -.- - - - - - - - - - - - - -  +++++++++++++++++++++++++++.
#       .                            /                           .
#       .                     ++++++/++ - - - - - - - - - - - - -.- - (5)
#       .                     +    /  +                          .
#       .                     +   -   --                         .
#       .                     +  -     +                         .
#       .                     +.-      -:                        .
#       .                    .+         +`                       .
#       .                  .- +       | `/                       .
#       .               .."   +          .:                      .
#       .             -"      +           --                     .
#       .    (2)  ..."        +       |    :-                    .
#       .    ...""            +             -:                   .
# (3)- -.-.""- - - - -+++++++++ - - - - - - -.:- - - - - - - - - .- - (6)
#       .             +                       `:.                .
#       .             +               |         -:               .
#       .             +                           -:             .
#       .             +                             ..           .
#       .   (1)       +               |               "+++- - - -.- - (7)
#       -++++++++++++++- - - - - - - - - - - - - - - - - + - - - .- - (8)
#       .                                                +       -
#       -------------------------------------------------+++++++++-->
#       |             |       |   CC   |      CV         |
#       | --trickle-- | -pre- | ---------fast----------- |
#
#   The charger uses the following battery properties
# - trickle-charge-current-microamp:
#     Current used at trickle-charge phase (8 in above chart)
#     minimum: 64000
#     maximum: 1024000
#     multipleOf: 64000
# - precharge-current-microamp:
#     Current used at pre-charge phase (6 in above chart)
#     minimum: 64000
#     maximum: 1024000
#     multipleOf: 64000
# - constant-charge-current-max-microamp
#     Current used at fast charge constant current phase (5 in above chart)
#     minimum: 64000
#     maximum: 1024000
#     multipleOf: 64000
# - constant-charge-voltage-max-microvolt
#     The constant voltage used in fast charging phase (4 in above chart)
#     minimum: 2560000
#     maximum: 19200000
#     multipleOf: 16000
# - precharge-upper-limit-microvolt
#     charging mode is changed from trickle charging to pre-charging
#     when battery voltage exceeds this limit voltage (3 in above chart)
#     minimum: 2048000
#     maximum: 19200000
#     multipleOf: 64000
# - re-charge-voltage-microvolt
#     minimum: 2560000
#     maximum: 19200000
#     multipleOf: 16000
#     re-charging is automatically started when battry has been discharging
#     to the point where the battery voltage drops below this limit
# - over-voltage-threshold-microvolt
#     battery is expected to be faulty if battery voltage exceeds this limit.
#     Charger will then enter to a "battery faulty" -state
#     minimum: 2560000
#     maximum: 19200000
#     multipleOf: 16000
# - charge-term-current-microamp
#     minimum: 0
#     maximum: 1024000
#     multipleOf: 64000
#     a charge cycle terminates when the battery voltage is above recharge
#     threshold, and the current is below this setting (7 in above chart)
#   See also Documentation/devicetree/bindings/power/supply/battery.yaml

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  monitored-battery:
    description:
      phandle of battery characteristics devicetree node

  rohm,vsys-regulation-microvolt:
    description: system specific lower limit for system voltage.
    minimum: 2560000
    maximum: 19200000
    multipleOf: 64000

  rohm,vbus-input-current-limit-microamp:
    description: system specific VBUS input current limit (in microamps).
    minimum: 32000
    maximum: 16352000
    multipleOf: 32000

  rohm,vcc-input-current-limit-microamp:
    description: system specific VCC/VACP input current limit (in microamps).
    minimum: 32000
    maximum: 16352000
    multipleOf: 32000

required:
  - compatible

additionalProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        charger@9 {
            compatible = "rohm,bd99954";
            monitored-battery = <&battery>;
            reg = <0x9>;
            interrupt-parent = <&gpio1>;
            interrupts = <29 8>;
            rohm,vsys-regulation-microvolt = <8960000>;
            rohm,vbus-input-current-limit-microamp = <1472000>;
            rohm,vcc-input-current-limit-microamp = <1472000>;
        };
    };
