1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/gpio/gpio.h>
3#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
4
5#include "qcom-apq8064-v2.0.dtsi"
6#include "pm8821.dtsi"
7#include "pm8921.dtsi"
8
9/ {
10	model = "CompuLab CM-QS600";
11	compatible = "qcom,apq8064-cm-qs600", "qcom,apq8064";
12
13	aliases {
14		serial0 = &gsbi7_serial;
15	};
16
17	chosen {
18		stdout-path = "serial0:115200n8";
19	};
20
21	sdcc4_pwrseq: pwrseq-sdcc4 {
22		pinctrl-names = "default";
23		pinctrl-0 = <&wlan_default_gpios>;
24		compatible = "mmc-pwrseq-simple";
25		reset-gpios = <&pm8921_gpio 43 GPIO_ACTIVE_LOW>;
26	};
27
28	/* on board fixed 3.3v supply */
29	v3p3_fixed: regulator-v3p3 {
30		compatible = "regulator-fixed";
31		regulator-name = "PCIE V3P3";
32		regulator-min-microvolt = <3300000>;
33		regulator-max-microvolt = <3300000>;
34		regulator-always-on;
35	};
36};
37
38&gsbi1 {
39	qcom,mode = <GSBI_PROT_I2C>;
40	status = "okay";
41};
42
43&gsbi1_i2c {
44	clock-frequency = <200000>;
45	status = "okay";
46
47	eeprom@50 {
48		compatible = "atmel,24c02";
49		reg = <0x50>;
50		pagesize = <32>;
51	};
52};
53
54&gsbi7 {
55	qcom,mode = <GSBI_PROT_I2C_UART>;
56	status = "okay";
57};
58
59&gsbi7_serial {
60	pinctrl-names = "default";
61	pinctrl-0 = <&gsbi7_uart_2pins>;
62	status = "okay";
63};
64
65&pcie {
66	vdda-supply = <&pm8921_s3>;
67	vdda_phy-supply = <&pm8921_lvs6>;
68	vdda_refclk-supply = <&v3p3_fixed>;
69	pinctrl-0 = <&pcie_pins>;
70	pinctrl-names = "default";
71	perst-gpios = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
72	status = "okay";
73};
74
75&pm8821 {
76	interrupts-extended = <&tlmm_pinmux 76 IRQ_TYPE_LEVEL_LOW>;
77};
78
79&pm8921 {
80	interrupts-extended = <&tlmm_pinmux 74 IRQ_TYPE_LEVEL_LOW>;
81};
82
83&pm8921_gpio {
84	wlan_default_gpios: wlan-gpios-state {
85		pinconf {
86			pins = "gpio43";
87			function = "normal";
88			bias-disable;
89			power-source = <PM8921_GPIO_S4>;
90		};
91	};
92};
93
94&rpm {
95	regulators {
96		compatible = "qcom,rpm-pm8921-regulators";
97
98		vin_lvs1_3_6-supply = <&pm8921_s4>;
99		vin_lvs2-supply = <&pm8921_s1>;
100		vin_lvs4_5_7-supply = <&pm8921_s4>;
101
102		vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
103		vdd_l24-supply = <&pm8921_s1>;
104		vdd_l25-supply = <&pm8921_s1>;
105		vdd_l26-supply = <&pm8921_s7>;
106		vdd_l27-supply = <&pm8921_s7>;
107		vdd_l28-supply = <&pm8921_s7>;
108
109		/* Buck SMPS */
110		pm8921_s1: s1 {
111			regulator-always-on;
112			regulator-min-microvolt = <1225000>;
113			regulator-max-microvolt = <1225000>;
114			qcom,switch-mode-frequency = <3200000>;
115			bias-pull-down;
116		};
117
118		pm8921_s3: s3 {
119			regulator-min-microvolt = <1000000>;
120			regulator-max-microvolt = <1400000>;
121			qcom,switch-mode-frequency = <4800000>;
122		};
123
124		pm8921_s4: s4 {
125			regulator-min-microvolt = <1800000>;
126			regulator-max-microvolt = <1800000>;
127			qcom,switch-mode-frequency = <3200000>;
128		};
129
130		pm8921_s7: s7 {
131			regulator-min-microvolt = <1300000>;
132			regulator-max-microvolt = <1300000>;
133			qcom,switch-mode-frequency = <3200000>;
134		};
135
136		pm8921_l3: l3 {
137			regulator-min-microvolt = <3050000>;
138			regulator-max-microvolt = <3300000>;
139			bias-pull-down;
140		};
141
142		pm8921_l4: l4 {
143			regulator-min-microvolt = <1000000>;
144			regulator-max-microvolt = <1800000>;
145			bias-pull-down;
146		};
147
148		pm8921_l5: l5 {
149			regulator-min-microvolt = <2750000>;
150			regulator-max-microvolt = <3000000>;
151			bias-pull-down;
152		};
153
154		pm8921_l23: l23 {
155			regulator-min-microvolt = <1700000>;
156			regulator-max-microvolt = <1900000>;
157			bias-pull-down;
158		};
159
160		pm8921_lvs6: lvs6 {
161			bias-pull-down;
162		};
163	};
164};
165
166/* eMMC */
167&sdcc1 {
168	vmmc-supply = <&pm8921_l5>;
169	vqmmc-supply = <&pm8921_s4>;
170	status = "okay";
171};
172
173/* External micro SD card */
174&sdcc3 {
175	vmmc-supply = <&v3p3_fixed>;
176	pinctrl-names = "default";
177	pinctrl-0 = <&card_detect>;
178	cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
179	status = "okay";
180};
181
182/* WLAN */
183&sdcc4 {
184	status = "okay";
185	vmmc-supply = <&v3p3_fixed>;
186	vqmmc-supply = <&v3p3_fixed>;
187	mmc-pwrseq = <&sdcc4_pwrseq>;
188};
189
190&tlmm_pinmux {
191	card_detect: card_detect {
192		mux {
193			pins = "gpio26";
194			function = "gpio";
195			bias-disable;
196		};
197	};
198
199	pcie_pins: pcie_pinmux {
200		mux {
201			pins = "gpio27";
202			function = "gpio";
203		};
204		conf {
205			pins = "gpio27";
206			drive-strength = <12>;
207			bias-disable;
208		};
209	};
210};
211
212&usb_hs1_phy {
213	v3p3-supply = <&pm8921_l3>;
214	v1p8-supply = <&pm8921_l4>;
215};
216
217&usb_hs3_phy {
218	v3p3-supply = <&pm8921_l3>;
219	v1p8-supply = <&pm8921_l23>;
220};
221
222&usb_hs4_phy {
223	v3p3-supply = <&pm8921_l3>;
224	v1p8-supply = <&pm8921_l23>;
225};
226
227/* OTG */
228&usb1 {
229	dr_mode = "otg";
230	status = "okay";
231};
232
233&usb3 {
234	dr_mode = "host";
235	status = "okay";
236};
237
238&usb4 {
239	dr_mode = "host";
240	status = "okay";
241};
242