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