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