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