xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/ste-href-tvk1281618.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-or-later
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright 2012 ST-Ericsson AB
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Device Tree for the TVK1281618 family of UIBs
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun/ {
11*4882a593Smuzhiyun	gpio_keys {
12*4882a593Smuzhiyun		compatible = "gpio-keys";
13*4882a593Smuzhiyun		#address-cells = <1>;
14*4882a593Smuzhiyun		#size-cells = <0>;
15*4882a593Smuzhiyun		vdd-supply = <&ab8500_ldo_aux1_reg>;
16*4882a593Smuzhiyun		pinctrl-names = "default";
17*4882a593Smuzhiyun		pinctrl-0 = <&prox_tvk_mode>, <&hall_tvk_mode>;
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun		button@139 {
20*4882a593Smuzhiyun			/* Proximity sensor */
21*4882a593Smuzhiyun			gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>;
22*4882a593Smuzhiyun			linux,code = <11>; /* SW_FRONT_PROXIMITY */
23*4882a593Smuzhiyun			label = "SFH7741 Proximity Sensor";
24*4882a593Smuzhiyun		};
25*4882a593Smuzhiyun		button@145 {
26*4882a593Smuzhiyun			/* Hall sensor */
27*4882a593Smuzhiyun			gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
28*4882a593Smuzhiyun			linux,code = <0>; /* SW_LID */
29*4882a593Smuzhiyun			label = "HED54XXU11 Hall Effect Sensor";
30*4882a593Smuzhiyun		};
31*4882a593Smuzhiyun	};
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun	soc {
34*4882a593Smuzhiyun		i2c@80004000 {
35*4882a593Smuzhiyun			tc35893@44 {
36*4882a593Smuzhiyun				compatible = "toshiba,tc35893";
37*4882a593Smuzhiyun				reg = <0x44>;
38*4882a593Smuzhiyun				interrupt-parent = <&gpio6>;
39*4882a593Smuzhiyun				interrupts = <26 IRQ_TYPE_EDGE_RISING>;
40*4882a593Smuzhiyun				pinctrl-names = "default";
41*4882a593Smuzhiyun				pinctrl-0 = <&tc35893_tvk_mode>;
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun				interrupt-controller;
44*4882a593Smuzhiyun				#interrupt-cells = <1>;
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun				tc3589x_gpio {
47*4882a593Smuzhiyun					compatible = "toshiba,tc3589x-gpio";
48*4882a593Smuzhiyun					interrupts = <0>;
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun					interrupt-controller;
51*4882a593Smuzhiyun					#interrupt-cells = <2>;
52*4882a593Smuzhiyun					gpio-controller;
53*4882a593Smuzhiyun					#gpio-cells = <2>;
54*4882a593Smuzhiyun				};
55*4882a593Smuzhiyun				tc3589x_keypad {
56*4882a593Smuzhiyun					compatible = "toshiba,tc3589x-keypad";
57*4882a593Smuzhiyun					interrupts = <6>;
58*4882a593Smuzhiyun					debounce-delay-ms = <4>;
59*4882a593Smuzhiyun					keypad,num-columns = <8>;
60*4882a593Smuzhiyun					keypad,num-rows = <8>;
61*4882a593Smuzhiyun					linux,no-autorepeat;
62*4882a593Smuzhiyun					wakeup-source;
63*4882a593Smuzhiyun					linux,keymap = <0x0301006b
64*4882a593Smuzhiyun						        0x04010066
65*4882a593Smuzhiyun							0x06040072
66*4882a593Smuzhiyun							0x040200d7
67*4882a593Smuzhiyun							0x0303006a
68*4882a593Smuzhiyun							0x0205000e
69*4882a593Smuzhiyun							0x0607008b
70*4882a593Smuzhiyun							0x0500001c
71*4882a593Smuzhiyun							0x0403000b
72*4882a593Smuzhiyun							0x03040034
73*4882a593Smuzhiyun							0x05020067
74*4882a593Smuzhiyun							0x0305006c
75*4882a593Smuzhiyun							0x040500e7
76*4882a593Smuzhiyun							0x0005009e
77*4882a593Smuzhiyun							0x06020073
78*4882a593Smuzhiyun							0x01030039
79*4882a593Smuzhiyun							0x07060069
80*4882a593Smuzhiyun							0x050500d9>;
81*4882a593Smuzhiyun				};
82*4882a593Smuzhiyun			};
83*4882a593Smuzhiyun		};
84*4882a593Smuzhiyun		/* Sensors mounted on all board variants */
85*4882a593Smuzhiyun		i2c@80128000 {
86*4882a593Smuzhiyun			ak8974@f {
87*4882a593Smuzhiyun				/* Magnetometer */
88*4882a593Smuzhiyun				compatible = "asahi-kasei,ak8974";
89*4882a593Smuzhiyun				reg = <0x0f>;
90*4882a593Smuzhiyun				avdd-supply = <&ab8500_ldo_aux1_reg>;
91*4882a593Smuzhiyun				dvdd-supply = <&db8500_vsmps2_reg>;
92*4882a593Smuzhiyun				pinctrl-names = "default";
93*4882a593Smuzhiyun				pinctrl-0 = <&gyro_magn_tvk_mode>;
94*4882a593Smuzhiyun				/*
95*4882a593Smuzhiyun				 * These interrupts cannot be used: the other component
96*4882a593Smuzhiyun				 * ST-Micro L3D4200D gyro that is connected to the same lines
97*4882a593Smuzhiyun				 * cannot set its DRDY line to open drain, so it cannot be
98*4882a593Smuzhiyun				 * shared with other peripherals. The should be defined for
99*4882a593Smuzhiyun				 * the falling edge if they could be wired together.
100*4882a593Smuzhiyun				 *
101*4882a593Smuzhiyun				 * interrupts-extended =
102*4882a593Smuzhiyun				 * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
103*4882a593Smuzhiyun				 * <&gpio0 31 IRQ_TYPE_EDGE_FALLING>;
104*4882a593Smuzhiyun				 */
105*4882a593Smuzhiyun			};
106*4882a593Smuzhiyun			l3g4200d@68 {
107*4882a593Smuzhiyun				/* Gyroscope */
108*4882a593Smuzhiyun				compatible = "st,l3g4200d-gyro";
109*4882a593Smuzhiyun				st,drdy-int-pin = <2>;
110*4882a593Smuzhiyun				reg = <0x68>;
111*4882a593Smuzhiyun				vdd-supply = <&ab8500_ldo_aux1_reg>;
112*4882a593Smuzhiyun				vddio-supply = <&db8500_vsmps2_reg>;
113*4882a593Smuzhiyun				pinctrl-names = "default";
114*4882a593Smuzhiyun				pinctrl-0 = <&gyro_magn_tvk_mode>;
115*4882a593Smuzhiyun				interrupts-extended =
116*4882a593Smuzhiyun				<&gpio1 0 IRQ_TYPE_EDGE_RISING>,
117*4882a593Smuzhiyun				<&gpio0 31 IRQ_TYPE_EDGE_RISING>;
118*4882a593Smuzhiyun			};
119*4882a593Smuzhiyun			lsp001wm@5c {
120*4882a593Smuzhiyun				/* Barometer/pressure sensor */
121*4882a593Smuzhiyun				compatible = "st,lps001wp-press";
122*4882a593Smuzhiyun				reg = <0x5c>;
123*4882a593Smuzhiyun				vdd-supply = <&ab8500_ldo_aux1_reg>;
124*4882a593Smuzhiyun				vddio-supply = <&db8500_vsmps2_reg>;
125*4882a593Smuzhiyun			};
126*4882a593Smuzhiyun		};
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun		i2c@80110000 {
129*4882a593Smuzhiyun			synaptics@4b {
130*4882a593Smuzhiyun				/* Synaptics RMI4 TM1217 touchscreen */
131*4882a593Smuzhiyun				compatible = "syna,rmi4-i2c";
132*4882a593Smuzhiyun				#address-cells = <1>;
133*4882a593Smuzhiyun				#size-cells = <0>;
134*4882a593Smuzhiyun				reg = <0x4b>;
135*4882a593Smuzhiyun				vdd-supply = <&ab8500_ldo_aux1_reg>;
136*4882a593Smuzhiyun				vddio-supply = <&db8500_vsmps2_reg>;
137*4882a593Smuzhiyun				pinctrl-names = "default";
138*4882a593Smuzhiyun				pinctrl-0 = <&synaptics_tvk_mode>;
139*4882a593Smuzhiyun				interrupt-parent = <&gpio2>;
140*4882a593Smuzhiyun				interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun				rmi-f01@1 {
143*4882a593Smuzhiyun					reg = <0x1>;
144*4882a593Smuzhiyun					syna,nosleep = <1>;
145*4882a593Smuzhiyun				};
146*4882a593Smuzhiyun				rmi-f11@11 {
147*4882a593Smuzhiyun					reg = <0x11>;
148*4882a593Smuzhiyun					touchscreen-inverted-x;
149*4882a593Smuzhiyun					syna,sensor-type = <1>;
150*4882a593Smuzhiyun				};
151*4882a593Smuzhiyun			};
152*4882a593Smuzhiyun		};
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun		pinctrl {
155*4882a593Smuzhiyun			/* Pull up this GPIO pin */
156*4882a593Smuzhiyun			tc35893 {
157*4882a593Smuzhiyun				tc35893_tvk_mode: tc35893_tvk {
158*4882a593Smuzhiyun					tvk_cfg {
159*4882a593Smuzhiyun						pins = "GPIO218_AH11";
160*4882a593Smuzhiyun						ste,config = <&gpio_in_pu>;
161*4882a593Smuzhiyun					};
162*4882a593Smuzhiyun				};
163*4882a593Smuzhiyun			};
164*4882a593Smuzhiyun			prox {
165*4882a593Smuzhiyun				prox_tvk_mode: prox_tvk {
166*4882a593Smuzhiyun					tvk_cfg {
167*4882a593Smuzhiyun						pins = "GPIO217_AH12";
168*4882a593Smuzhiyun						ste,config = <&gpio_in_pu>;
169*4882a593Smuzhiyun					};
170*4882a593Smuzhiyun				};
171*4882a593Smuzhiyun			};
172*4882a593Smuzhiyun			hall {
173*4882a593Smuzhiyun				hall_tvk_mode: hall_tvk {
174*4882a593Smuzhiyun					tvk_cfg {
175*4882a593Smuzhiyun						pins = "GPIO145_C13";
176*4882a593Smuzhiyun						ste,config = <&gpio_in_pu>;
177*4882a593Smuzhiyun					};
178*4882a593Smuzhiyun				};
179*4882a593Smuzhiyun			};
180*4882a593Smuzhiyun			accelerometer {
181*4882a593Smuzhiyun				accel_tvk_mode: accel_tvk {
182*4882a593Smuzhiyun					/* Accelerometer interrupt lines 1 & 2 */
183*4882a593Smuzhiyun					tvk_cfg {
184*4882a593Smuzhiyun						pins = "GPIO82_C1", "GPIO83_D3";
185*4882a593Smuzhiyun						ste,config = <&gpio_in_pd>;
186*4882a593Smuzhiyun					};
187*4882a593Smuzhiyun				};
188*4882a593Smuzhiyun			};
189*4882a593Smuzhiyun			gyroscope {
190*4882a593Smuzhiyun				/*
191*4882a593Smuzhiyun				 * These lines are shared between Gyroscope l3g400dh
192*4882a593Smuzhiyun				 * and AK8974 magnetometer.
193*4882a593Smuzhiyun				 */
194*4882a593Smuzhiyun				gyro_magn_tvk_mode: gyro_magn_tvk {
195*4882a593Smuzhiyun					 /* GPIO 31 used for INT pull down the line */
196*4882a593Smuzhiyun					tvk_cfg1 {
197*4882a593Smuzhiyun						pins = "GPIO31_V3";
198*4882a593Smuzhiyun						ste,config = <&gpio_in_pd>;
199*4882a593Smuzhiyun					};
200*4882a593Smuzhiyun					/* GPIO 32 used for DRDY, pull this down */
201*4882a593Smuzhiyun					tvk_cfg2 {
202*4882a593Smuzhiyun						pins = "GPIO32_V2";
203*4882a593Smuzhiyun						ste,config = <&gpio_in_pd>;
204*4882a593Smuzhiyun					};
205*4882a593Smuzhiyun				};
206*4882a593Smuzhiyun			};
207*4882a593Smuzhiyun			synaptics {
208*4882a593Smuzhiyun				synaptics_tvk_mode: synaptics_tvk {
209*4882a593Smuzhiyun					/* Touchscreen uses GPIO 84 */
210*4882a593Smuzhiyun					tvk_cfg1 {
211*4882a593Smuzhiyun						pins = "GPIO84_C2";
212*4882a593Smuzhiyun						ste,config = <&gpio_in_pu>;
213*4882a593Smuzhiyun					};
214*4882a593Smuzhiyun				};
215*4882a593Smuzhiyun			};
216*4882a593Smuzhiyun		};
217*4882a593Smuzhiyun	};
218*4882a593Smuzhiyun};
219