summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/input/touchscreen/synaptics_dsx_i2c.txt
blob: ebe95f03ea92ffdc1107d9c91a33d992388e6440 (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
Synaptics DSX touch controller

Required properties:

 - compatible		: should be "synaptics,dsx"
 - reg			: i2c slave address of the device
 - interrupt-parent	: parent of interrupt
 - interrupts		: touch sample interrupt to indicate presense or release
				of fingers on the panel.
 - synaptics,irq-gpio	: irq gpio
 - synaptics,reset-gpio	: reset gpio
 - vdd-supply			: digital voltage power supply needed to power device
 - avdd-supply			: analog voltage power supply needed to power device
 - synaptics,vdd-voltage	: digital voltage range for vdd-supply
 - synaptics,avdd-voltage	: analog voltage range for avdd-supply
 - synaptics,vdd-current	: current load for vdd-supply
 - synaptics,avdd-current	: current load for avdd-supply

Optional property:
 - synaptics,button-map		: virtual key code mappings to be used
 - synaptics,x-flip		: modify orientation of the x axis
 - synaptics,y-flip		: modify orientation of the y axis
 - synaptics,reset-delay-ms	: reset delay for controller (ms), default 100
 - synaptics,panel-coords	: touch panel min x, min y, max x and
					max y resolution
 - synaptics,display-coords	: display min x, min y, max x and
					max y resolution
 - synaptics,fw-name		: name of firmware .img file in /etc/firmware
 - synaptics,disable-gpios	: specify this to disable gpios in suspend
 - pinctrl-names		: This should be defined if a target uses pinctrl framework.
			See "pinctrl" in Documentation/devicetree/bindings/pinctrl/msm-pinctrl.txt.
			It should specify the names of the configs that pinctrl can install in driver.
			Following are the pinctrl configs that can be installed:
			"pmx_ts_active" : Active configuration of pins, this should specify active
			config defined in pin groups of interrupt and reset gpio.
			"pmx_ts_suspend" : Disabled configuration of pins, this should specify sleep
			config defined in pin groups of interrupt and reset gpio.
			"pmx_ts_release" : Release configuration of pins, this should specify
			release config defined in pin groups of interrupt and reset gpio.
 - synaptics,detect-device	: Define this property when two Synaptics Touchscreen controllers
				need to be supported without changing the DT. In this case, all
				such devices are placed as child nodes of Synaptics touchscreen
				node. Following are the properties that can be defined inside
				these child nodes:
				- synaptics-package-id
				- synaptics,panel-coords
				- synaptics-display-coords
				- synaptics,button-map
				- synaptics,key-codes
 - clocks			: Optional property that represents the clocks associated
				with the underlying bus when secure touch is enabled. This property
				is required only if secure touch is enabled and used with this driver.
 - clock-names:			: Clock names used for secure touch. The names are:
				"iface_clk", "core_clk".
 - synaptics,config-id		: Specifies the Config Id of touch controller.
 - synaptics,bypass-packrat-id-check : Specifies if packrat ID needs to be ignored for smart
				 firmware upgrade

Optional properties inside child node:
These properties are defined only when synaptics,detect-device property is defined in DT.
 - synaptics,package-id		: Specifies the Package Id of touch controller.
 - synaptics,panel-coords	: Specifies the Touch panel min x, min y, max x and max y
				resolution.
 - synaptics,display-coords	: Specifies the display min x, min y, max x and max y
				resolution.
 - synaptics,button-map		: Key code mappings to be used when device
				supports 0D buttons and directly sends key codes.
 - synaptics,key-codes		: Virtual key code mappings to be used when device
				supports 2D buttons and sends coordinates instead of
				key codes.
 - synaptics,bypass-sensor-coords-check : Bypass the comparison of sensor coordinates
				range read from DT and touch controller. Used when some
				touch panels in the field are unprogrammed and misprogrammed.
 - synaptics,resume-in-workqueue : specifiy whether to defer the resume to workqueue.

Example:
	i2c@f9927000 {
		synaptics@20 {
			compatible = "synaptics,dsx";
			reg = <0x20>;
			interrupt-parent = <&msmgpio>;
			interrupts = <17 0x2>;
			vdd-supply = <&pm8226_l19>;
			avdd-supply = <&pm8226_lvs1>;
			synaptics,vdd-voltage = <1808000 1808000>;
			synaptics,avdd-voltage = <3008000 3008000>;
			synaptics,vdd-current = <40000>;
			synaptics,avdd-current = <20000>;
			synaptics,reset-gpio = <&msmgpio 16 0x00>;
			synaptics,irq-gpio = <&msmgpio 17 0x00>;
			synaptics,reset-delay-ms = <100>;
			synaptics,x-flip;
			synaptics,y-flip;
			synaptics,disable-gpios;
			synaptics,fw-name = "PR1610974.img";
			pinctrl-names = "pmx_ts_active","pmx_ts_suspend", "pmx_ts_release";
			pinctrl-0 = <&ts_int_active &ts_reset_active>;
			pinctrl-1 = <&ts_int_suspend &ts_reset_suspend>;
			pinctrl-2 = <&ts_release>;
			synaptics,detect-device;
			synaptics,device1 {
				synaptics,package-id = <3202>;
				synaptics,button-map = <139 172 158>;
			};
			synaptics,device2 {
				synaptics,package-id = <3408>;
				synaptics,display-coords = <0 0 1079 1919>;
				synaptics,panel-coords = <0 0 1079 2084>;
				synaptics,key-codes = <139 172 158 217>;
			};
			clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
			 <&clock_gcc clk_gcc_blsp1_qup5_i2c_apps_clk>;
			clock-names = "iface_clk", "core_clk";
		};
	};