blob: 07bf7dd0b32f8314445d24b003c00a7e11fd496c [file] [log] [blame]
Sumit Garg89a8ec92022-07-12 12:42:12 +05301// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Qualcomm QCS404 based evaluation board device tree source
4 *
5 * (C) Copyright 2022 Sumit Garg <sumit.garg@linaro.org>
6 */
7
8/dts-v1/;
9
10#include "skeleton64.dtsi"
11#include <dt-bindings/gpio/gpio.h>
Sumit Garg89a8ec92022-07-12 12:42:12 +053012#include <dt-bindings/clock/qcom,gcc-qcs404.h>
13
14/ {
15 model = "Qualcomm Technologies, Inc. QCS404 EVB";
16 compatible = "qcom,qcs404-evb", "qcom,qcs404";
17 #address-cells = <0x2>;
18 #size-cells = <0x2>;
19
20 chosen {
21 stdout-path = "serial0:115200n8";
22 };
23
24 aliases {
25 serial0 = &debug_uart;
Sumit Gargd337c1f2023-02-01 19:29:01 +053026 i2c0 = &blsp1_i2c0;
27 i2c1 = &blsp1_i2c1;
28 i2c2 = &blsp1_i2c2;
29 i2c3 = &blsp1_i2c3;
30 i2c4 = &blsp1_i2c4;
Sumit Garg89a8ec92022-07-12 12:42:12 +053031 };
32
33 memory {
34 device_type = "memory";
35 reg = <0 0x80000000 0 0x40000000>;
36 };
37
38 soc {
39 #address-cells = <0x1>;
40 #size-cells = <0x1>;
41 ranges = <0x0 0x0 0x0 0xffffffff>;
42 compatible = "simple-bus";
43
Sumit Gargf9744852023-02-01 19:28:56 +053044 soc_gpios: pinctrl_north@1300000 {
Sumit Gargb7572e52022-07-27 13:52:04 +053045 compatible = "qcom,qcs404-pinctrl";
Sumit Garg89a8ec92022-07-12 12:42:12 +053046 reg = <0x1300000 0x200000>;
Sumit Garg8ed952d2023-02-01 19:28:49 +053047 gpio-controller;
48 gpio-count = <120>;
49 gpio-bank-name="soc";
50 #gpio-cells = <2>;
Sumit Garg89a8ec92022-07-12 12:42:12 +053051
52 blsp1_uart2: uart {
53 pins = "GPIO_17", "GPIO_18";
54 function = "blsp_uart2";
55 };
Sumit Gargf9744852023-02-01 19:28:56 +053056
Sumit Gargd337c1f2023-02-01 19:29:01 +053057 blsp1_i2c0_default: blsp1-i2c0-default {
58 pins = "GPIO_32", "GPIO_33";
59 function = "blsp_i2c0";
60 };
61
62 blsp1_i2c1_default: blsp1-i2c1-default {
63 pins = "GPIO_24", "GPIO_25";
64 function = "blsp_i2c1";
65 };
66
67 blsp1_i2c2_default: blsp1-i2c2-default {
68 sda {
69 pins = "GPIO_19";
70 function = "blsp_i2c_sda_a2";
71 };
72
73 scl {
74 pins = "GPIO_20";
75 function = "blsp_i2c_scl_a2";
76 };
77 };
78
79 blsp1_i2c3_default: blsp1-i2c3-default {
80 pins = "GPIO_84", "GPIO_85";
81 function = "blsp_i2c3";
82 };
83
84 blsp1_i2c4_default: blsp1-i2c4-default {
85 pins = "GPIO_117", "GPIO_118";
86 function = "blsp_i2c4";
87 };
88
Sumit Gargf9744852023-02-01 19:28:56 +053089 ethernet_defaults: ethernet-defaults {
90 int {
91 pins = "GPIO_61";
92 function = "rgmii_int";
93 bias-disable;
94 drive-strength = <2>;
95 };
96 mdc {
97 pins = "GPIO_76";
98 function = "rgmii_mdc";
99 bias-pull-up;
100 };
101 mdio {
102 pins = "GPIO_75";
103 function = "rgmii_mdio";
104 bias-pull-up;
105 };
106 tx {
107 pins = "GPIO_67", "GPIO_66", "GPIO_65", "GPIO_64";
108 function = "rgmii_tx";
109 bias-pull-up;
110 drive-strength = <16>;
111 };
112 rx {
113 pins = "GPIO_73", "GPIO_72", "GPIO_71", "GPIO_70";
114 function = "rgmii_rx";
115 bias-disable;
116 drive-strength = <2>;
117 };
118 tx-ctl {
119 pins = "GPIO_68";
120 function = "rgmii_ctl";
121 bias-pull-up;
122 drive-strength = <16>;
123 };
124 rx-ctl {
125 pins = "GPIO_74";
126 function = "rgmii_ctl";
127 bias-disable;
128 drive-strength = <2>;
129 };
130 tx-ck {
131 pins = "GPIO_63";
132 function = "rgmii_ck";
133 bias-pull-up;
134 drive-strength = <16>;
135 };
136 rx-ck {
137 pins = "GPIO_69";
138 function = "rgmii_ck";
139 bias-disable;
140 drive-strength = <2>;
141 };
142 };
Sumit Garg89a8ec92022-07-12 12:42:12 +0530143 };
144
Sumit Gargd337c1f2023-02-01 19:29:01 +0530145 blsp1_i2c0: i2c@78b5000 {
146 compatible = "qcom,i2c-qup-v2.2.1";
147 reg = <0x078b5000 0x600>;
148 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
149 <&gcc GCC_BLSP1_QUP0_I2C_APPS_CLK>;
150 clock-names = "iface", "core";
151 pinctrl-names = "default";
152 pinctrl-0 = <&blsp1_i2c0_default>;
153 #address-cells = <1>;
154 #size-cells = <0>;
155 };
156
157 blsp1_i2c1: i2c@78b6000 {
158 compatible = "qcom,i2c-qup-v2.2.1";
159 reg = <0x078b6000 0x600>;
160 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
161 <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
162 clock-names = "iface", "core";
163 pinctrl-names = "default";
164 pinctrl-0 = <&blsp1_i2c1_default>;
165 #address-cells = <1>;
166 #size-cells = <0>;
167 };
168
169 blsp1_i2c2: i2c@78b7000 {
170 compatible = "qcom,i2c-qup-v2.2.1";
171 reg = <0x078b7000 0x600>;
172 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
173 <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
174 clock-names = "iface", "core";
175 pinctrl-names = "default";
176 pinctrl-0 = <&blsp1_i2c2_default>;
177 #address-cells = <1>;
178 #size-cells = <0>;
179 };
180
181 blsp1_i2c3: i2c@78b8000 {
182 compatible = "qcom,i2c-qup-v2.2.1";
183 reg = <0x078b8000 0x600>;
184 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
185 <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
186 clock-names = "iface", "core";
187 pinctrl-names = "default";
188 pinctrl-0 = <&blsp1_i2c3_default>;
189 #address-cells = <1>;
190 #size-cells = <0>;
191 };
192
193 blsp1_i2c4: i2c@78b9000 {
194 compatible = "qcom,i2c-qup-v2.2.1";
195 reg = <0x078b9000 0x600>;
196 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
197 <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
198 clock-names = "iface", "core";
199 pinctrl-names = "default";
200 pinctrl-0 = <&blsp1_i2c4_default>;
201 #address-cells = <1>;
202 #size-cells = <0>;
203 };
204
Sumit Garg89a8ec92022-07-12 12:42:12 +0530205 gcc: clock-controller@1800000 {
206 compatible = "qcom,gcc-qcs404";
207 reg = <0x1800000 0x80000>;
208 #address-cells = <0x1>;
209 #size-cells = <0x0>;
Sumit Gargd15d6702022-08-04 19:57:16 +0530210 #clock-cells = <1>;
Sumit Gargdc160a72022-08-04 19:57:13 +0530211 #reset-cells = <1>;
212 };
213
Sumit Garg89a8ec92022-07-12 12:42:12 +0530214 debug_uart: serial@78b1000 {
215 compatible = "qcom,msm-uartdm-v1.4";
216 reg = <0x78b1000 0x200>;
217 clock = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
218 <&gcc GCC_BLSP1_AHB_CLK>;
219 bit-rate = <0xFF>;
220 pinctrl-names = "uart";
221 pinctrl-0 = <&blsp1_uart2>;
222 };
223
224 sdhci@7804000 {
225 compatible = "qcom,sdhci-msm-v5";
226 reg = <0x7804000 0x1000 0x7805000 0x1000>;
227 clock = <&gcc GCC_SDCC1_APPS_CLK>,
228 <&gcc GCC_SDCC1_AHB_CLK>;
229 bus-width = <0x8>;
230 index = <0x0>;
231 non-removable;
232 mmc-ddr-1_8v;
233 mmc-hs400-1_8v;
234 };
Sumit Gargd15d6702022-08-04 19:57:16 +0530235
236 usb3_phy: phy@78000 {
237 compatible = "qcom,usb-ss-28nm-phy";
238 #phy-cells = <0>;
239 reg = <0x78000 0x400>;
240 clocks = <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
241 <&gcc GCC_USB3_PHY_PIPE_CLK>;
242 clock-names = "ahb", "pipe";
Konrad Dybcio6c0b8442023-11-07 12:41:01 +0000243 resets = <&gcc GCC_USB3_PHY_BCR>,
244 <&gcc GCC_USB3PHY_PHY_BCR>;
Sumit Gargd15d6702022-08-04 19:57:16 +0530245 reset-names = "com", "phy";
246 };
247
248 usb2_phy_prim: phy@7a000 {
249 compatible = "qcom,usb-hs-28nm-femtophy";
250 #phy-cells = <0>;
251 reg = <0x7a000 0x200>;
252 clocks = <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
253 <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
254 clock-names = "ahb", "sleep";
Konrad Dybcio6c0b8442023-11-07 12:41:01 +0000255 resets = <&gcc GCC_USB_HS_PHY_CFG_AHB_BCR>,
256 <&gcc GCC_USB2A_PHY_BCR>;
Sumit Gargd15d6702022-08-04 19:57:16 +0530257 reset-names = "phy", "por";
258 };
259
260 usb2_phy_sec: phy@7c000 {
261 compatible = "qcom,usb-hs-28nm-femtophy";
262 #phy-cells = <0>;
263 reg = <0x7c000 0x200>;
264 clocks = <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
265 <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
266 clock-names = "ahb", "sleep";
Konrad Dybcio6c0b8442023-11-07 12:41:01 +0000267 resets = <&gcc GCC_QUSB2_PHY_BCR>,
268 <&gcc GCC_USB2_HS_PHY_ONLY_BCR>;
Sumit Gargd15d6702022-08-04 19:57:16 +0530269 reset-names = "phy", "por";
270 };
271
272 usb3: usb@7678800 {
273 compatible = "qcom,dwc3";
274 reg = <0x7678800 0x400>;
275 #address-cells = <1>;
276 #size-cells = <1>;
277 ranges;
278 clocks = <&gcc GCC_USB30_MASTER_CLK>,
279 <&gcc GCC_SYS_NOC_USB3_CLK>,
280 <&gcc GCC_USB30_SLEEP_CLK>,
281 <&gcc GCC_USB30_MOCK_UTMI_CLK>;
282 clock-names = "core", "iface", "sleep", "mock_utmi";
283
284 dwc3@7580000 {
285 compatible = "snps,dwc3";
286 reg = <0x7580000 0xcd00>;
287 phys = <&usb2_phy_prim>, <&usb3_phy>;
288 phy-names = "usb2-phy", "usb3-phy";
289 dr_mode = "host";
290 snps,has-lpm-erratum;
291 snps,hird-threshold = /bits/ 8 <0x10>;
292 snps,usb3_lpm_capable;
293 maximum-speed = "super-speed";
294 };
295 };
296
297 usb2: usb@79b8800 {
298 compatible = "qcom,dwc3";
299 reg = <0x79b8800 0x400>;
300 #address-cells = <1>;
301 #size-cells = <1>;
302 ranges;
303 clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>,
304 <&gcc GCC_PCNOC_USB2_CLK>,
305 <&gcc GCC_USB_HS_INACTIVITY_TIMERS_CLK>,
306 <&gcc GCC_USB20_MOCK_UTMI_CLK>;
307 clock-names = "core", "iface", "sleep", "mock_utmi";
308
309 dwc3@78c0000 {
310 compatible = "snps,dwc3";
311 reg = <0x78c0000 0xcc00>;
312 phys = <&usb2_phy_sec>;
313 phy-names = "usb2-phy";
314 dr_mode = "peripheral";
315 snps,has-lpm-erratum;
316 snps,hird-threshold = /bits/ 8 <0x10>;
317 snps,usb3_lpm_capable;
318 maximum-speed = "high-speed";
319 };
320 };
Sumit Gargd04a52e2022-08-04 19:57:19 +0530321
Sumit Gargf9744852023-02-01 19:28:56 +0530322 ethernet: ethernet@7a80000 {
323 compatible = "qcom,qcs404-ethqos";
324 reg = <0x07a80000 0x10000>,
325 <0x07a96000 0x100>;
326 reg-names = "stmmaceth", "rgmii";
327 clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii";
328 clocks = <&gcc GCC_ETH_AXI_CLK>,
329 <&gcc GCC_ETH_SLAVE_AHB_CLK>,
330 <&gcc GCC_ETH_PTP_CLK>,
331 <&gcc GCC_ETH_RGMII_CLK>;
332
Konrad Dybcio6c0b8442023-11-07 12:41:01 +0000333 resets = <&gcc GCC_EMAC_BCR>;
Sumit Gargf9744852023-02-01 19:28:56 +0530334 reset-names = "emac";
335
336 snps,tso;
337 rx-fifo-depth = <4096>;
338 tx-fifo-depth = <4096>;
339
340 snps,reset-gpio = <&soc_gpios 60 GPIO_ACTIVE_LOW>;
341 snps,reset-active-low;
342 snps,reset-delays-us = <0 10000 10000>;
343
344 pinctrl-names = "default";
345 pinctrl-0 = <&ethernet_defaults>;
346
347 phy-handle = <&phy1>;
348 phy-mode = "rgmii";
349 max-speed = <1000>;
350
351 mdio {
352 #address-cells = <0x1>;
353 #size-cells = <0x0>;
354 compatible = "snps,dwmac-mdio";
355 phy1: phy@3 {
356 compatible = "ethernet-phy-ieee802.3-c22";
357 device_type = "ethernet-phy";
358 reg = <0x3>;
359 };
360 };
361 };
362
Sumit Gargd04a52e2022-08-04 19:57:19 +0530363 spmi@200f000 {
364 compatible = "qcom,spmi-pmic-arb";
Caleb Connolly99f591c2023-12-05 13:46:53 +0000365 reg = <0x200f000 0x001000>,
366 <0x2400000 0x800000>,
367 <0x2c00000 0x800000>;
368 reg-names = "core", "chnls", "obsrvr";
Sumit Gargd04a52e2022-08-04 19:57:19 +0530369 #address-cells = <0x1>;
370 #size-cells = <0x1>;
371
372 pms405_0: pms405@0 {
373 compatible = "qcom,spmi-pmic";
374 reg = <0x0 0x1>;
375 #address-cells = <0x1>;
376 #size-cells = <0x1>;
377
378 pms405_gpios: pms405_gpios@c000 {
379 compatible = "qcom,pms405-gpio";
380 reg = <0xc000 0x400>;
381 gpio-controller;
Caleb Connollya80d68e2023-12-05 13:46:51 +0000382 gpio-ranges = <&pms405_gpios 0 0 12>;
Sumit Gargd04a52e2022-08-04 19:57:19 +0530383 #gpio-cells = <2>;
Sumit Gargd04a52e2022-08-04 19:57:19 +0530384 };
385 };
386 };
Sumit Garg89a8ec92022-07-12 12:42:12 +0530387 };
388};
389
390#include "qcs404-evb-uboot.dtsi"