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	pwrseq {
19		#address-cells = <1>;
20		#size-cells = <1>;
21		ranges;
22		compatible = "simple-bus";
23
24		sdcc4_pwrseq: sdcc4_pwrseq {
25			pinctrl-names = "default";
26			pinctrl-0 = <&wlan_default_gpios>;
27			compatible = "mmc-pwrseq-simple";
28			reset-gpios = <&pm8921_gpio 43 GPIO_ACTIVE_LOW>;
29		};
30	};
31
32	soc {
33		pinctrl@800000 {
34			card_detect: card_detect {
35				mux {
36					pins = "gpio26";
37					function = "gpio";
38					bias-disable;
39				};
40			};
41
42			pcie_pins: pcie_pinmux {
43				mux {
44					pins = "gpio27";
45					function = "gpio";
46				};
47				conf {
48					pins = "gpio27";
49					drive-strength = <12>;
50					bias-disable;
51				};
52			};
53		};
54
55		rpm@108000 {
56			regulators {
57				vin_lvs1_3_6-supply = <&pm8921_s4>;
58				vin_lvs2-supply = <&pm8921_s1>;
59				vin_lvs4_5_7-supply = <&pm8921_s4>;
60
61				vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
62				vdd_l24-supply = <&pm8921_s1>;
63				vdd_l25-supply = <&pm8921_s1>;
64				vdd_l26-supply = <&pm8921_s7>;
65				vdd_l27-supply = <&pm8921_s7>;
66				vdd_l28-supply = <&pm8921_s7>;
67
68
69				/* Buck SMPS */
70				s1 {
71					regulator-always-on;
72					regulator-min-microvolt = <1225000>;
73					regulator-max-microvolt = <1225000>;
74					qcom,switch-mode-frequency = <3200000>;
75					bias-pull-down;
76				};
77
78				s3 {
79					regulator-min-microvolt = <1000000>;
80					regulator-max-microvolt = <1400000>;
81					qcom,switch-mode-frequency = <4800000>;
82				};
83
84				s4 {
85					regulator-min-microvolt	= <1800000>;
86					regulator-max-microvolt	= <1800000>;
87					qcom,switch-mode-frequency = <3200000>;
88				};
89
90				s7 {
91					regulator-min-microvolt = <1300000>;
92					regulator-max-microvolt = <1300000>;
93					qcom,switch-mode-frequency = <3200000>;
94				};
95
96				l3 {
97					regulator-min-microvolt = <3050000>;
98					regulator-max-microvolt = <3300000>;
99					bias-pull-down;
100				};
101
102				l4 {
103					regulator-min-microvolt = <1000000>;
104					regulator-max-microvolt = <1800000>;
105					bias-pull-down;
106				};
107
108				l5 {
109					regulator-min-microvolt = <2750000>;
110					regulator-max-microvolt = <3000000>;
111					bias-pull-down;
112				};
113
114				l23 {
115					regulator-min-microvolt = <1700000>;
116					regulator-max-microvolt = <1900000>;
117					bias-pull-down;
118				};
119
120				pm8921_lvs6: lvs6 {
121					bias-pull-down;
122				};
123
124			};
125		};
126
127		gsbi@12440000 {
128			status = "okay";
129			qcom,mode = <GSBI_PROT_I2C>;
130
131			i2c@12460000 {
132				status = "okay";
133				clock-frequency = <200000>;
134
135				eeprom@50 {
136					compatible = "atmel,24c02";
137					reg = <0x50>;
138					pagesize = <32>;
139				};
140			};
141		};
142
143		gsbi@16600000 {
144			status = "okay";
145			qcom,mode = <GSBI_PROT_I2C_UART>;
146			serial@16640000 {
147				status = "okay";
148				pinctrl-names = "default";
149				pinctrl-0 = <&gsbi7_uart_2pins>;
150			};
151		};
152
153		/* OTG */
154		usb@12500000 {
155			status = "okay";
156			dr_mode = "otg";
157			ulpi {
158				phy {
159					v3p3-supply = <&pm8921_l3>;
160					v1p8-supply = <&pm8921_l4>;
161				};
162			};
163		};
164
165		usb@12520000 {
166			status = "okay";
167			dr_mode = "host";
168			ulpi {
169				phy {
170					v3p3-supply = <&pm8921_l3>;
171					v1p8-supply = <&pm8921_l23>;
172				};
173			};
174		};
175
176		usb@12530000 {
177			status = "okay";
178			dr_mode = "host";
179			ulpi {
180				phy {
181					v3p3-supply = <&pm8921_l3>;
182					v1p8-supply = <&pm8921_l23>;
183				};
184			};
185		};
186
187		/* on board fixed 3.3v supply */
188		v3p3_fixed: v3p3 {
189			compatible = "regulator-fixed";
190			regulator-name = "PCIE V3P3";
191			regulator-min-microvolt = <3300000>;
192			regulator-max-microvolt = <3300000>;
193			regulator-always-on;
194		};
195
196		qcom,ssbi@500000 {
197			pmic@0 {
198				gpio@150 {
199					wlan_default_gpios: wlan-gpios {
200						pios {
201							pins = "gpio43";
202							function = "normal";
203							bias-disable;
204							power-source = <PM8921_GPIO_S4>;
205						};
206					};
207				};
208			};
209		};
210
211		pci@1b500000 {
212			status = "okay";
213			vdda-supply = <&pm8921_s3>;
214			vdda_phy-supply = <&pm8921_lvs6>;
215			vdda_refclk-supply = <&v3p3_fixed>;
216			pinctrl-0 = <&pcie_pins>;
217			pinctrl-names = "default";
218			perst-gpio = <&tlmm_pinmux 27 GPIO_ACTIVE_LOW>;
219		};
220
221		amba {
222			/* eMMC */
223			sdcc1: sdcc@12400000 {
224				status = "okay";
225				vmmc-supply = <&pm8921_l5>;
226				vqmmc-supply = <&pm8921_s4>;
227			};
228
229			/* External micro SD card */
230			sdcc3: sdcc@12180000 {
231				status = "okay";
232				vmmc-supply = <&v3p3_fixed>;
233				pinctrl-names	= "default";
234				pinctrl-0	= <&card_detect>;
235				cd-gpios	= <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
236			};
237			/* WLAN */
238			sdcc4: sdcc@121c0000 {
239				status = "okay";
240				vmmc-supply = <&v3p3_fixed>;
241				vqmmc-supply = <&v3p3_fixed>;
242				mmc-pwrseq = <&sdcc4_pwrseq>;
243			};
244		};
245	};
246};
247