blob: 3c9f2f068c2f2387ea4b8927782f87eb72f9ba67 [file] [log] [blame]
Linus Walleij9c19cfa2013-09-26 15:34:02 +02001/*
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/ {
Linus Walleij1a780d42013-11-15 13:43:02 +010017 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 */
Linus Walleij1b1e8e02016-03-24 15:29:30 +010027 gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>;
Linus Walleij1a780d42013-11-15 13:43:02 +010028 linux,code = <11>; /* SW_FRONT_PROXIMITY */
29 label = "SFH7741 Proximity Sensor";
30 };
31 button@145 {
32 /* Hall sensor */
Linus Walleij1b1e8e02016-03-24 15:29:30 +010033 gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
Linus Walleij1a780d42013-11-15 13:43:02 +010034 linux,code = <0>; /* SW_LID */
35 label = "HED54XXU11 Hall Effect Sensor";
36 };
37 };
38
Linus Walleij9c19cfa2013-09-26 15:34:02 +020039 soc {
Linus Walleij84919b92013-10-03 10:18:36 +020040 i2c@80004000 {
Linus Walleij7e0a51a2013-10-15 23:00:10 +020041 tc35893@44 {
42 compatible = "toshiba,tc35893";
Linus Walleij84919b92013-10-03 10:18:36 +020043 reg = <0x44>;
44 interrupt-parent = <&gpio6>;
45 interrupts = <26 IRQ_TYPE_EDGE_RISING>;
Linus Walleija45cb692013-11-13 14:57:49 +010046 pinctrl-names = "default";
47 pinctrl-0 = <&tc35893_tvk_mode>;
Linus Walleij84919b92013-10-03 10:18:36 +020048
49 interrupt-controller;
Linus Walleij7e0a51a2013-10-15 23:00:10 +020050 #interrupt-cells = <1>;
Linus Walleij84919b92013-10-03 10:18:36 +020051
52 tc3589x_gpio {
Linus Walleij7e0a51a2013-10-15 23:00:10 +020053 compatible = "toshiba,tc3589x-gpio";
54 interrupts = <0>;
Linus Walleij84919b92013-10-03 10:18:36 +020055
56 interrupt-controller;
57 #interrupt-cells = <2>;
58 gpio-controller;
59 #gpio-cells = <2>;
60 };
Linus Walleij7e0a51a2013-10-15 23:00:10 +020061 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;
Sudeep Holla506822e2015-10-21 11:10:15 +010068 wakeup-source;
Linus Walleij7e0a51a2013-10-15 23:00:10 +020069 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 };
Linus Walleij84919b92013-10-03 10:18:36 +020088 };
89 };
Linus Walleijd0e3bc82014-04-12 17:13:23 +020090 /* 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>;
Linus Walleij7ba5dd52016-02-05 14:00:00 +010096 drive-open-drain;
Linus Walleijd0e3bc82014-04-12 17:13:23 +020097 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>;
Linus Walleij83919ef2016-07-04 15:10:57 +0200102 /*
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 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200113 };
Linus Walleij93deea92015-04-29 14:08:38 +0200114 lsm303dlh@1e {
Linus Walleij83919ef2016-07-04 15:10:57 +0200115 /* Magnetometer */
Linus Walleij93deea92015-04-29 14:08:38 +0200116 compatible = "st,lsm303dlh-magn";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200117 reg = <0x1e>;
118 vdd-supply = <&ab8500_ldo_aux1_reg>;
119 vddio-supply = <&db8500_vsmps2_reg>;
Linus Walleij83919ef2016-07-04 15:10:57 +0200120 /*
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 */
Linus Walleij2f23cda2015-11-13 15:00:03 +0100131 };
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>;
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200139 pinctrl-names = "default";
Linus Walleij2f23cda2015-11-13 15:00:03 +0100140 pinctrl-0 = <&accel_tvk_mode>;
141 interrupt-parent = <&gpio2>;
Linus Walleij83919ef2016-07-04 15:10:57 +0200142 /* INT2 would need to be open drain */
143 interrupts = <18 IRQ_TYPE_EDGE_RISING>,
144 <19 IRQ_TYPE_EDGE_RISING>;
Linus Walleij2f23cda2015-11-13 15:00:03 +0100145 };
146 ak8974@0f {
147 /* Magnetometer */
148 compatible = "asahi-kasei,ak8974";
149 reg = <0x0f>;
Linus Walleij83919ef2016-07-04 15:10:57 +0200150 avdd-supply = <&ab8500_ldo_aux1_reg>;
151 dvdd-supply = <&db8500_vsmps2_reg>;
Linus Walleij2f23cda2015-11-13 15:00:03 +0100152 pinctrl-names = "default";
153 pinctrl-0 = <&gyro_magn_tvk_mode>;
Linus Walleij83919ef2016-07-04 15:10:57 +0200154 /*
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 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200165 };
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>;
Linus Walleij2f23cda2015-11-13 15:00:03 +0100173 pinctrl-names = "default";
174 pinctrl-0 = <&gyro_magn_tvk_mode>;
Linus Walleij83919ef2016-07-04 15:10:57 +0200175 interrupts-extended =
176 <&gpio1 0 IRQ_TYPE_EDGE_RISING>,
177 <&gpio0 31 IRQ_TYPE_EDGE_RISING>;
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200178 };
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 };
Linus Walleij7ad86d62016-02-22 09:33:26 +0100187
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
Linus Walleija45cb692013-11-13 14:57:49 +0100214 pinctrl {
215 /* Pull up this GPIO pin */
216 tc35893 {
217 tc35893_tvk_mode: tc35893_tvk {
218 tvk_cfg {
Linus Walleij1637d482014-09-30 12:16:25 +0200219 pins = "GPIO218_AH11";
Linus Walleija45cb692013-11-13 14:57:49 +0100220 ste,config = <&gpio_in_pu>;
221 };
222 };
223 };
Linus Walleij1a780d42013-11-15 13:43:02 +0100224 prox {
225 prox_tvk_mode: prox_tvk {
226 tvk_cfg {
Linus Walleij1637d482014-09-30 12:16:25 +0200227 pins = "GPIO217_AH12";
Linus Walleij1a780d42013-11-15 13:43:02 +0100228 ste,config = <&gpio_in_pu>;
229 };
230 };
231 };
232 hall {
233 hall_tvk_mode: hall_tvk {
234 tvk_cfg {
Linus Walleij1637d482014-09-30 12:16:25 +0200235 pins = "GPIO145_C13";
Linus Walleij1a780d42013-11-15 13:43:02 +0100236 ste,config = <&gpio_in_pu>;
237 };
238 };
239 };
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200240 accelerometer {
241 accel_tvk_mode: accel_tvk {
242 /* Accelerometer interrupt lines 1 & 2 */
243 tvk_cfg {
Linus Walleij1637d482014-09-30 12:16:25 +0200244 pins = "GPIO82_C1", "GPIO83_D3";
Linus Walleij83919ef2016-07-04 15:10:57 +0200245 ste,config = <&gpio_in_pd>;
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200246 };
247 };
248 };
Linus Walleij2f23cda2015-11-13 15:00:03 +0100249 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 */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200256 tvk_cfg1 {
Linus Walleij1637d482014-09-30 12:16:25 +0200257 pins = "GPIO31_V3";
Linus Walleij2f23cda2015-11-13 15:00:03 +0100258 ste,config = <&gpio_in_pd>;
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200259 };
Linus Walleij2f23cda2015-11-13 15:00:03 +0100260 /* GPIO 32 used for DRDY, pull this down */
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200261 tvk_cfg2 {
Linus Walleij1637d482014-09-30 12:16:25 +0200262 pins = "GPIO32_V2";
Linus Walleijd0e3bc82014-04-12 17:13:23 +0200263 ste,config = <&gpio_in_pd>;
264 };
265 };
266 };
Linus Walleij7ad86d62016-02-22 09:33:26 +0100267 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 };
Linus Walleija45cb692013-11-13 14:57:49 +0100276 };
Linus Walleij9c19cfa2013-09-26 15:34:02 +0200277 };
278};