1// SPDX-License-Identifier: GPL-2.0
2#include "qcom-apq8064-v2.0.dtsi"
3#include <dt-bindings/gpio/gpio.h>
4#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
5
6/ {
7	model = "Qualcomm APQ8064/IFC6410";
8	compatible = "qcom,apq8064-ifc6410", "qcom,apq8064";
9
10	aliases {
11		serial0 = &gsbi7_serial;
12		serial1 = &gsbi6_serial;
13		i2c0 = &gsbi1_i2c;
14		i2c1 = &gsbi2_i2c;
15		i2c2 = &gsbi3_i2c;
16		i2c3 = &gsbi4_i2c;
17		spi0 = &gsbi5_spi;
18	};
19
20	chosen {
21		stdout-path = "serial0:115200n8";
22	};
23
24	pwrseq {
25		compatible = "simple-bus";
26
27		sdcc4_pwrseq: sdcc4_pwrseq {
28			pinctrl-names = "default";
29			pinctrl-0 = <&wlan_default_gpios>;
30			compatible = "mmc-pwrseq-simple";
31			reset-gpios = <&pm8921_gpio 43 GPIO_ACTIVE_LOW>;
32		};
33	};
34
35	leds {
36		compatible = "gpio-leds";
37		pinctrl-names = "default";
38		pinctrl-0 = <&notify_led>;
39
40		led@1 {
41			label = "apq8064:green:user1";
42			gpios = <&pm8921_gpio 18 GPIO_ACTIVE_HIGH>;
43			default-state = "on";
44		};
45	};
46
47	hdmi-out {
48		compatible = "hdmi-connector";
49		type = "d";
50
51		port {
52			hdmi_con: endpoint {
53				remote-endpoint = <&hdmi_out>;
54			};
55		};
56	};
57
58	soc {
59		pinctrl@800000 {
60			card_detect: card_detect {
61				mux {
62					pins = "gpio26";
63					function = "gpio";
64					bias-disable;
65				};
66			};
67
68			pcie_pins: pcie_pinmux {
69				mux {
70					pins = "gpio27";
71					function = "gpio";
72				};
73				conf {
74					pins = "gpio27";
75					drive-strength = <12>;
76					bias-disable;
77				};
78			};
79		};
80
81		rpm@108000 {
82			regulators {
83				vin_lvs1_3_6-supply = <&pm8921_s4>;
84				vin_lvs2-supply = <&pm8921_s1>;
85				vin_lvs4_5_7-supply = <&pm8921_s4>;
86
87				vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
88				vdd_l24-supply = <&pm8921_s1>;
89				vdd_l25-supply = <&pm8921_s1>;
90				vdd_l26-supply = <&pm8921_s7>;
91				vdd_l27-supply = <&pm8921_s7>;
92				vdd_l28-supply = <&pm8921_s7>;
93
94
95				/* Buck SMPS */
96				s1 {
97					regulator-always-on;
98					regulator-min-microvolt = <1225000>;
99					regulator-max-microvolt = <1225000>;
100					qcom,switch-mode-frequency = <3200000>;
101					bias-pull-down;
102				};
103
104				s3 {
105					regulator-min-microvolt = <1000000>;
106					regulator-max-microvolt = <1400000>;
107					qcom,switch-mode-frequency = <4800000>;
108				};
109
110				s4 {
111					regulator-min-microvolt	= <1800000>;
112					regulator-max-microvolt	= <1800000>;
113					qcom,switch-mode-frequency = <3200000>;
114				};
115
116				s7 {
117					regulator-min-microvolt = <1300000>;
118					regulator-max-microvolt = <1300000>;
119					qcom,switch-mode-frequency = <3200000>;
120				};
121
122				l3 {
123					regulator-min-microvolt = <3050000>;
124					regulator-max-microvolt = <3300000>;
125					bias-pull-down;
126				};
127
128				l4 {
129					regulator-min-microvolt = <1000000>;
130					regulator-max-microvolt = <1800000>;
131					bias-pull-down;
132				};
133
134				l5 {
135					regulator-min-microvolt = <2750000>;
136					regulator-max-microvolt = <3000000>;
137					bias-pull-down;
138				};
139
140				l6 {
141					regulator-min-microvolt = <2950000>;
142					regulator-max-microvolt = <2950000>;
143					bias-pull-down;
144				};
145
146				l23 {
147					regulator-min-microvolt = <1700000>;
148					regulator-max-microvolt = <1900000>;
149					bias-pull-down;
150				};
151
152				lvs1 {
153					bias-pull-down;
154				};
155
156				lvs6 {
157					bias-pull-down;
158				};
159			};
160		};
161
162		ext_3p3v: regulator-fixed@1 {
163			compatible = "regulator-fixed";
164			regulator-min-microvolt = <3300000>;
165			regulator-max-microvolt = <3300000>;
166			regulator-name = "ext_3p3v";
167			regulator-type = "voltage";
168			startup-delay-us = <0>;
169			gpio = <&tlmm_pinmux 77 GPIO_ACTIVE_HIGH>;
170			enable-active-high;
171			regulator-boot-on;
172		};
173
174		gsbi3: gsbi@16200000 {
175			status = "okay";
176			qcom,mode = <GSBI_PROT_I2C>;
177			i2c@16280000 {
178				status = "okay";
179			};
180		};
181
182		gsbi@16300000 {
183			status = "okay";
184			qcom,mode = <GSBI_PROT_I2C>;
185			/* CAM I2C MIPI-CSI connector */
186			i2c@16380000 {
187				status = "okay";
188			};
189		};
190
191		gsbi@12440000 {
192			status = "okay";
193			qcom,mode = <GSBI_PROT_I2C>;
194
195			i2c@12460000 {
196				status = "okay";
197				clock-frequency = <200000>;
198
199				eeprom@52 {
200					compatible = "atmel,24c128";
201					reg = <0x52>;
202					pagesize = <32>;
203				};
204			};
205		};
206
207		gsbi@1a200000 {
208			qcom,mode = <GSBI_PROT_SPI>;
209			status = "okay";
210			spi4: spi@1a280000 {
211				status = "okay";
212				num-cs = <1>;
213				cs-gpios = <&tlmm_pinmux 53 0>;
214			};
215		};
216
217		gsbi@16500000 {
218			status = "okay";
219			qcom,mode = <GSBI_PROT_UART_W_FC>;
220
221			serial@16540000 {
222				status = "okay";
223				pinctrl-names = "default";
224				pinctrl-0 = <&gsbi6_uart_4pins>;
225			};
226		};
227
228		gsbi@16600000 {
229			status = "okay";
230			qcom,mode = <GSBI_PROT_I2C_UART>;
231			serial@16640000 {
232				status = "okay";
233				pinctrl-names = "default";
234				pinctrl-0 = <&gsbi7_uart_2pins>;
235			};
236		};
237
238		sata_phy0: phy@1b400000 {
239			status = "okay";
240		};
241
242		sata0: sata@29000000 {
243			status		= "okay";
244			target-supply	= <&pm8921_s4>;
245		};
246
247		/* OTG */
248		usb@12500000 {
249			status = "okay";
250			dr_mode = "otg";
251			ulpi {
252				phy {
253					v3p3-supply = <&pm8921_l3>;
254					v1p8-supply = <&pm8921_l4>;
255				};
256			};
257		};
258
259		usb@12520000 {
260			status = "okay";
261			dr_mode = "host";
262			ulpi {
263				phy {
264					v3p3-supply = <&pm8921_l3>;
265					v1p8-supply = <&pm8921_l23>;
266				};
267			};
268		};
269
270		usb@12530000 {
271			status = "okay";
272			dr_mode = "host";
273			ulpi {
274				phy {
275					v3p3-supply = <&pm8921_l3>;
276					v1p8-supply = <&pm8921_l23>;
277				};
278			};
279		};
280
281		pci@1b500000 {
282			status = "okay";
283			vdda-supply = <&pm8921_s3>;
284			vdda_phy-supply = <&pm8921_lvs6>;
285			vdda_refclk-supply = <&ext_3p3v>;
286			pinctrl-0 = <&pcie_pins>;
287			pinctrl-names = "default";
288			perst-gpio = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
289		};
290
291		qcom,ssbi@500000 {
292			pmic@0 {
293				gpio@150 {
294					wlan_default_gpios: wlan-gpios {
295						pios {
296							pins = "gpio43";
297							function = "normal";
298							bias-disable;
299							power-source = <PM8921_GPIO_S4>;
300						};
301					};
302
303					notify_led: nled {
304						pios {
305							pins = "gpio18";
306							function = "normal";
307							bias-disable;
308							power-source = <PM8921_GPIO_S4>;
309						};
310					};
311				};
312			};
313		};
314
315		amba {
316			/* eMMC */
317			sdcc1: sdcc@12400000 {
318				status = "okay";
319				vmmc-supply = <&pm8921_l5>;
320				vqmmc-supply = <&pm8921_s4>;
321			};
322
323			/* External micro SD card */
324			sdcc3: sdcc@12180000 {
325				status = "okay";
326				vmmc-supply = <&pm8921_l6>;
327				pinctrl-names	= "default";
328				pinctrl-0	= <&card_detect>;
329				cd-gpios	= <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
330			};
331			/* WLAN */
332			sdcc4: sdcc@121c0000 {
333				status = "okay";
334				vmmc-supply = <&ext_3p3v>;
335				vqmmc-supply = <&pm8921_lvs1>;
336				mmc-pwrseq = <&sdcc4_pwrseq>;
337			};
338		};
339
340		hdmi-tx@4a00000 {
341			status = "okay";
342
343			core-vdda-supply = <&pm8921_hdmi_switch>;
344			hdmi-mux-supply = <&ext_3p3v>;
345
346			hpd-gpios = <&tlmm_pinmux 72 GPIO_ACTIVE_HIGH>;
347
348			ports {
349				port@0 {
350					endpoint {
351						remote-endpoint = <&mdp_dtv_out>;
352					};
353				};
354
355				port@1 {
356					endpoint {
357						remote-endpoint = <&hdmi_con>;
358					};
359				};
360			};
361		};
362
363		hdmi-phy@4a00400 {
364			status = "okay";
365
366			core-vdda-supply = <&pm8921_hdmi_switch>;
367		};
368
369		mdp@5100000 {
370			status = "okay";
371
372			ports {
373				port@3 {
374					endpoint {
375						remote-endpoint = <&hdmi_in>;
376					};
377				};
378			};
379		};
380	};
381};
382