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

title: Abracon ABX80X I2C ultra low power RTC/Alarm chip

maintainers:
  - linux-rtc@vger.kernel.org

properties:
  compatible:
    description:
      The wildcard 'abracon,abx80x' may be used to support a mix
      of different abracon rtc`s. In this case the driver
      must perform auto-detection from ID register.
    enum:
      - abracon,abx80x
      - abracon,ab0801
      - abracon,ab0803
      - abracon,ab0804
      - abracon,ab0805
      - abracon,ab1801
      - abracon,ab1803
      - abracon,ab1804
      - abracon,ab1805
      - microcrystal,rv1805

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  abracon,tc-diode:
    description:
      Trickle-charge diode type.
      Required to enable charging backup battery.

      Supported are 'standard' diodes with a 0.6V drop
      and 'schottky' diodes with a 0.3V drop.
    $ref: /schemas/types.yaml#/definitions/string
    enum:
      - standard
      - schottky

  abracon,tc-resistor:
    description:
      Trickle-charge resistor value in kOhm.
      Required to enable charging backup battery.
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 3, 6, 11]

dependentRequired:
  abracon,tc-diode: ["abracon,tc-resistor"]
  abracon,tc-resistor: ["abracon,tc-diode"]

required:
  - compatible
  - reg

allOf:
  - $ref: rtc.yaml#
  - if:
      properties:
        compatible:
          not:
            contains:
              enum:
                - abracon,abx80x
                - abracon,ab0804
                - abracon,ab1804
                - abracon,ab0805
                - abracon,ab1805
    then:
      properties:
        abracon,tc-diode: false
        abracon,tc-resistor: false

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        rtc@69 {
            compatible = "abracon,abx80x";
            reg = <0x69>;
            abracon,tc-diode = "schottky";
            abracon,tc-resistor = <3>;
            interrupts = <44 IRQ_TYPE_EDGE_FALLING>;
        };
    };
