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

title: TYHX HX9023S capacitive proximity sensor

maintainers:
  - Yasin Lee <yasin.lee.x@gmail.com>

description: |
  TYHX HX9023S proximity sensor. Datasheet can be found here:
    http://www.tianyihexin.com/ueditor/php/upload/file/20240614/1718336303992081.pdf

properties:
  compatible:
    const: tyhx,hx9023s

  reg:
    maxItems: 1

  interrupts:
    description:
      Generated by device to announce preceding read request has finished
      and data is available or that a close/far proximity event has happened.
    maxItems: 1

  vdd-supply: true

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

patternProperties:
  "^channel@[0-4]$":
    $ref: /schemas/iio/adc/adc.yaml
    type: object
    unevaluatedProperties: false

    properties:
      reg:
        minimum: 0
        maximum: 4
        description: The channel number.

required:
  - compatible
  - reg
  - vdd-supply

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      proximity@2a {
        compatible = "tyhx,hx9023s";
        reg = <0x2a>;
        interrupt-parent = <&pio>;
        interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
        vdd-supply = <&pp1800_prox>;

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

        channel@0 {
          reg = <0>;
          single-channel = <0>;
        };
        channel@1 {
          reg = <1>;
          single-channel = <1>;
        };
        channel@2 {
          reg = <2>;
          single-channel = <2>;
        };
        channel@3 {
          reg = <3>;
          diff-channels = <1 0>;
        };
        channel@4 {
          reg = <4>;
          diff-channels = <2 0>;
        };
      };
    };
