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