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

title: Sharp GP2AP002A00F and GP2AP002S00F proximity and ambient light sensors

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>

description: |
  Proximity and ambient light sensor with IR LED for the proximity
  sensing and an analog output for light intensity. The ambient light
  sensor output is not available on the GP2AP002S00F variant.

properties:
  compatible:
    enum:
      - sharp,gp2ap002a00f
      - sharp,gp2ap002s00f

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
    description: an interrupt for proximity, usually a GPIO line

  vdd-supply:
    description: VDD power supply a phandle to a regulator

  vio-supply:
    description: VIO power supply a phandle to a regulator

  io-channels:
    maxItems: 1
    description: ALSOUT ADC channel to read the ambient light

  io-channel-names:
    const: alsout

  sharp,proximity-far-hysteresis:
    $ref: /schemas/types.yaml#/definitions/uint8
    description: |
      Hysteresis setting for "far" object detection, this setting is
      device-unique and adjust the optical setting for proximity detection
      of a "far away" object in front of the sensor.

  sharp,proximity-close-hysteresis:
    $ref: /schemas/types.yaml#/definitions/uint8
    description: |
      Hysteresis setting for "close" object detection, this setting is
      device-unique and adjust the optical setting for proximity detection
      of a "close" object in front of the sensor.

required:
  - compatible
  - reg
  - interrupts
  - sharp,proximity-far-hysteresis
  - sharp,proximity-close-hysteresis

additionalProperties: false

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

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

      light-sensor@44 {
        compatible = "sharp,gp2ap002a00f";
        reg = <0x44>;
        interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
        vdd-supply = <&vdd_regulator>;
        vio-supply = <&vio_regulator>;
        io-channels = <&adc_channel>;
        io-channel-names = "alsout";
        sharp,proximity-far-hysteresis = /bits/ 8 <0x2f>;
        sharp,proximity-close-hysteresis = /bits/ 8 <0x0f>;
      };
    };

...
