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		pinctrl-names = "default";
110		pinctrl-0 = <&accel_int_default>;
111	};
112
113	magnetometer@12 {
114		compatible = "bosch,bmc150_magn";
115		reg = <0x12>;
116	};
117};
118
119&blsp1_uart2 {
120	status = "okay";
121};
122
123&dsi0 {
124	pinctrl-names = "default", "sleep";
125	pinctrl-0 = <&mdss_default>;
126	pinctrl-1 = <&mdss_sleep>;
127};
128
129&pm8916_resin {
130	status = "okay";
131	linux,code = <KEY_VOLUMEDOWN>;
132};
133
134&pronto {
135	status = "okay";
136};
137
138&sdhc_1 {
139	status = "okay";
140
141	pinctrl-names = "default", "sleep";
142	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
143	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
144};
145
146&sdhc_2 {
147	status = "okay";
148
149	pinctrl-names = "default", "sleep";
150	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
151	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
152
153	cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
154};
155
156&usb {
157	status = "okay";
158	extcon = <&muic>, <&muic>;
159};
160
161&usb_hs_phy {
162	extcon = <&muic>;
163};
164
165&smd_rpm_regulators {
166	vdd_l1_l2_l3-supply = <&pm8916_s3>;
167	vdd_l4_l5_l6-supply = <&pm8916_s4>;
168	vdd_l7-supply = <&pm8916_s4>;
169
170	s3 {
171		regulator-min-microvolt = <1200000>;
172		regulator-max-microvolt = <1300000>;
173	};
174
175	s4 {
176		regulator-min-microvolt = <1800000>;
177		regulator-max-microvolt = <2100000>;
178	};
179
180	l1 {
181		regulator-min-microvolt = <1225000>;
182		regulator-max-microvolt = <1225000>;
183	};
184
185	l2 {
186		regulator-min-microvolt = <1200000>;
187		regulator-max-microvolt = <1200000>;
188	};
189
190	l4 {
191		regulator-min-microvolt = <2050000>;
192		regulator-max-microvolt = <2050000>;
193	};
194
195	l5 {
196		regulator-min-microvolt = <1800000>;
197		regulator-max-microvolt = <1800000>;
198	};
199
200	l6 {
201		regulator-min-microvolt = <1800000>;
202		regulator-max-microvolt = <1800000>;
203	};
204
205	l7 {
206		regulator-min-microvolt = <1800000>;
207		regulator-max-microvolt = <1800000>;
208	};
209
210	l8 {
211		regulator-min-microvolt = <2850000>;
212		regulator-max-microvolt = <2900000>;
213	};
214
215	l9 {
216		regulator-min-microvolt = <3300000>;
217		regulator-max-microvolt = <3300000>;
218	};
219
220	l10 {
221		regulator-min-microvolt = <2700000>;
222		regulator-max-microvolt = <2800000>;
223	};
224
225	l11 {
226		regulator-min-microvolt = <1800000>;
227		regulator-max-microvolt = <2950000>;
228		regulator-allow-set-load;
229		regulator-system-load = <200000>;
230	};
231
232	l12 {
233		regulator-min-microvolt = <1800000>;
234		regulator-max-microvolt = <2950000>;
235	};
236
237	l13 {
238		regulator-min-microvolt = <3075000>;
239		regulator-max-microvolt = <3075000>;
240	};
241
242	l14 {
243		regulator-min-microvolt = <1800000>;
244		regulator-max-microvolt = <3300000>;
245	};
246
247	l15 {
248		regulator-min-microvolt = <1800000>;
249		regulator-max-microvolt = <3300000>;
250	};
251
252	l16 {
253		regulator-min-microvolt = <1800000>;
254		regulator-max-microvolt = <3300000>;
255	};
256
257	l17 {
258		regulator-min-microvolt = <2850000>;
259		regulator-max-microvolt = <2850000>;
260	};
261
262	l18 {
263		regulator-min-microvolt = <2700000>;
264		regulator-max-microvolt = <2700000>;
265	};
266};
267
268&msmgpio {
269	accel_int_default: accel-int-default {
270		pins = "gpio115";
271		function = "gpio";
272
273		drive-strength = <2>;
274		bias-disable;
275	};
276
277	gpio_keys_default: gpio-keys-default {
278		pins = "gpio107", "gpio109";
279		function = "gpio";
280
281		drive-strength = <2>;
282		bias-pull-up;
283	};
284
285	gpio_hall_sensor_default: gpio-hall-sensor-default {
286		pins = "gpio52";
287		function = "gpio";
288
289		drive-strength = <2>;
290		bias-disable;
291	};
292
293	mdss {
294		mdss_default: mdss-default {
295			pins = "gpio25";
296			function = "gpio";
297
298			drive-strength = <8>;
299			bias-disable;
300		};
301		mdss_sleep: mdss-sleep {
302			pins = "gpio25";
303			function = "gpio";
304
305			drive-strength = <2>;
306			bias-pull-down;
307		};
308	};
309
310	muic_i2c_default: muic-i2c-default {
311		pins = "gpio105", "gpio106";
312		function = "gpio";
313
314		drive-strength = <2>;
315		bias-disable;
316	};
317
318	muic_int_default: muic-int-default {
319		pins = "gpio12";
320		function = "gpio";
321
322		drive-strength = <2>;
323		bias-disable;
324	};
325
326	tsp_en_default: tsp-en-default {
327		pins = "gpio73";
328		function = "gpio";
329
330		drive-strength = <2>;
331		bias-disable;
332	};
333};
334