# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/adc/amlogic,meson-saradc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Amlogic Meson SAR (Successive Approximation Register) A/D converter

maintainers:
  - Martin Blumenstingl <martin.blumenstingl@googlemail.com>

description:
  Binding covers a range of ADCs found on Amlogic Meson SoCs.

properties:
  compatible:
    oneOf:
      - const: amlogic,meson-saradc
      - items:
          - enum:
              - amlogic,meson8-saradc
              - amlogic,meson8b-saradc
              - amlogic,meson8m2-saradc
              - amlogic,meson-gxbb-saradc
              - amlogic,meson-gxl-saradc
              - amlogic,meson-gxm-saradc
              - amlogic,meson-axg-saradc
              - amlogic,meson-g12a-saradc
          - const: amlogic,meson-saradc

  reg:
    maxItems: 1

  interrupts:
    description: Interrupt indicates end of sampling.
    maxItems: 1

  clocks:
    minItems: 2
    maxItems: 4

  clock-names:
    minItems: 2
    items:
      - const: clkin
      - const: core
      - const: adc_clk
      - const: adc_sel

  vref-supply: true

  "#io-channel-cells":
    const: 1

  amlogic,hhi-sysctrl:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      Syscon which contains the 5th bit of the TSC (temperature sensor
      coefficient) on Meson8b and Meson8m2 (which used to calibrate the
      temperature sensor)

  nvmem-cells:
    description: phandle to the temperature_calib eFuse cells
    maxItems: 1

  nvmem-cell-names:
    const: temperature_calib

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - amlogic,meson8-saradc
              - amlogic,meson8b-saradc
              - amlogic,meson8m2-saradc
    then:
      properties:
        clocks:
          maxItems: 2
        clock-names:
          maxItems: 2
    else:
      properties:
        nvmem-cells: false
        mvmem-cel-names: false
        clocks:
          minItems: 4
        clock-names:
          minItems: 4

  - if:
      properties:
        compatible:
          contains:
            enum:
              - amlogic,meson8b-saradc
              - amlogic,meson8m2-saradc
    then:
      properties:
        amlogic,hhi-sysctrl: true
    else:
      properties:
        amlogic,hhi-sysctrl: false

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - "#io-channel-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/clock/gxbb-clkc.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    soc {
        #address-cells = <2>;
        #size-cells = <2>;
        adc@8680 {
            compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
            #io-channel-cells = <1>;
            reg = <0x0 0x8680 0x0 0x34>;
            interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
            clocks = <&xtal>,
                <&clkc CLKID_SAR_ADC>,
                <&clkc CLKID_SAR_ADC_CLK>,
                <&clkc CLKID_SAR_ADC_SEL>;
            clock-names = "clkin", "core", "adc_clk", "adc_sel";
        };
        adc@9680 {
            compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc";
            #io-channel-cells = <1>;
            reg = <0x0 0x9680 0x0 0x34>;
            interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
            clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
            clock-names = "clkin", "core";
            nvmem-cells = <&tsens_caldata>;
            nvmem-cell-names = "temperature_calib";
            amlogic,hhi-sysctrl = <&hhi>;
        };
    };
...
