xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/input/touchscreen/stmpe.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSTMPE Touchscreen
2*4882a593Smuzhiyun----------------
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunRequired properties:
5*4882a593Smuzhiyun - compatible: "st,stmpe-ts"
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunOptional properties:
8*4882a593Smuzhiyun- st,ave-ctrl		: Sample average control
9*4882a593Smuzhiyun				0 -> 1 sample
10*4882a593Smuzhiyun				1 -> 2 samples
11*4882a593Smuzhiyun				2 -> 4 samples
12*4882a593Smuzhiyun				3 -> 8 samples
13*4882a593Smuzhiyun- st,touch-det-delay	: Touch detect interrupt delay (recommended is 3)
14*4882a593Smuzhiyun				0 -> 10 us
15*4882a593Smuzhiyun				1 -> 50 us
16*4882a593Smuzhiyun				2 -> 100 us
17*4882a593Smuzhiyun				3 -> 500 us
18*4882a593Smuzhiyun				4 -> 1 ms
19*4882a593Smuzhiyun				5 -> 5 ms
20*4882a593Smuzhiyun				6 -> 10 ms
21*4882a593Smuzhiyun				7 -> 50 ms
22*4882a593Smuzhiyun- st,settling		: Panel driver settling time (recommended is 2)
23*4882a593Smuzhiyun				0 -> 10 us
24*4882a593Smuzhiyun				1 -> 100 us
25*4882a593Smuzhiyun				2 -> 500 us
26*4882a593Smuzhiyun				3 -> 1 ms
27*4882a593Smuzhiyun				4 -> 5 ms
28*4882a593Smuzhiyun				5 -> 10 ms
29*4882a593Smuzhiyun				6 -> 50 ms
30*4882a593Smuzhiyun				7 -> 100 ms
31*4882a593Smuzhiyun- st,fraction-z		: Length of the fractional part in z (recommended is 7)
32*4882a593Smuzhiyun			  (fraction-z ([0..7]) = Count of the fractional part)
33*4882a593Smuzhiyun- st,i-drive		: current limit value of the touchscreen drivers
34*4882a593Smuzhiyun				0 -> 20 mA (typical 35mA max)
35*4882a593Smuzhiyun				1 -> 50 mA (typical 80 mA max)
36*4882a593Smuzhiyun
37*4882a593SmuzhiyunOptional properties common with MFD (deprecated):
38*4882a593Smuzhiyun - st,sample-time	: ADC conversion time in number of clock.
39*4882a593Smuzhiyun				0 -> 36 clocks
40*4882a593Smuzhiyun				1 -> 44 clocks
41*4882a593Smuzhiyun				2 -> 56 clocks
42*4882a593Smuzhiyun				3 -> 64 clocks
43*4882a593Smuzhiyun				4 -> 80 clocks (recommended)
44*4882a593Smuzhiyun				5 -> 96 clocks
45*4882a593Smuzhiyun				6 -> 124 clocks
46*4882a593Smuzhiyun - st,mod-12b		: ADC Bit mode
47*4882a593Smuzhiyun				0 -> 10bit ADC
48*4882a593Smuzhiyun				1 -> 12bit ADC
49*4882a593Smuzhiyun - st,ref-sel		: ADC reference source
50*4882a593Smuzhiyun				0 -> internal
51*4882a593Smuzhiyun				1 -> external
52*4882a593Smuzhiyun - st,adc-freq		: ADC Clock speed
53*4882a593Smuzhiyun				0 -> 1.625 MHz
54*4882a593Smuzhiyun				1 -> 3.25 MHz
55*4882a593Smuzhiyun				2 || 3 -> 6.5 MHz
56*4882a593Smuzhiyun
57*4882a593SmuzhiyunNode name must be stmpe_touchscreen and should be child node of stmpe node to
58*4882a593Smuzhiyunwhich it belongs.
59*4882a593Smuzhiyun
60*4882a593SmuzhiyunNote that common ADC settings of stmpe_touchscreen (child) will take precedence
61*4882a593Smuzhiyunover the settings done in MFD.
62*4882a593Smuzhiyun
63*4882a593SmuzhiyunExample:
64*4882a593Smuzhiyun
65*4882a593Smuzhiyunstmpe811@41 {
66*4882a593Smuzhiyun	compatible = "st,stmpe811";
67*4882a593Smuzhiyun	pinctrl-names = "default";
68*4882a593Smuzhiyun	pinctrl-0 = <&pinctrl_touch_int>;
69*4882a593Smuzhiyun	#address-cells = <1>;
70*4882a593Smuzhiyun	#size-cells = <0>;
71*4882a593Smuzhiyun	reg = <0x41>;
72*4882a593Smuzhiyun	interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
73*4882a593Smuzhiyun	interrupt-parent = <&gpio4>;
74*4882a593Smuzhiyun	interrupt-controller;
75*4882a593Smuzhiyun	id = <0>;
76*4882a593Smuzhiyun	blocks = <0x5>;
77*4882a593Smuzhiyun	irq-trigger = <0x1>;
78*4882a593Smuzhiyun	/* Common ADC settings */
79*4882a593Smuzhiyun	/* 3.25 MHz ADC clock speed */
80*4882a593Smuzhiyun	st,adc-freq = <1>;
81*4882a593Smuzhiyun	/* 12-bit ADC */
82*4882a593Smuzhiyun	st,mod-12b = <1>;
83*4882a593Smuzhiyun	/* internal ADC reference */
84*4882a593Smuzhiyun	st,ref-sel = <0>;
85*4882a593Smuzhiyun	/* ADC converstion time: 80 clocks */
86*4882a593Smuzhiyun	st,sample-time = <4>;
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun	stmpe_touchscreen {
89*4882a593Smuzhiyun		compatible = "st,stmpe-ts";
90*4882a593Smuzhiyun		reg = <0>;
91*4882a593Smuzhiyun		/* 8 sample average control */
92*4882a593Smuzhiyun		st,ave-ctrl = <3>;
93*4882a593Smuzhiyun		/* 5 ms touch detect interrupt delay */
94*4882a593Smuzhiyun		st,touch-det-delay = <5>;
95*4882a593Smuzhiyun		/* 1 ms panel driver settling time */
96*4882a593Smuzhiyun		st,settling = <3>;
97*4882a593Smuzhiyun		/* 7 length fractional part in z */
98*4882a593Smuzhiyun		st,fraction-z = <7>;
99*4882a593Smuzhiyun		/*
100*4882a593Smuzhiyun		 * 50 mA typical 80 mA max touchscreen drivers
101*4882a593Smuzhiyun		 * current limit value
102*4882a593Smuzhiyun		 */
103*4882a593Smuzhiyun		st,i-drive = <1>;
104*4882a593Smuzhiyun	};
105*4882a593Smuzhiyun	stmpe_adc {
106*4882a593Smuzhiyun		compatible = "st,stmpe-adc";
107*4882a593Smuzhiyun		st,norequest-mask = <0x0F>;
108*4882a593Smuzhiyun	};
109*4882a593Smuzhiyun};
110