1a2ff6e03SLinus Walleij# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2a2ff6e03SLinus Walleij%YAML 1.2
3a2ff6e03SLinus Walleij---
4a2ff6e03SLinus Walleij$id: http://devicetree.org/schemas/iio/light/sharp,gp2ap002.yaml#
5a2ff6e03SLinus Walleij$schema: http://devicetree.org/meta-schemas/core.yaml#
6a2ff6e03SLinus Walleij
7a2ff6e03SLinus Walleijtitle: Sharp GP2AP002A00F and GP2AP002S00F proximity and ambient light sensors
8a2ff6e03SLinus Walleij
9a2ff6e03SLinus Walleijmaintainers:
10a2ff6e03SLinus Walleij  - Linus Walleij <linus.walleij@linaro.org>
11a2ff6e03SLinus Walleij
12a2ff6e03SLinus Walleijdescription: |
13a2ff6e03SLinus Walleij  Proximity and ambient light sensor with IR LED for the proximity
14a2ff6e03SLinus Walleij  sensing and an analog output for light intensity. The ambient light
15a2ff6e03SLinus Walleij  sensor output is not available on the GP2AP002S00F variant.
16a2ff6e03SLinus Walleij
17a2ff6e03SLinus Walleijproperties:
18a2ff6e03SLinus Walleij  compatible:
19a2ff6e03SLinus Walleij    enum:
20a2ff6e03SLinus Walleij      - sharp,gp2ap002a00f
21a2ff6e03SLinus Walleij      - sharp,gp2ap002s00f
22a2ff6e03SLinus Walleij
23a2ff6e03SLinus Walleij  reg:
24a2ff6e03SLinus Walleij    maxItems: 1
25a2ff6e03SLinus Walleij
26a2ff6e03SLinus Walleij  interrupts:
27a2ff6e03SLinus Walleij    maxItems: 1
28a2ff6e03SLinus Walleij    description: an interrupt for proximity, usually a GPIO line
29a2ff6e03SLinus Walleij
30a2ff6e03SLinus Walleij  vdd-supply:
31a2ff6e03SLinus Walleij    description: VDD power supply a phandle to a regulator
32a2ff6e03SLinus Walleij
33a2ff6e03SLinus Walleij  vio-supply:
34a2ff6e03SLinus Walleij    description: VIO power supply a phandle to a regulator
35a2ff6e03SLinus Walleij
36a2ff6e03SLinus Walleij  io-channels:
37a2ff6e03SLinus Walleij    maxItems: 1
38a2ff6e03SLinus Walleij    description: ALSOUT ADC channel to read the ambient light
39a2ff6e03SLinus Walleij
40a2ff6e03SLinus Walleij  io-channel-names:
41a2ff6e03SLinus Walleij    const: alsout
42a2ff6e03SLinus Walleij
43a2ff6e03SLinus Walleij  sharp,proximity-far-hysteresis:
44a2ff6e03SLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint8
45a2ff6e03SLinus Walleij    description: |
46a2ff6e03SLinus Walleij      Hysteresis setting for "far" object detection, this setting is
47a2ff6e03SLinus Walleij      device-unique and adjust the optical setting for proximity detection
48a2ff6e03SLinus Walleij      of a "far away" object in front of the sensor.
49a2ff6e03SLinus Walleij
50a2ff6e03SLinus Walleij  sharp,proximity-close-hysteresis:
51a2ff6e03SLinus Walleij    $ref: /schemas/types.yaml#/definitions/uint8
52a2ff6e03SLinus Walleij    description: |
53a2ff6e03SLinus Walleij      Hysteresis setting for "close" object detection, this setting is
54a2ff6e03SLinus Walleij      device-unique and adjust the optical setting for proximity detection
55a2ff6e03SLinus Walleij      of a "close" object in front of the sensor.
56a2ff6e03SLinus Walleij
57a2ff6e03SLinus Walleijrequired:
58a2ff6e03SLinus Walleij  - compatible
59a2ff6e03SLinus Walleij  - reg
60a2ff6e03SLinus Walleij  - interrupts
61a2ff6e03SLinus Walleij  - sharp,proximity-far-hysteresis
62a2ff6e03SLinus Walleij  - sharp,proximity-close-hysteresis
63a2ff6e03SLinus Walleij
645be478f9SRob HerringadditionalProperties: false
655be478f9SRob Herring
66a2ff6e03SLinus Walleijexamples:
67a2ff6e03SLinus Walleij  - |
68a2ff6e03SLinus Walleij    #include <dt-bindings/interrupt-controller/irq.h>
69a2ff6e03SLinus Walleij
70a2ff6e03SLinus Walleij    i2c {
71a2ff6e03SLinus Walleij      #address-cells = <1>;
72a2ff6e03SLinus Walleij      #size-cells = <0>;
73a2ff6e03SLinus Walleij
74a2ff6e03SLinus Walleij      light-sensor@44 {
75a2ff6e03SLinus Walleij        compatible = "sharp,gp2ap002a00f";
76a2ff6e03SLinus Walleij        reg = <0x44>;
77a2ff6e03SLinus Walleij        interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
78a2ff6e03SLinus Walleij        vdd-supply = <&vdd_regulator>;
79a2ff6e03SLinus Walleij        vio-supply = <&vio_regulator>;
80a2ff6e03SLinus Walleij        io-channels = <&adc_channel>;
81a2ff6e03SLinus Walleij        io-channel-names = "alsout";
82a2ff6e03SLinus Walleij        sharp,proximity-far-hysteresis = /bits/ 8 <0x2f>;
83a2ff6e03SLinus Walleij        sharp,proximity-close-hysteresis = /bits/ 8 <0x0f>;
84a2ff6e03SLinus Walleij      };
85a2ff6e03SLinus Walleij    };
86a2ff6e03SLinus Walleij
87a2ff6e03SLinus Walleij...
88