GNU Linux-libre 4.19.264-gnu1
[releases.git] / arch / arm / boot / dts / ste-href-tvk1281618.dtsi
1 /*
2  * Copyright 2012 ST-Ericsson AB
3  *
4  * The code contained herein is licensed under the GNU General Public
5  * License. You may obtain a copy of the GNU General Public License
6  * Version 2 or later at the following locations:
7  *
8  * http://www.opensource.org/licenses/gpl-license.html
9  * http://www.gnu.org/copyleft/gpl.html
10  *
11  * Device Tree for the TVK1281618 UIB
12  */
13
14 #include <dt-bindings/interrupt-controller/irq.h>
15
16 / {
17         gpio_keys {
18                 compatible = "gpio-keys";
19                 #address-cells = <1>;
20                 #size-cells = <0>;
21                 vdd-supply = <&ab8500_ldo_aux1_reg>;
22                 pinctrl-names = "default";
23                 pinctrl-0 = <&prox_tvk_mode>, <&hall_tvk_mode>;
24
25                 button@139 {
26                         /* Proximity sensor */
27                         gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>;
28                         linux,code = <11>; /* SW_FRONT_PROXIMITY */
29                         label = "SFH7741 Proximity Sensor";
30                 };
31                 button@145 {
32                         /* Hall sensor */
33                         gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
34                         linux,code = <0>; /* SW_LID */
35                         label = "HED54XXU11 Hall Effect Sensor";
36                 };
37         };
38
39         soc {
40                 i2c@80004000 {
41                         tc35893@44 {
42                                 compatible = "toshiba,tc35893";
43                                 reg = <0x44>;
44                                 interrupt-parent = <&gpio6>;
45                                 interrupts = <26 IRQ_TYPE_EDGE_RISING>;
46                                 pinctrl-names = "default";
47                                 pinctrl-0 = <&tc35893_tvk_mode>;
48
49                                 interrupt-controller;
50                                 #interrupt-cells = <1>;
51
52                                 tc3589x_gpio {
53                                         compatible = "toshiba,tc3589x-gpio";
54                                         interrupts = <0>;
55
56                                         interrupt-controller;
57                                         #interrupt-cells = <2>;
58                                         gpio-controller;
59                                         #gpio-cells = <2>;
60                                 };
61                                 tc3589x_keypad {
62                                         compatible = "toshiba,tc3589x-keypad";
63                                         interrupts = <6>;
64                                         debounce-delay-ms = <4>;
65                                         keypad,num-columns = <8>;
66                                         keypad,num-rows = <8>;
67                                         linux,no-autorepeat;
68                                         wakeup-source;
69                                         linux,keymap = <0x0301006b
70                                                         0x04010066
71                                                         0x06040072
72                                                         0x040200d7
73                                                         0x0303006a
74                                                         0x0205000e
75                                                         0x0607008b
76                                                         0x0500001c
77                                                         0x0403000b
78                                                         0x03040034
79                                                         0x05020067
80                                                         0x0305006c
81                                                         0x040500e7
82                                                         0x0005009e
83                                                         0x06020073
84                                                         0x01030039
85                                                         0x07060069
86                                                         0x050500d9>;
87                                 };
88                         };
89                 };
90                 /* Sensors mounted on this board variant */
91                 i2c@80128000 {
92                         lsm303dlh@18 {
93                                 /* Accelerometer */
94                                 compatible = "st,lsm303dlh-accel";
95                                 st,drdy-int-pin = <1>;
96                                 drive-open-drain;
97                                 reg = <0x18>;
98                                 vdd-supply = <&ab8500_ldo_aux1_reg>;
99                                 vddio-supply = <&db8500_vsmps2_reg>;
100                                 pinctrl-names = "default";
101                                 pinctrl-0 = <&accel_tvk_mode>;
102                                 /*
103                                  * These interrupts cannot be used: the other component
104                                  * ST-Micro L3D4200D gyro that is connected to the same lines
105                                  * cannot set its DRDY line to open drain, so it cannot be
106                                  * shared with other peripherals. The should be defined for
107                                  * the falling edge if they could be wired together.
108                                  *
109                                  * interrupts-extended =
110                                  * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
111                                  * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>;
112                                  */
113                         };
114                         lsm303dlh@1e {
115                                 /* Magnetometer */
116                                 compatible = "st,lsm303dlh-magn";
117                                 reg = <0x1e>;
118                                 vdd-supply = <&ab8500_ldo_aux1_reg>;
119                                 vddio-supply = <&db8500_vsmps2_reg>;
120                                 /*
121                                  * These interrupts cannot be used: the other component
122                                  * ST-Micro L3D4200D gyro that is connected to the same lines
123                                  * cannot set its DRDY line to open drain, so it cannot be
124                                  * shared with other peripherals. The should be defined for
125                                  * the falling edge if they could be wired together.
126                                  *
127                                  * interrupts-extended =
128                                  * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
129                                  * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>;
130                                  */
131                         };
132                         lis331dl@1c {
133                                 /* Accelerometer */
134                                 compatible = "st,lis331dl-accel";
135                                 st,drdy-int-pin = <1>;
136                                 reg = <0x1c>;
137                                 vdd-supply = <&ab8500_ldo_aux1_reg>;
138                                 vddio-supply = <&db8500_vsmps2_reg>;
139                                 pinctrl-names = "default";
140                                 pinctrl-0 = <&accel_tvk_mode>;
141                                 interrupt-parent = <&gpio2>;
142                                 /* INT2 would need to be open drain */
143                                 interrupts = <18 IRQ_TYPE_EDGE_RISING>,
144                                              <19 IRQ_TYPE_EDGE_RISING>;
145                         };
146                         ak8974@f {
147                                 /* Magnetometer */
148                                 compatible = "asahi-kasei,ak8974";
149                                 reg = <0x0f>;
150                                 avdd-supply = <&ab8500_ldo_aux1_reg>;
151                                 dvdd-supply = <&db8500_vsmps2_reg>;
152                                 pinctrl-names = "default";
153                                 pinctrl-0 = <&gyro_magn_tvk_mode>;
154                                 /*
155                                  * These interrupts cannot be used: the other component
156                                  * ST-Micro L3D4200D gyro that is connected to the same lines
157                                  * cannot set its DRDY line to open drain, so it cannot be
158                                  * shared with other peripherals. The should be defined for
159                                  * the falling edge if they could be wired together.
160                                  *
161                                  * interrupts-extended =
162                                  * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
163                                  * <&gpio0 31 IRQ_TYPE_EDGE_FALLING>;
164                                  */
165                         };
166                         l3g4200d@68 {
167                                 /* Gyroscope */
168                                 compatible = "st,l3g4200d-gyro";
169                                 st,drdy-int-pin = <2>;
170                                 reg = <0x68>;
171                                 vdd-supply = <&ab8500_ldo_aux1_reg>;
172                                 vddio-supply = <&db8500_vsmps2_reg>;
173                                 pinctrl-names = "default";
174                                 pinctrl-0 = <&gyro_magn_tvk_mode>;
175                                 interrupts-extended =
176                                 <&gpio1 0 IRQ_TYPE_EDGE_RISING>,
177                                 <&gpio0 31 IRQ_TYPE_EDGE_RISING>;
178                         };
179                         lsp001wm@5c {
180                                 /* Barometer/pressure sensor */
181                                 compatible = "st,lps001wp-press";
182                                 reg = <0x5c>;
183                                 vdd-supply = <&ab8500_ldo_aux1_reg>;
184                                 vddio-supply = <&db8500_vsmps2_reg>;
185                         };
186                 };
187
188                 i2c@80110000 {
189                         synaptics@4b {
190                                 /* Synaptics RMI4 TM1217 touchscreen */
191                                 compatible = "syna,rmi4-i2c";
192                                 #address-cells = <1>;
193                                 #size-cells = <0>;
194                                 reg = <0x4b>;
195                                 vdd-supply = <&ab8500_ldo_aux1_reg>;
196                                 vddio-supply = <&db8500_vsmps2_reg>;
197                                 pinctrl-names = "default";
198                                 pinctrl-0 = <&synaptics_tvk_mode>;
199                                 interrupt-parent = <&gpio2>;
200                                 interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
201
202                                 rmi-f01@1 {
203                                         reg = <0x1>;
204                                         syna,nosleep = <1>;
205                                 };
206                                 rmi-f11@11 {
207                                         reg = <0x11>;
208                                         touchscreen-inverted-x;
209                                         syna,sensor-type = <1>;
210                                 };
211                         };
212                 };
213
214                 pinctrl {
215                         /* Pull up this GPIO pin */
216                         tc35893 {
217                                 tc35893_tvk_mode: tc35893_tvk {
218                                         tvk_cfg {
219                                                 pins = "GPIO218_AH11";
220                                                 ste,config = <&gpio_in_pu>;
221                                         };
222                                 };
223                         };
224                         prox {
225                                 prox_tvk_mode: prox_tvk {
226                                         tvk_cfg {
227                                                 pins = "GPIO217_AH12";
228                                                 ste,config = <&gpio_in_pu>;
229                                         };
230                                 };
231                         };
232                         hall {
233                                 hall_tvk_mode: hall_tvk {
234                                         tvk_cfg {
235                                                 pins = "GPIO145_C13";
236                                                 ste,config = <&gpio_in_pu>;
237                                         };
238                                 };
239                         };
240                         accelerometer {
241                                 accel_tvk_mode: accel_tvk {
242                                         /* Accelerometer interrupt lines 1 & 2 */
243                                         tvk_cfg {
244                                                 pins = "GPIO82_C1", "GPIO83_D3";
245                                                 ste,config = <&gpio_in_pd>;
246                                         };
247                                 };
248                         };
249                         gyroscope {
250                                 /*
251                                  * These lines are shared between Gyroscope l3g400dh
252                                  * and AK8974 magnetometer.
253                                  */
254                                 gyro_magn_tvk_mode: gyro_magn_tvk {
255                                          /* GPIO 31 used for INT pull down the line */
256                                         tvk_cfg1 {
257                                                 pins = "GPIO31_V3";
258                                                 ste,config = <&gpio_in_pd>;
259                                         };
260                                         /* GPIO 32 used for DRDY, pull this down */
261                                         tvk_cfg2 {
262                                                 pins = "GPIO32_V2";
263                                                 ste,config = <&gpio_in_pd>;
264                                         };
265                                 };
266                         };
267                         synaptics {
268                                 synaptics_tvk_mode: synaptics_tvk {
269                                         /* Touchscreen uses GPIO 84 */
270                                         tvk_cfg1 {
271                                                 pins = "GPIO84_C2";
272                                                 ste,config = <&gpio_in_pu>;
273                                         };
274                                 };
275                         };
276                 };
277         };
278 };