1// SPDX-License-Identifier: GPL-2.0-only
2
3#include "msm8916-pm8916.dtsi"
4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/input/input.h>
6#include <dt-bindings/interrupt-controller/irq.h>
7
8/ {
9	aliases {
10		serial0 = &blsp1_uart2;
11	};
12
13	chosen {
14		stdout-path = "serial0";
15	};
16
17	reserved-memory {
18		/* Additional memory used by Samsung firmware modifications */
19		tz-apps@85500000 {
20			reg = <0x0 0x85500000 0x0 0xb00000>;
21			no-map;
22		};
23	};
24
25	gpio-keys {
26		compatible = "gpio-keys";
27
28		pinctrl-names = "default";
29		pinctrl-0 = <&gpio_keys_default>;
30
31		label = "GPIO Buttons";
32
33		volume-up {
34			label = "Volume Up";
35			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
36			linux,code = <KEY_VOLUMEUP>;
37		};
38
39		home {
40			label = "Home";
41			gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
42			linux,code = <KEY_HOMEPAGE>;
43		};
44	};
45
46	gpio-hall-sensor {
47		compatible = "gpio-keys";
48
49		pinctrl-names = "default";
50		pinctrl-0 = <&gpio_hall_sensor_default>;
51
52		label = "GPIO Hall Effect Sensor";
53
54		hall-sensor {
55			label = "Hall Effect Sensor";
56			gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
57			linux,input-type = <EV_SW>;
58			linux,code = <SW_LID>;
59			linux,can-disable;
60		};
61	};
62
63	reg_vdd_tsp: regulator-vdd-tsp {
64		compatible = "regulator-fixed";
65		regulator-name = "vdd_tsp";
66		regulator-min-microvolt = <3300000>;
67		regulator-max-microvolt = <3300000>;
68
69		gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>;
70		enable-active-high;
71
72		pinctrl-names = "default";
73		pinctrl-0 = <&tsp_en_default>;
74	};
75
76	i2c-muic {
77		compatible = "i2c-gpio";
78		sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
79		scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
80
81		pinctrl-names = "default";
82		pinctrl-0 = <&muic_i2c_default>;
83
84		#address-cells = <1>;
85		#size-cells = <0>;
86
87		muic: extcon@25 {
88			compatible = "siliconmitus,sm5502-muic";
89
90			reg = <0x25>;
91			interrupt-parent = <&msmgpio>;
92			interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
93
94			pinctrl-names = "default";
95			pinctrl-0 = <&muic_int_default>;
96		};
97	};
98};
99
100&blsp_i2c2 {
101	status = "okay";
102
103	accelerometer: accelerometer@10 {
104		compatible = "bosch,bmc150_accel";
105		reg = <0x10>;
106		interrupt-parent = <&msmgpio>;
107		interrupts = <115 IRQ_TYPE_EDGE_RISING>;
108
109		vdd-supply = <&pm8916_l17>;
110		vddio-supply = <&pm8916_l5>;
111
112		pinctrl-names = "default";
113		pinctrl-0 = <&accel_int_default>;
114	};
115
116	magnetometer@12 {
117		compatible = "bosch,bmc150_magn";
118		reg = <0x12>;
119
120		vdd-supply = <&pm8916_l17>;
121		vddio-supply = <&pm8916_l5>;
122	};
123};
124
125&blsp1_uart2 {
126	status = "okay";
127};
128
129&dsi0 {
130	pinctrl-names = "default", "sleep";
131	pinctrl-0 = <&mdss_default>;
132	pinctrl-1 = <&mdss_sleep>;
133};
134
135&mdss {
136	status = "okay";
137};
138
139&pm8916_resin {
140	status = "okay";
141	linux,code = <KEY_VOLUMEDOWN>;
142};
143
144&pronto {
145	status = "okay";
146};
147
148&sdhc_1 {
149	status = "okay";
150
151	pinctrl-names = "default", "sleep";
152	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
153	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
154};
155
156&sdhc_2 {
157	status = "okay";
158
159	pinctrl-names = "default", "sleep";
160	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
161	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
162
163	cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
164};
165
166&usb {
167	status = "okay";
168	extcon = <&muic>, <&muic>;
169};
170
171&usb_hs_phy {
172	extcon = <&muic>;
173};
174
175&smd_rpm_regulators {
176	vdd_l1_l2_l3-supply = <&pm8916_s3>;
177	vdd_l4_l5_l6-supply = <&pm8916_s4>;
178	vdd_l7-supply = <&pm8916_s4>;
179
180	s3 {
181		regulator-min-microvolt = <1200000>;
182		regulator-max-microvolt = <1300000>;
183	};
184
185	s4 {
186		regulator-min-microvolt = <1800000>;
187		regulator-max-microvolt = <2100000>;
188	};
189
190	l1 {
191		regulator-min-microvolt = <1225000>;
192		regulator-max-microvolt = <1225000>;
193	};
194
195	l2 {
196		regulator-min-microvolt = <1200000>;
197		regulator-max-microvolt = <1200000>;
198	};
199
200	l4 {
201		regulator-min-microvolt = <2050000>;
202		regulator-max-microvolt = <2050000>;
203	};
204
205	l5 {
206		regulator-min-microvolt = <1800000>;
207		regulator-max-microvolt = <1800000>;
208	};
209
210	l6 {
211		regulator-min-microvolt = <1800000>;
212		regulator-max-microvolt = <1800000>;
213	};
214
215	l7 {
216		regulator-min-microvolt = <1800000>;
217		regulator-max-microvolt = <1800000>;
218	};
219
220	l8 {
221		regulator-min-microvolt = <2850000>;
222		regulator-max-microvolt = <2900000>;
223	};
224
225	l9 {
226		regulator-min-microvolt = <3300000>;
227		regulator-max-microvolt = <3300000>;
228	};
229
230	l10 {
231		regulator-min-microvolt = <2700000>;
232		regulator-max-microvolt = <2800000>;
233	};
234
235	l11 {
236		regulator-min-microvolt = <1800000>;
237		regulator-max-microvolt = <2950000>;
238		regulator-allow-set-load;
239		regulator-system-load = <200000>;
240	};
241
242	l12 {
243		regulator-min-microvolt = <1800000>;
244		regulator-max-microvolt = <2950000>;
245	};
246
247	l13 {
248		regulator-min-microvolt = <3075000>;
249		regulator-max-microvolt = <3075000>;
250	};
251
252	l14 {
253		regulator-min-microvolt = <1800000>;
254		regulator-max-microvolt = <3300000>;
255	};
256
257	l15 {
258		regulator-min-microvolt = <1800000>;
259		regulator-max-microvolt = <3300000>;
260	};
261
262	l16 {
263		regulator-min-microvolt = <1800000>;
264		regulator-max-microvolt = <3300000>;
265	};
266
267	l17 {
268		regulator-min-microvolt = <2850000>;
269		regulator-max-microvolt = <2850000>;
270	};
271
272	l18 {
273		regulator-min-microvolt = <2700000>;
274		regulator-max-microvolt = <2700000>;
275	};
276};
277
278&msmgpio {
279	accel_int_default: accel-int-default {
280		pins = "gpio115";
281		function = "gpio";
282
283		drive-strength = <2>;
284		bias-disable;
285	};
286
287	gpio_keys_default: gpio-keys-default {
288		pins = "gpio107", "gpio109";
289		function = "gpio";
290
291		drive-strength = <2>;
292		bias-pull-up;
293	};
294
295	gpio_hall_sensor_default: gpio-hall-sensor-default {
296		pins = "gpio52";
297		function = "gpio";
298
299		drive-strength = <2>;
300		bias-disable;
301	};
302
303	mdss {
304		mdss_default: mdss-default {
305			pins = "gpio25";
306			function = "gpio";
307
308			drive-strength = <8>;
309			bias-disable;
310		};
311		mdss_sleep: mdss-sleep {
312			pins = "gpio25";
313			function = "gpio";
314
315			drive-strength = <2>;
316			bias-pull-down;
317		};
318	};
319
320	muic_i2c_default: muic-i2c-default {
321		pins = "gpio105", "gpio106";
322		function = "gpio";
323
324		drive-strength = <2>;
325		bias-disable;
326	};
327
328	muic_int_default: muic-int-default {
329		pins = "gpio12";
330		function = "gpio";
331
332		drive-strength = <2>;
333		bias-disable;
334	};
335
336	tsp_en_default: tsp-en-default {
337		pins = "gpio73";
338		function = "gpio";
339
340		drive-strength = <2>;
341		bias-disable;
342	};
343};
344