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
12#include <dt-bindings/interrupt-controller/irq.h>
13
14/ {
15	gpio_keys {
16		compatible = "gpio-keys";
17		#address-cells = <1>;
18		#size-cells = <0>;
19		vdd-supply = <&ab8500_ldo_aux1_reg>;
20		pinctrl-names = "default";
21		pinctrl-0 = <&prox_stuib_mode>, <&hall_stuib_mode>;
22
23		button@139 {
24			/* Proximity sensor */
25			gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>;
26			linux,code = <11>; /* SW_FRONT_PROXIMITY */
27			label = "SFH7741 Proximity Sensor";
28		};
29		button@145 {
30			/* Hall sensor */
31			gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
32			linux,code = <0>; /* SW_LID */
33			label = "HED54XXU11 Hall Effect Sensor";
34		};
35	};
36
37	soc {
38		i2c@80004000 {
39			stmpe1601: stmpe1601@40 {
40				compatible = "st,stmpe1601";
41				reg = <0x40>;
42				interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
43				interrupt-parent = <&gpio6>;
44				interrupt-controller;
45				vcc-supply = <&db8500_vsmps2_reg>;
46				vio-supply = <&db8500_vsmps2_reg>;
47
48				wakeup-source;
49				st,autosleep-timeout = <1024>;
50
51				stmpe_keypad {
52					compatible = "st,stmpe-keypad";
53
54					debounce-interval = <64>;
55					st,scan-count = <8>;
56					st,no-autorepeat;
57
58					linux,keymap = <0x205006b
59							0x4010074
60							0x3050072
61							0x1030004
62							0x502006a
63							0x500000a
64							0x5008b
65							0x706001c
66							0x405000b
67							0x6070003
68							0x3040067
69							0x303006c
70							0x60400e7
71							0x602009e
72							0x4020073
73							0x5050002
74							0x4030069
75							0x3020008>;
76				};
77			};
78		};
79
80		/* Sensors mounted on this board variant */
81		i2c@80128000 {
82			lis331dl@1c {
83				/* Accelerometer */
84				compatible = "st,lis331dl-accel";
85				st,drdy-int-pin = <1>;
86				reg = <0x1c>;
87				vdd-supply = <&ab8500_ldo_aux1_reg>;
88				vddio-supply = <&db8500_vsmps2_reg>;
89				pinctrl-names = "default";
90				pinctrl-0 = <&accel_stuib_mode>;
91				interrupt-parent = <&gpio2>;
92				interrupts = <18 IRQ_TYPE_EDGE_RISING>,
93					     <19 IRQ_TYPE_EDGE_RISING>;
94			};
95			ak8974@f {
96				/* Magnetometer */
97				compatible = "asahi-kasei,ak8974";
98				reg = <0x0f>;
99				vdd-supply = <&ab8500_ldo_aux1_reg>;
100				vddio-supply = <&db8500_vsmps2_reg>;
101				pinctrl-names = "default";
102				pinctrl-0 = <&magneto_stuib_mode>;
103				interrupt-parent = <&gpio1>;
104				interrupts = <0 IRQ_TYPE_EDGE_RISING>;
105			};
106		};
107
108		i2c@80110000 {
109			bu21013_tp@5c {
110				compatible = "rohm,bu21013_tp";
111				reg = <0x5c>;
112				avdd-supply = <&ab8500_ldo_aux1_reg>;
113
114				rohm,touch-max-x = <384>;
115				rohm,touch-max-y = <704>;
116				rohm,flip-y;
117				pinctrl-names = "default";
118				pinctrl-0 = <&touch_rohm_mode>;
119			};
120
121			bu21013_tp@5d {
122				compatible = "rohm,bu21013_tp";
123				reg = <0x5d>;
124				avdd-supply = <&ab8500_ldo_aux1_reg>;
125
126				rohm,touch-max-x = <384>;
127				rohm,touch-max-y = <704>;
128				rohm,flip-y;
129				pinctrl-names = "default";
130				pinctrl-0 = <&touch_rohm_mode>;
131			};
132		};
133
134		pinctrl {
135			prox {
136				prox_stuib_mode: prox_stuib {
137					stuib_cfg {
138						pins = "GPIO217_AH12";
139						ste,config = <&gpio_in_pu>;
140					};
141				};
142			};
143			hall {
144				hall_stuib_mode: stuib_tvk {
145					stuib_cfg {
146						pins = "GPIO145_C13";
147						ste,config = <&gpio_in_pu>;
148					};
149				};
150			};
151			accelerometer {
152				accel_stuib_mode: accel_stuib {
153					/* Accelerometer interrupt lines 1 & 2 */
154					stuib_cfg {
155						pins = "GPIO82_C1", "GPIO83_D3";
156						ste,config = <&gpio_in_pu>;
157					};
158				};
159			};
160			magnetometer {
161				magneto_stuib_mode: magneto_stuib {
162					/* Magnetometer uses GPIO 31 and 32, pull these up/down respectively */
163					stuib_cfg1 {
164						pins = "GPIO31_V3";
165						ste,config = <&gpio_in_pu>;
166					};
167					stuib_cfg2 {
168						pins = "GPIO32_V2";
169						ste,config = <&gpio_in_pd>;
170					};
171				};
172			};
173			touch {
174				touch_rohm_mode: touch_rohm {
175					/*
176					 * ROHM touch screen uses GPIO 143 for
177					 * RST1, GPIO 146 for RST2 and
178					 * GPIO 67 for interrupts. Pull-up
179					 * the IRQ line and drive both
180					 * reset signals low.
181					 */
182					stuib_cfg1 {
183						pins = "GPIO143_D12", "GPIO146_D13";
184						ste,config = <&gpio_out_lo>;
185					};
186					stuib_cfg2 {
187						pins = "GPIO67_G2";
188						ste,config = <&gpio_in_pu>;
189					};
190				};
191			};
192		};
193	};
194};
195