1// SPDX-License-Identifier: GPL-2.0
2#include "qcom-apq8064-v2.0.dtsi"
3#include "qcom-apq8064-arrow-sd-600eval-pins.dtsi"
4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/mfd/qcom-rpm.h>
6
7/ {
8	model = "Arrow Electronics, APQ8064 SD_600eval";
9	compatible = "arrow,sd_600eval", "qcom,apq8064";
10
11	aliases {
12		serial0 = &gsbi7_serial;
13		serial1 = &gsbi1_serial;
14		i2c0 = &gsbi2_i2c;
15		i2c1 = &gsbi3_i2c;
16		i2c2 = &gsbi4_i2c;
17		i2c3 = &gsbi7_i2c;
18		spi0 = &gsbi5_spi;
19	};
20
21	regulators {
22		compatible = "simple-bus";
23		vph: regulator-fixed@1 {
24			compatible = "regulator-fixed";
25			regulator-min-microvolt = <4500000>;
26			regulator-max-microvolt = <4500000>;
27			regulator-name = "VPH";
28			regulator-type = "voltage";
29			regulator-boot-on;
30		};
31
32		/* on board fixed 3.3v supply */
33		vcc3v3: vcc3v3 {
34			compatible = "regulator-fixed";
35			regulator-name = "VCC3V3";
36			regulator-min-microvolt = <3300000>;
37			regulator-max-microvolt = <3300000>;
38			regulator-always-on;
39		};
40
41	};
42
43	hdmi-out {
44		compatible = "hdmi-connector";
45		type = "a";
46
47		port {
48			hdmi_con: endpoint {
49				remote-endpoint = <&hdmi_out>;
50			};
51		};
52	};
53
54	soc {
55		rpm@108000 {
56			regulators {
57				vdd_s1-supply = <&vph>;
58				vdd_s2-supply = <&vph>;
59				vdd_s3-supply = <&vph>;
60				vdd_s4-supply = <&vph>;
61				vdd_s5-supply = <&vph>;
62				vdd_s6-supply = <&vph>;
63				vdd_s7-supply = <&vph>;
64				vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
65				vdd_l3_l15_l17-supply = <&vph>;
66				vdd_l4_l14-supply = <&vph>;
67				vdd_l5_l8_l16-supply = <&vph>;
68				vdd_l6_l7-supply = <&vph>;
69				vdd_l9_l11-supply = <&vph>;
70				vdd_l10_l22-supply = <&vph>;
71				vdd_l21_l23_l29-supply = <&vph>;
72				vdd_l24-supply = <&pm8921_s1>;
73				vdd_l25-supply = <&pm8921_s1>;
74				vdd_l26-supply = <&pm8921_s7>;
75				vdd_l27-supply = <&pm8921_s7>;
76				vdd_l28-supply = <&pm8921_s7>;
77				vin_lvs1_3_6-supply = <&pm8921_s4>;
78				vin_lvs2-supply = <&pm8921_s1>;
79				vin_lvs4_5_7-supply = <&pm8921_s4>;
80
81				s1 {
82					regulator-always-on;
83					regulator-min-microvolt = <1225000>;
84					regulator-max-microvolt = <1225000>;
85					qcom,switch-mode-frequency = <3200000>;
86					bias-pull-down;
87				};
88
89				s2 {
90					regulator-min-microvolt = <1300000>;
91					regulator-max-microvolt = <1300000>;
92					qcom,switch-mode-frequency = <1600000>;
93					bias-pull-down;
94					regulator-always-on;
95				};
96
97				s3 {
98					regulator-min-microvolt = <1000000>;
99					regulator-max-microvolt = <1400000>;
100					qcom,switch-mode-frequency = <4800000>;
101				};
102
103				s4 {
104					regulator-min-microvolt	= <1800000>;
105					regulator-max-microvolt	= <1800000>;
106					qcom,switch-mode-frequency = <1600000>;
107					qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
108					bias-pull-down;
109					regulator-always-on;
110				};
111
112				s7 {
113					regulator-min-microvolt = <1300000>;
114					regulator-max-microvolt = <1300000>;
115					qcom,switch-mode-frequency = <3200000>;
116				 };
117
118				l3 {
119					regulator-min-microvolt = <3050000>;
120					regulator-max-microvolt = <3300000>;
121					bias-pull-down;
122				};
123
124				l4 {
125					regulator-min-microvolt = <1000000>;
126					regulator-max-microvolt = <1800000>;
127					bias-pull-down;
128				};
129
130				l5 {
131					regulator-min-microvolt = <2750000>;
132					regulator-max-microvolt = <3000000>;
133					bias-pull-down;
134					regulator-boot-on;
135					regulator-always-on;
136				};
137
138				l6 {
139					regulator-min-microvolt = <2950000>;
140					regulator-max-microvolt = <2950000>;
141					bias-pull-down;
142				};
143
144				/**
145				 * 1.8v required on LS expansion
146				 * for mezzanine boards
147				 */
148				l15 {
149					regulator-min-microvolt = <1800000>;
150					regulator-max-microvolt = <1800000>;
151					regulator-always-on;
152				};
153
154				l23 {
155					regulator-min-microvolt = <1700000>;
156					regulator-max-microvolt = <1900000>;
157					bias-pull-down;
158				};
159
160				lvs6 {
161					bias-pull-down;
162				};
163
164				lvs7 {
165					bias-pull-down;
166				};
167			};
168		};
169
170		gsbi@12440000 {
171			status = "okay";
172			qcom,mode = <GSBI_PROT_UART_W_FC>;
173			serial@12450000 {
174				label = "LS-UART1";
175				status = "okay";
176				pinctrl-names = "default";
177				pinctrl-0 = <&gsbi1_uart_4pins>;
178			};
179		};
180
181		gsbi@12480000 {
182			status = "okay";
183			qcom,mode = <GSBI_PROT_I2C>;
184			i2c@124a0000 {
185				/* On Low speed expansion and Sensors */
186				label = "LS-I2C0";
187				status = "okay";
188				lis3mdl_mag@1e {
189					compatible = "st,lis3mdl-magn";
190					reg = <0x1e>;
191					vdd-supply = <&vcc3v3>;
192					vddio-supply = <&pm8921_s4>;
193					pinctrl-names = "default";
194					pinctrl-0 = <&magneto_pins>;
195					interrupt-parent = <&tlmm_pinmux>;
196
197					st,drdy-int-pin = <2>;
198					interrupts = <48 IRQ_TYPE_EDGE_RISING>, /* DRDY line */
199						     <31 IRQ_TYPE_EDGE_RISING>; /* INT */
200				};
201			};
202		};
203
204		gsbi@16200000 {
205			status = "okay";
206			qcom,mode = <GSBI_PROT_I2C>;
207			i2c@16280000 {
208			/* On Low speed expansion */
209				status = "okay";
210				label = "LS-I2C1";
211				clock-frequency = <200000>;
212				eeprom@52 {
213					compatible = "atmel,24c128";
214					reg = <0x52>;
215					pagesize = <64>;
216				};
217			};
218		};
219
220		gsbi@16300000 {
221			status = "okay";
222			qcom,mode = <GSBI_PROT_I2C>;
223			i2c@16380000 {
224				/* On High speed expansion */
225				label = "HS-CAM-I2C3";
226				status = "okay";
227			};
228		};
229
230		gsbi@1a200000 {
231			status = "okay";
232			spi@1a280000 {
233				/* On Low speed expansion */
234				label = "LS-SPI0";
235				status = "okay";
236			};
237		};
238
239		/* DEBUG UART  */
240		gsbi@16600000 {
241			status = "okay";
242			qcom,mode = <GSBI_PROT_I2C_UART>;
243			serial@16640000 {
244				label = "LS-UART0";
245				status = "okay";
246				pinctrl-names = "default";
247				pinctrl-0 = <&gsbi7_uart_2pins>;
248			};
249
250			i2c@16680000 {
251				/* On High speed expansion */
252				status = "okay";
253				label = "HS-CAM-I2C2";
254			};
255		};
256
257		leds {
258			pinctrl-names = "default";
259			pinctrl-0 = <&user_leds>, <&mpp_leds>;
260
261			compatible = "gpio-leds";
262
263			user-led0 {
264				label = "user0-led";
265				gpios = <&tlmm_pinmux 3 GPIO_ACTIVE_HIGH>;
266				linux,default-trigger = "heartbeat";
267				default-state = "off";
268			};
269
270			user-led1 {
271				label = "user1-led";
272				gpios = <&tlmm_pinmux 7 GPIO_ACTIVE_HIGH>;
273				linux,default-trigger = "mmc0";
274				default-state = "off";
275			};
276
277			user-led2 {
278				label = "user2-led";
279				gpios = <&tlmm_pinmux 10 GPIO_ACTIVE_HIGH>;
280				linux,default-trigger = "mmc1";
281				default-state = "off";
282			};
283
284			user-led3 {
285				label = "user3-led";
286				gpios = <&tlmm_pinmux 11 GPIO_ACTIVE_HIGH>;
287				linux,default-trigger = "none";
288				default-state = "off";
289			};
290
291			wifi-led {
292				label = "WiFi-led";
293				gpios = <&pm8921_mpps 7 GPIO_ACTIVE_HIGH>;
294				default-state = "off";
295			};
296
297			bt-led {
298				label = "BT-led";
299				gpios = <&pm8921_mpps 8 GPIO_ACTIVE_HIGH>;
300				default-state = "off";
301			};
302		};
303
304		pci@1b500000 {
305			status = "okay";
306			vdda-supply = <&pm8921_s3>;
307			vdda_phy-supply = <&pm8921_lvs6>;
308			vdda_refclk-supply = <&vcc3v3>;
309			pinctrl-0 = <&pcie_pins>;
310			pinctrl-names = "default";
311			perst-gpio = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
312		};
313
314		phy@1b400000 {
315			status = "okay";
316		};
317
318		sata@29000000 {
319			status	= "okay";
320			target-supply	= <&pm8921_lvs7>;
321		};
322
323		/* OTG */
324		usb@12500000 {
325			status = "okay";
326			dr_mode = "peripheral";
327			ulpi {
328				phy {
329					v3p3-supply = <&pm8921_l3>;
330					v1p8-supply = <&pm8921_l4>;
331				};
332			};
333		};
334
335		usb@12520000 {
336			status = "okay";
337			dr_mode = "otg";
338			ulpi {
339				phy {
340					v3p3-supply = <&pm8921_l3>;
341					v1p8-supply = <&pm8921_l23>;
342				};
343			};
344		};
345
346		usb@12530000 {
347			status = "okay";
348			dr_mode = "otg";
349			ulpi {
350				phy {
351					v3p3-supply = <&pm8921_l3>;
352					v1p8-supply = <&pm8921_l23>;
353				};
354			};
355		};
356
357		amba {
358			/* eMMC */
359			sdcc@12400000 {
360				status = "okay";
361				vmmc-supply = <&pm8921_l5>;
362				vqmmc-supply = <&pm8921_s4>;
363			};
364
365			/* External micro SD card */
366			sdcc@12180000 {
367				status = "okay";
368				vmmc-supply = <&pm8921_l6>;
369				pinctrl-names	= "default";
370				pinctrl-0	= <&card_detect>;
371				cd-gpios	= <&tlmm_pinmux 26 GPIO_ACTIVE_HIGH>;
372			};
373		};
374
375		riva-pil@3204000 {
376			status = "okay";
377
378			pinctrl-names = "default";
379			pinctrl-0 = <&riva_wlan_pin_a>, <&riva_bt_pin_a>, <&riva_fm_pin_a>;
380		};
381
382		hdmi-tx@4a00000 {
383			status = "okay";
384			core-vdda-supply = <&pm8921_hdmi_switch>;
385			hdmi-mux-supply = <&vcc3v3>;
386
387			hpd-gpio = <&tlmm_pinmux 72 GPIO_ACTIVE_HIGH>;
388
389			ports {
390				port@1 {
391					endpoint {
392						remote-endpoint = <&hdmi_con>;
393					};
394				};
395			};
396		};
397
398		hdmi-phy@4a00400 {
399			status = "okay";
400			core-vdda-supply = <&pm8921_hdmi_switch>;
401		};
402
403		mdp@5100000 {
404			status = "okay";
405
406			ports {
407				port@3 {
408					endpoint {
409						remote-endpoint = <&hdmi_in>;
410					};
411				};
412			};
413		};
414	};
415};
416