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