1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/proximity/semtech,sx9324.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Semtech's SX9324 capacitive proximity sensor
8
9maintainers:
10  - Gwendal Grignou <gwendal@chromium.org>
11  - Daniel Campello <campello@chromium.org>
12
13description: |
14  Semtech's SX9324 proximity sensor.
15
16allOf:
17  - $ref: /schemas/iio/iio.yaml#
18
19properties:
20  compatible:
21    const: semtech,sx9324
22
23  reg:
24    maxItems: 1
25
26  interrupts:
27    description:
28      Generated by device to announce preceding read request has finished
29      and data is available or that a close/far proximity event has happened.
30    maxItems: 1
31
32  vdd-supply:
33    description: Main power supply
34
35  svdd-supply:
36    description: Host interface power supply
37
38  "#io-channel-cells":
39    const: 1
40
41  semtech,ph0-pin:
42    $ref: /schemas/types.yaml#/definitions/uint32-array
43    description: |
44      Array of 3 entries. Index represent the id of the CS pin.
45      Value indicates how each CS pin is used during phase 0.
46      Each of the 3 pins have the following value -
47      0 : unused (high impedance)
48      1 : measured input
49      2 : dynamic shield
50      3 : grounded.
51      For instance, CS0 measured, CS1 shield and CS2 ground is [1, 2, 3]
52    items:
53      enum: [ 0, 1, 2, 3 ]
54    minItems: 3
55    maxItems: 3
56
57  semtech,ph1-pin:
58    $ref: /schemas/types.yaml#/definitions/uint32-array
59    description: Same as ph0-pin for phase 1.
60    items:
61      enum: [ 0, 1, 2, 3 ]
62    minItems: 3
63    maxItems: 3
64
65  semtech,ph2-pin:
66    $ref: /schemas/types.yaml#/definitions/uint32-array
67    description: Same as ph0-pin for phase 2.
68    items:
69      enum: [ 0, 1, 2, 3 ]
70    minItems: 3
71    maxItems: 3
72
73  semtech,ph3-pin:
74    $ref: /schemas/types.yaml#/definitions/uint32-array
75    description: Same as ph0-pin for phase 3.
76    items:
77      enum: [ 0, 1, 2, 3 ]
78    minItems: 3
79    maxItems: 3
80
81
82  semtech,ph01-resolution:
83    $ref: /schemas/types.yaml#/definitions/uint32
84    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
85    description:
86      Capacitance measurement resolution. For phase 0 and 1.
87      Higher the number, higher the resolution.
88    default: 128
89
90  semtech,ph23-resolution:
91    $ref: /schemas/types.yaml#/definitions/uint32
92    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
93    description:
94      Capacitance measurement resolution. For phase 2 and 3
95    default: 128
96
97  semtech,startup-sensor:
98    $ref: /schemas/types.yaml#/definitions/uint32
99    enum: [0, 1, 2, 3]
100    default: 0
101    description: |
102      Phase used for start-up proximity detection.
103      It is used when we enable a phase to remove static offset and measure
104      only capacitance changes introduced by the user.
105
106  semtech,ph01-proxraw-strength:
107    $ref: /schemas/types.yaml#/definitions/uint32
108    minimum: 0
109    maximum: 7
110    default: 1
111    description:
112      PROXRAW filter strength for phase 0 and 1. A value of 0 represents off,
113      and other values represent 1-1/2^N.
114
115  semtech,ph23-proxraw-strength:
116    $ref: /schemas/types.yaml#/definitions/uint32
117    minimum: 0
118    maximum: 7
119    default: 1
120    description:
121      Same as proxraw-strength01, for phase 2 and 3.
122
123  semtech,avg-pos-strength:
124    $ref: /schemas/types.yaml#/definitions/uint32
125    enum: [0, 16, 64, 128, 256, 512, 1024, 4294967295]
126    default: 16
127    description: |
128      Average positive filter strength. A value of 0 represents off and
129      UINT_MAX (4294967295) represents infinite. Other values
130      represent 1-1/N.
131
132  semtech,cs-idle-sleep:
133    description:
134      State of CS pins during sleep mode and idle time.
135    enum:
136      - hi-z
137      - gnd
138      - vdd
139
140  semtech,int-comp-resistor:
141    description:
142      Internal resistor setting for compensation.
143    enum:
144      - lowest
145      - low
146      - high
147      - highest
148
149  semtech,input-precharge-resistor-ohms:
150    default: 4000
151    multipleOf: 2000
152    minimum: 0
153    maximum: 30000
154    description:
155      Pre-charge input resistance in Ohm.
156
157  semtech,input-analog-gain:
158    $ref: /schemas/types.yaml#/definitions/uint32
159    minimum: 0
160    maximum: 3
161    description: |
162      Defines the input antenna analog gain
163      0: x1.247
164      1: x1 (default)
165      2: x0.768
166      3: x0.552
167
168required:
169  - compatible
170  - reg
171  - "#io-channel-cells"
172
173unevaluatedProperties: false
174
175examples:
176  - |
177    #include <dt-bindings/interrupt-controller/irq.h>
178    i2c {
179      #address-cells = <1>;
180      #size-cells = <0>;
181      proximity@28 {
182        compatible = "semtech,sx9324";
183        reg = <0x28>;
184        interrupt-parent = <&pio>;
185        interrupts = <5 IRQ_TYPE_LEVEL_LOW 5>;
186        vdd-supply = <&pp3300_a>;
187        svdd-supply = <&pp1800_prox>;
188        #io-channel-cells = <1>;
189        semtech,ph0-pin = <1 2 3>;
190        semtech,ph1-pin = <3 2 1>;
191        semtech,ph2-pin = <1 2 3>;
192        semtech,ph3-pin = <3 2 1>;
193        semtech,ph01-resolution = <256>;
194        semtech,ph23-resolution = <256>;
195        semtech,startup-sensor = <1>;
196        semtech,ph01-proxraw-strength = <2>;
197        semtech,ph23-proxraw-strength = <2>;
198        semtech,avg-pos-strength = <64>;
199        semtech,int-comp-resistor = "lowest";
200        semtech,input-precharge-resistor-ohms = <2000>;
201        semtech,cs-idle-sleep = "gnd";
202      };
203    };
204