1// SPDX-License-Identifier: GPL-2.0+ OR MIT
2/*
3 * Device Tree Source for Sierra Wireless WP8548 Module
4 *
5 * Copyright (C) 2016 BayLibre, SAS.
6 * Author : Neil Armstrong <narmstrong@baylibre.com>
7 */
8
9#include "qcom-mdm9615.dtsi"
10#include "pm8018.dtsi"
11
12/ {
13	model = "Sierra Wireless WP8548 Module";
14	compatible = "swir,wp8548", "qcom,mdm9615";
15
16	memory@48000000 {
17		device_type = "memory";
18		reg = <0x48000000 0x7F00000>;
19	};
20};
21
22&msmgpio {
23	pinctrl-0 = <&reset_out_pins>;
24	pinctrl-names = "default";
25
26	gsbi3_pins: gsbi3-state {
27		gsbi3-pins {
28			pins = "gpio8", "gpio9", "gpio10", "gpio11";
29			function = "gsbi3";
30			drive-strength = <8>;
31			bias-disable;
32		};
33	};
34
35	gsbi4_pins: gsbi4-state {
36		gsbi4-pins {
37			pins = "gpio12", "gpio13", "gpio14", "gpio15";
38			function = "gsbi4";
39			drive-strength = <8>;
40			bias-disable;
41		};
42	};
43
44	gsbi5_i2c_pins: gsbi5-i2c-state {
45		sda-pins {
46			pins = "gpio16";
47			function = "gsbi5_i2c";
48			drive-strength = <8>;
49			bias-disable;
50		};
51
52		scl-pins {
53			pins = "gpio17";
54			function = "gsbi5_i2c";
55			drive-strength = <2>;
56			bias-disable;
57		};
58	};
59
60	gsbi5_uart_pins: gsbi5-uart-state {
61		gsbi5-uart-pins {
62			pins = "gpio18", "gpio19";
63			function = "gsbi5_uart";
64			drive-strength = <8>;
65			bias-disable;
66		};
67	};
68
69	reset_out_pins: reset-out-state {
70		reset-out-pins {
71			pins = "gpio66";
72			function = "gpio";
73			drive-strength = <2>;
74			bias-pull-up;
75			output-high;
76		};
77	};
78};
79
80&pm8018 {
81	interrupts-extended = <&intc GIC_PPI 226 IRQ_TYPE_LEVEL_HIGH>;
82};
83
84&pm8018_gpio {
85	usb_vbus_5v_pins: usb-vbus-5v-state {
86		pins = "gpio4";
87		function = "normal";
88		output-high;
89		bias-disable;
90		qcom,drive-strength = <1>;
91		power-source = <2>;
92	};
93};
94
95&gsbi3 {
96	status = "okay";
97	qcom,mode = <GSBI_PROT_SPI>;
98};
99
100&gsbi3_spi {
101	status = "okay";
102	pinctrl-0 = <&gsbi3_pins>;
103	pinctrl-names = "default";
104	assigned-clocks = <&gcc GSBI3_QUP_CLK>;
105	assigned-clock-rates = <24000000>;
106};
107
108&gsbi4 {
109	status = "okay";
110	qcom,mode = <GSBI_PROT_UART_W_FC>;
111};
112
113&gsbi4_serial {
114	status = "okay";
115	pinctrl-0 = <&gsbi4_pins>;
116	pinctrl-names = "default";
117};
118
119&gsbi5 {
120	status = "okay";
121	qcom,mode = <GSBI_PROT_I2C_UART>;
122};
123
124&gsbi5_i2c {
125	status = "okay";
126	clock-frequency = <200000>;
127	pinctrl-0 = <&gsbi5_i2c_pins>;
128	pinctrl-names = "default";
129};
130
131&gsbi5_serial {
132	status = "okay";
133	pinctrl-0 = <&gsbi5_uart_pins>;
134	pinctrl-names = "default";
135};
136
137&rpm {
138	regulators {
139		compatible = "qcom,rpm-pm8018-regulators";
140
141		vin_lvs1-supply = <&pm8018_s3>;
142
143		vdd_l7-supply = <&pm8018_s4>;
144		vdd_l8-supply = <&pm8018_s3>;
145		vdd_l9_l10_l11_l12-supply = <&pm8018_s5>;
146
147		/* Buck SMPS */
148		pm8018_s1: s1 {
149			regulator-min-microvolt = <500000>;
150			regulator-max-microvolt = <1150000>;
151			qcom,switch-mode-frequency = <1600000>;
152			bias-pull-down;
153		};
154
155		pm8018_s2: s2 {
156			regulator-min-microvolt = <1225000>;
157			regulator-max-microvolt = <1300000>;
158			qcom,switch-mode-frequency = <1600000>;
159			bias-pull-down;
160		};
161
162		pm8018_s3: s3 {
163			regulator-always-on;
164			regulator-min-microvolt = <1800000>;
165			regulator-max-microvolt = <1800000>;
166			qcom,switch-mode-frequency = <1600000>;
167			bias-pull-down;
168		};
169
170		pm8018_s4: s4 {
171			regulator-min-microvolt = <2100000>;
172			regulator-max-microvolt = <2200000>;
173			qcom,switch-mode-frequency = <1600000>;
174			bias-pull-down;
175		};
176
177		pm8018_s5: s5 {
178			regulator-always-on;
179			regulator-min-microvolt = <1350000>;
180			regulator-max-microvolt = <1350000>;
181			qcom,switch-mode-frequency = <1600000>;
182			bias-pull-down;
183		};
184
185		/* PMOS LDO */
186		pm8018_l2: l2 {
187			regulator-always-on;
188			regulator-min-microvolt = <1800000>;
189			regulator-max-microvolt = <1800000>;
190			bias-pull-down;
191		};
192
193		pm8018_l3: l3 {
194			regulator-always-on;
195			regulator-min-microvolt = <1800000>;
196			regulator-max-microvolt = <1800000>;
197			bias-pull-down;
198		};
199
200		pm8018_l4: l4 {
201			regulator-min-microvolt = <3300000>;
202			regulator-max-microvolt = <3300000>;
203			bias-pull-down;
204		};
205
206		pm8018_l5: l5 {
207			regulator-min-microvolt = <2850000>;
208			regulator-max-microvolt = <2850000>;
209			bias-pull-down;
210		};
211
212		pm8018_l6: l6 {
213			regulator-min-microvolt = <1800000>;
214			regulator-max-microvolt = <2850000>;
215			bias-pull-down;
216		};
217
218		pm8018_l7: l7 {
219			regulator-min-microvolt = <1850000>;
220			regulator-max-microvolt = <1900000>;
221			bias-pull-down;
222		};
223
224		pm8018_l8: l8 {
225			regulator-min-microvolt = <1200000>;
226			regulator-max-microvolt = <1200000>;
227			bias-pull-down;
228		};
229
230		pm8018_l9: l9 {
231			regulator-min-microvolt = <750000>;
232			regulator-max-microvolt = <1150000>;
233			bias-pull-down;
234		};
235
236		pm8018_l10: l10 {
237			regulator-min-microvolt = <1050000>;
238			regulator-max-microvolt = <1050000>;
239			bias-pull-down;
240		};
241
242		pm8018_l11: l11 {
243			regulator-min-microvolt = <1050000>;
244			regulator-max-microvolt = <1050000>;
245			bias-pull-down;
246		};
247
248		pm8018_l12: l12 {
249			regulator-min-microvolt = <1050000>;
250			regulator-max-microvolt = <1050000>;
251			bias-pull-down;
252		};
253
254		pm8018_l13: l13 {
255			regulator-min-microvolt = <1850000>;
256			regulator-max-microvolt = <2950000>;
257			bias-pull-down;
258		};
259
260		pm8018_l14: l14 {
261			regulator-min-microvolt = <2850000>;
262			regulator-max-microvolt = <2850000>;
263			bias-pull-down;
264		};
265
266		/* Low Voltage Switch */
267		pm8018_lvs1: lvs1 {
268			bias-pull-down;
269		};
270	};
271};
272
273&sdcc1 {
274	status = "okay";
275};
276