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