xref: /openbmc/linux/Documentation/devicetree/bindings/input/microchip,qt1050.txt (revision 74acee309fb2a434dce215d44014e6f8e06975ae)
1*cbebf5adSMarco FelschMicrochip AT42QT1050 Five-channel Touch Sensor IC
2*cbebf5adSMarco Felsch
3*cbebf5adSMarco FelschThe AT42QT1050 (QT1050) is a QTouchADC sensor device. The device can sense from
4*cbebf5adSMarco Felschone to five keys, dependent on mode. The QT1050 includes all signal processing
5*cbebf5adSMarco Felschfunctions necessary to provide stable sensing under a wide variety of changing
6*cbebf5adSMarco Felschconditions, and the outputs are fully debounced.
7*cbebf5adSMarco Felsch
8*cbebf5adSMarco FelschThe touchkey device node should be placed inside an I2C bus node.
9*cbebf5adSMarco Felsch
10*cbebf5adSMarco FelschRequired properties:
11*cbebf5adSMarco Felsch- compatible: Must be "microchip,qt1050"
12*cbebf5adSMarco Felsch- reg: The I2C address of the device
13*cbebf5adSMarco Felsch- interrupts: The sink for the touchpad's IRQ output,
14*cbebf5adSMarco Felsch  see ../interrupt-controller/interrupts.txt
15*cbebf5adSMarco Felsch
16*cbebf5adSMarco FelschOptional properties:
17*cbebf5adSMarco Felsch- wakeup-source: touch keys can be used as a wakeup source
18*cbebf5adSMarco Felsch
19*cbebf5adSMarco FelschEach button (key) is represented as a sub-node:
20*cbebf5adSMarco Felsch
21*cbebf5adSMarco FelschEach not specified key or key with linux,code set to KEY_RESERVED gets disabled
22*cbebf5adSMarco Felschin HW.
23*cbebf5adSMarco Felsch
24*cbebf5adSMarco FelschSubnode properties:
25*cbebf5adSMarco Felsch- linux,code: Keycode to emit.
26*cbebf5adSMarco Felsch- reg: The key number. Valid values: 0, 1, 2, 3, 4.
27*cbebf5adSMarco Felsch
28*cbebf5adSMarco FelschOptional subnode-properties:
29*cbebf5adSMarco Felsch
30*cbebf5adSMarco FelschIf a optional property is missing or has a invalid value the default value is
31*cbebf5adSMarco Felschtaken.
32*cbebf5adSMarco Felsch
33*cbebf5adSMarco Felsch- microchip,pre-charge-time-ns:
34*cbebf5adSMarco Felsch  Each touchpad need some time to precharge. The value depends on the mechanical
35*cbebf5adSMarco Felsch  layout.
36*cbebf5adSMarco Felsch  Valid value range: 0 - 637500; values must be a multiple of 2500;
37*cbebf5adSMarco Felsch  default is 0.
38*cbebf5adSMarco Felsch- microchip,average-samples:
39*cbebf5adSMarco Felsch  Number of data samples which are averaged for each read.
40*cbebf5adSMarco Felsch  Valid values: 1, 4, 16, 64, 256, 1024, 4096, 16384; default is 1.
41*cbebf5adSMarco Felsch- microchip,average-scaling:
42*cbebf5adSMarco Felsch  The scaling factor which is used to scale the average-samples.
43*cbebf5adSMarco Felsch  Valid values: 1, 2, 4, 8, 16, 32, 64, 128; default is 1.
44*cbebf5adSMarco Felsch- microchip,threshold:
45*cbebf5adSMarco Felsch  Number of counts to register a touch detection.
46*cbebf5adSMarco Felsch  Valid value range: 0 - 255; default is 20.
47*cbebf5adSMarco Felsch
48*cbebf5adSMarco FelschExample:
49*cbebf5adSMarco FelschQT1050 with 3 non continuous keys, key2 and key4 are disabled.
50*cbebf5adSMarco Felsch
51*cbebf5adSMarco Felschtouchkeys@41 {
52*cbebf5adSMarco Felsch	compatible = "microchip,qt1050";
53*cbebf5adSMarco Felsch	reg = <0x41>;
54*cbebf5adSMarco Felsch	interrupt-parent = <&gpio0>;
55*cbebf5adSMarco Felsch	interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
56*cbebf5adSMarco Felsch
57*cbebf5adSMarco Felsch	up@0 {
58*cbebf5adSMarco Felsch		reg = <0>;
59*cbebf5adSMarco Felsch		linux,code = <KEY_UP>;
60*cbebf5adSMarco Felsch		microchip,average-samples = <64>;
61*cbebf5adSMarco Felsch		microchip,average-scaling = <16>;
62*cbebf5adSMarco Felsch		microchip,pre-charge-time-ns = <10000>;
63*cbebf5adSMarco Felsch	};
64*cbebf5adSMarco Felsch
65*cbebf5adSMarco Felsch	right@1 {
66*cbebf5adSMarco Felsch		reg = <1>;
67*cbebf5adSMarco Felsch		linux,code = <KEY_RIGHT>;
68*cbebf5adSMarco Felsch		microchip,average-samples = <64>;
69*cbebf5adSMarco Felsch		microchip,average-scaling = <8>;
70*cbebf5adSMarco Felsch	};
71*cbebf5adSMarco Felsch
72*cbebf5adSMarco Felsch	down@3 {
73*cbebf5adSMarco Felsch		reg = <3>;
74*cbebf5adSMarco Felsch		linux,code = <KEY_DOWN>;
75*cbebf5adSMarco Felsch		microchip,average-samples = <256>;
76*cbebf5adSMarco Felsch		microchip,average-scaling = <16>;
77*cbebf5adSMarco Felsch	};
78*cbebf5adSMarco Felsch};
79