# SPDX-License-Identifier: GPL-2.0+
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/light/vishay,veml6030.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: VEML3235, VEML6030, VEML6035 and VEML7700 Ambient Light Sensors (ALS)

maintainers:
  - Rishi Gupta <gupt21@gmail.com>

description: |
  Bindings for the ambient light sensors veml6030 and veml6035 from
  Vishay Semiconductors over an i2c interface.

  Irrespective of whether interrupt is used or not, application
  can get the ALS and White channel reading from IIO raw interface.

  If the interrupts are used, application will receive an IIO event
  whenever configured threshold is crossed.

  Specifications about the sensors can be found at:
    https://www.vishay.com/docs/80131/veml3235.pdf
    https://www.vishay.com/docs/84366/veml6030.pdf
    https://www.vishay.com/docs/84889/veml6035.pdf
    https://www.vishay.com/docs/84286/veml7700.pdf

properties:
  compatible:
    enum:
      - vishay,veml3235
      - vishay,veml6030
      - vishay,veml6035
      - vishay,veml7700

  reg:
    maxItems: 1

  interrupts:
    description:
      interrupt mapping for IRQ. Configure with IRQ_TYPE_LEVEL_LOW.
      Refer to interrupt-controller/interrupts.txt for generic
      interrupt client node bindings.
    maxItems: 1

  vdd-supply: true

required:
  - compatible
  - reg
  - vdd-supply

allOf:
  - if:
      properties:
        compatible:
          enum:
            - vishay,veml6030
    then:
      properties:
        reg:
          enum:
            - 0x10  # ADDR pin pulled down
            - 0x48  # ADDR pin pulled up

  - if:
      properties:
        compatible:
          enum:
            - vishay,veml6035
    then:
      properties:
        reg:
          enum:
            - 0x29

  - if:
      properties:
        compatible:
          enum:
            - vishay,veml3235
            - vishay,veml7700
    then:
      properties:
        reg:
          enum:
            - 0x10
        interrupts: false

additionalProperties: false

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

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

        light-sensor@10 {
                compatible = "vishay,veml6030";
                reg = <0x10>;
                interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
                vdd-supply = <&vdd>;
        };
    };
...
