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