18c2ecf20Sopenharmony_ciSTMPE Touchscreen
28c2ecf20Sopenharmony_ci----------------
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciRequired properties:
58c2ecf20Sopenharmony_ci - compatible: "st,stmpe-ts"
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciOptional properties:
88c2ecf20Sopenharmony_ci- st,ave-ctrl		: Sample average control
98c2ecf20Sopenharmony_ci				0 -> 1 sample
108c2ecf20Sopenharmony_ci				1 -> 2 samples
118c2ecf20Sopenharmony_ci				2 -> 4 samples
128c2ecf20Sopenharmony_ci				3 -> 8 samples
138c2ecf20Sopenharmony_ci- st,touch-det-delay	: Touch detect interrupt delay (recommended is 3)
148c2ecf20Sopenharmony_ci				0 -> 10 us
158c2ecf20Sopenharmony_ci				1 -> 50 us
168c2ecf20Sopenharmony_ci				2 -> 100 us
178c2ecf20Sopenharmony_ci				3 -> 500 us
188c2ecf20Sopenharmony_ci				4 -> 1 ms
198c2ecf20Sopenharmony_ci				5 -> 5 ms
208c2ecf20Sopenharmony_ci				6 -> 10 ms
218c2ecf20Sopenharmony_ci				7 -> 50 ms
228c2ecf20Sopenharmony_ci- st,settling		: Panel driver settling time (recommended is 2)
238c2ecf20Sopenharmony_ci				0 -> 10 us
248c2ecf20Sopenharmony_ci				1 -> 100 us
258c2ecf20Sopenharmony_ci				2 -> 500 us
268c2ecf20Sopenharmony_ci				3 -> 1 ms
278c2ecf20Sopenharmony_ci				4 -> 5 ms
288c2ecf20Sopenharmony_ci				5 -> 10 ms
298c2ecf20Sopenharmony_ci				6 -> 50 ms
308c2ecf20Sopenharmony_ci				7 -> 100 ms
318c2ecf20Sopenharmony_ci- st,fraction-z		: Length of the fractional part in z (recommended is 7)
328c2ecf20Sopenharmony_ci			  (fraction-z ([0..7]) = Count of the fractional part)
338c2ecf20Sopenharmony_ci- st,i-drive		: current limit value of the touchscreen drivers
348c2ecf20Sopenharmony_ci				0 -> 20 mA (typical 35mA max)
358c2ecf20Sopenharmony_ci				1 -> 50 mA (typical 80 mA max)
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciOptional properties common with MFD (deprecated):
388c2ecf20Sopenharmony_ci - st,sample-time	: ADC conversion time in number of clock.
398c2ecf20Sopenharmony_ci				0 -> 36 clocks
408c2ecf20Sopenharmony_ci				1 -> 44 clocks
418c2ecf20Sopenharmony_ci				2 -> 56 clocks
428c2ecf20Sopenharmony_ci				3 -> 64 clocks
438c2ecf20Sopenharmony_ci				4 -> 80 clocks (recommended)
448c2ecf20Sopenharmony_ci				5 -> 96 clocks
458c2ecf20Sopenharmony_ci				6 -> 124 clocks
468c2ecf20Sopenharmony_ci - st,mod-12b		: ADC Bit mode
478c2ecf20Sopenharmony_ci				0 -> 10bit ADC
488c2ecf20Sopenharmony_ci				1 -> 12bit ADC
498c2ecf20Sopenharmony_ci - st,ref-sel		: ADC reference source
508c2ecf20Sopenharmony_ci				0 -> internal
518c2ecf20Sopenharmony_ci				1 -> external
528c2ecf20Sopenharmony_ci - st,adc-freq		: ADC Clock speed
538c2ecf20Sopenharmony_ci				0 -> 1.625 MHz
548c2ecf20Sopenharmony_ci				1 -> 3.25 MHz
558c2ecf20Sopenharmony_ci				2 || 3 -> 6.5 MHz
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ciNode name must be stmpe_touchscreen and should be child node of stmpe node to
588c2ecf20Sopenharmony_ciwhich it belongs.
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciNote that common ADC settings of stmpe_touchscreen (child) will take precedence
618c2ecf20Sopenharmony_ciover the settings done in MFD.
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciExample:
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_cistmpe811@41 {
668c2ecf20Sopenharmony_ci	compatible = "st,stmpe811";
678c2ecf20Sopenharmony_ci	pinctrl-names = "default";
688c2ecf20Sopenharmony_ci	pinctrl-0 = <&pinctrl_touch_int>;
698c2ecf20Sopenharmony_ci	#address-cells = <1>;
708c2ecf20Sopenharmony_ci	#size-cells = <0>;
718c2ecf20Sopenharmony_ci	reg = <0x41>;
728c2ecf20Sopenharmony_ci	interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
738c2ecf20Sopenharmony_ci	interrupt-parent = <&gpio4>;
748c2ecf20Sopenharmony_ci	interrupt-controller;
758c2ecf20Sopenharmony_ci	id = <0>;
768c2ecf20Sopenharmony_ci	blocks = <0x5>;
778c2ecf20Sopenharmony_ci	irq-trigger = <0x1>;
788c2ecf20Sopenharmony_ci	/* Common ADC settings */
798c2ecf20Sopenharmony_ci	/* 3.25 MHz ADC clock speed */
808c2ecf20Sopenharmony_ci	st,adc-freq = <1>;
818c2ecf20Sopenharmony_ci	/* 12-bit ADC */
828c2ecf20Sopenharmony_ci	st,mod-12b = <1>;
838c2ecf20Sopenharmony_ci	/* internal ADC reference */
848c2ecf20Sopenharmony_ci	st,ref-sel = <0>;
858c2ecf20Sopenharmony_ci	/* ADC converstion time: 80 clocks */
868c2ecf20Sopenharmony_ci	st,sample-time = <4>;
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci	stmpe_touchscreen {
898c2ecf20Sopenharmony_ci		compatible = "st,stmpe-ts";
908c2ecf20Sopenharmony_ci		reg = <0>;
918c2ecf20Sopenharmony_ci		/* 8 sample average control */
928c2ecf20Sopenharmony_ci		st,ave-ctrl = <3>;
938c2ecf20Sopenharmony_ci		/* 5 ms touch detect interrupt delay */
948c2ecf20Sopenharmony_ci		st,touch-det-delay = <5>;
958c2ecf20Sopenharmony_ci		/* 1 ms panel driver settling time */
968c2ecf20Sopenharmony_ci		st,settling = <3>;
978c2ecf20Sopenharmony_ci		/* 7 length fractional part in z */
988c2ecf20Sopenharmony_ci		st,fraction-z = <7>;
998c2ecf20Sopenharmony_ci		/*
1008c2ecf20Sopenharmony_ci		 * 50 mA typical 80 mA max touchscreen drivers
1018c2ecf20Sopenharmony_ci		 * current limit value
1028c2ecf20Sopenharmony_ci		 */
1038c2ecf20Sopenharmony_ci		st,i-drive = <1>;
1048c2ecf20Sopenharmony_ci	};
1058c2ecf20Sopenharmony_ci	stmpe_adc {
1068c2ecf20Sopenharmony_ci		compatible = "st,stmpe-adc";
1078c2ecf20Sopenharmony_ci		st,norequest-mask = <0x0F>;
1088c2ecf20Sopenharmony_ci	};
1098c2ecf20Sopenharmony_ci};
110