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