summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/iio/proximity/semtech,sx9324.yaml
blob: b8a6ee16854ff6d8562560566a014dd0216afb7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/proximity/semtech,sx9324.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Semtech's SX9324 capacitive proximity sensor

maintainers:
  - Gwendal Grignou <gwendal@chromium.org>
  - Daniel Campello <campello@chromium.org>

description: |
  Semtech's SX9324 proximity sensor.

properties:
  compatible:
    const: semtech,sx9324

  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:
    description: Main power supply

  svdd-supply:
    description: Host interface power supply

  "#io-channel-cells":
    const: 1

  semtech,ph0-pin:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: |
      Array of 3 entries. Index represent the id of the CS pin.
      Value indicates how each CS pin is used during phase 0.
      Each of the 3 pins have the following value -
      0 : unused (high impedance)
      1 : measured input
      2 : dynamic shield
      3 : grounded.
      For instance, CS0 measured, CS1 shield and CS2 ground is [1, 2, 3]
    items:
      enum: [ 0, 1, 2, 3 ]
    minItems: 3
    maxItems: 3

  semtech,ph1-pin:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: Same as ph0-pin for phase 1.
    items:
      enum: [ 0, 1, 2, 3 ]
    minItems: 3
    maxItems: 3

  semtech,ph2-pin:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: Same as ph0-pin for phase 2.
    items:
      enum: [ 0, 1, 2, 3 ]
    minItems: 3
    maxItems: 3

  semtech,ph3-pin:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: Same as ph0-pin for phase 3.
    items:
      enum: [ 0, 1, 2, 3 ]
    minItems: 3
    maxItems: 3


  semtech,ph01-resolution:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
    description:
      Capacitance measurement resolution. For phase 0 and 1.
      Higher the number, higher the resolution.
    default: 128

  semtech,ph23-resolution:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
    description:
      Capacitance measurement resolution. For phase 2 and 3
    default: 128

  semtech,startup-sensor:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1, 2, 3]
    default: 0
    description: |
      Phase used for start-up proximity detection.
      It is used when we enable a phase to remove static offset and measure
      only capacitance changes introduced by the user.

  semtech,ph01-proxraw-strength:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 7
    default: 1
    description:
      PROXRAW filter strength for phase 0 and 1. A value of 0 represents off,
      and other values represent 1-1/2^N.

  semtech,ph23-proxraw-strength:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 7
    default: 1
    description:
      Same as proxraw-strength01, for phase 2 and 3.

  semtech,avg-pos-strength:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 16, 64, 128, 256, 512, 1024, 4294967295]
    default: 16
    description: |
      Average positive filter strength. A value of 0 represents off and
      UINT_MAX (4294967295) represents infinite. Other values
      represent 1-1/N.

required:
  - compatible
  - reg
  - "#io-channel-cells"

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;
      proximity@28 {
        compatible = "semtech,sx9324";
        reg = <0x28>;
        interrupt-parent = <&pio>;
        interrupts = <5 IRQ_TYPE_LEVEL_LOW 5>;
        vdd-supply = <&pp3300_a>;
        svdd-supply = <&pp1800_prox>;
        #io-channel-cells = <1>;
        semtech,ph0-pin = <1 2 3>;
        semtech,ph1-pin = <3 2 1>;
        semtech,ph2-pin = <1 2 3>;
        semtech,ph3-pin = <3 2 1>;
        semtech,ph01-resolution = <256>;
        semtech,ph23-resolution = <256>;
        semtech,startup-sensor = <1>;
        semtech,ph01-proxraw-strength = <2>;
        semtech,ph23-proxraw-strength = <2>;
        semtech,avg-pos-strength = <64>;
      };
    };