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-state {
192 		pins = "gpio26";
193 		function = "gpio";
194 		bias-disable;
195 	};
196 
197 	pcie_pins: pcie-state {
198 		pins = "gpio27";
199 		function = "gpio";
200 		drive-strength = <12>;
201 		bias-disable;
202 	};
203 };
204 
205 &usb_hs1_phy {
206 	v3p3-supply = <&pm8921_l3>;
207 	v1p8-supply = <&pm8921_l4>;
208 };
209 
210 &usb_hs3_phy {
211 	v3p3-supply = <&pm8921_l3>;
212 	v1p8-supply = <&pm8921_l23>;
213 };
214 
215 &usb_hs4_phy {
216 	v3p3-supply = <&pm8921_l3>;
217 	v1p8-supply = <&pm8921_l23>;
218 };
219 
220 /* OTG */
221 &usb1 {
222 	dr_mode = "otg";
223 	status = "okay";
224 };
225 
226 &usb3 {
227 	dr_mode = "host";
228 	status = "okay";
229 };
230 
231 &usb4 {
232 	dr_mode = "host";
233 	status = "okay";
234 };
235