blob: a7b03dc66908d85e3c6e4114f133606d65327a81 [file] [log] [blame]
Lokesh Vutlaea8ad1d2018-08-27 15:59:08 +05301// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for AM6 SoC Family Main Domain peripherals
4 *
5 * Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/
6 */
7
Sekhar Nori476e9912019-08-01 19:13:00 +05308#include <dt-bindings/phy/phy-am654-serdes.h>
9#include <dt-bindings/phy/phy.h>
10
Lokesh Vutlaea8ad1d2018-08-27 15:59:08 +053011&cbass_main {
12 gic500: interrupt-controller@1800000 {
13 compatible = "arm,gic-v3";
Lokesh Vutla2d0eba32018-11-02 19:51:08 +053014 #address-cells = <2>;
15 #size-cells = <2>;
Lokesh Vutlaea8ad1d2018-08-27 15:59:08 +053016 ranges;
17 #interrupt-cells = <3>;
18 interrupt-controller;
Lokesh Vutla2d0eba32018-11-02 19:51:08 +053019 reg = <0x00 0x01800000 0x00 0x10000>, /* GICD */
20 <0x00 0x01880000 0x00 0x90000>; /* GICR */
Lokesh Vutlaea8ad1d2018-08-27 15:59:08 +053021 /*
22 * vcpumntirq:
23 * virtual CPU interface maintenance interrupt
24 */
25 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
26
27 gic_its: gic-its@18200000 {
28 compatible = "arm,gic-v3-its";
Lokesh Vutla2d0eba32018-11-02 19:51:08 +053029 reg = <0x00 0x01820000 0x00 0x10000>;
Lokesh Vutlaea8ad1d2018-08-27 15:59:08 +053030 msi-controller;
31 #msi-cells = <1>;
32 };
33 };
Lokesh Vutla2d0eba32018-11-02 19:51:08 +053034
35 secure_proxy_main: mailbox@32c00000 {
36 compatible = "ti,am654-secure-proxy";
37 #mbox-cells = <1>;
38 reg-names = "target_data", "rt", "scfg";
39 reg = <0x00 0x32c00000 0x00 0x100000>,
40 <0x00 0x32400000 0x00 0x100000>,
41 <0x00 0x32800000 0x00 0x100000>;
42 interrupt-names = "rx_011";
43 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
44 };
45
46 main_uart0: serial@2800000 {
47 compatible = "ti,am654-uart";
48 reg = <0x00 0x02800000 0x00 0x100>;
49 reg-shift = <2>;
50 reg-io-width = <4>;
51 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
52 clock-frequency = <48000000>;
53 current-speed = <115200>;
54 };
55
56 main_uart1: serial@2810000 {
57 compatible = "ti,am654-uart";
58 reg = <0x00 0x02810000 0x00 0x100>;
59 reg-shift = <2>;
60 reg-io-width = <4>;
61 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
62 clock-frequency = <48000000>;
63 current-speed = <115200>;
64 };
65
66 main_uart2: serial@2820000 {
67 compatible = "ti,am654-uart";
68 reg = <0x00 0x02820000 0x00 0x100>;
69 reg-shift = <2>;
70 reg-io-width = <4>;
71 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
72 clock-frequency = <48000000>;
73 current-speed = <115200>;
74 };
Faiz Abbas3a1a0df2019-06-11 00:43:31 +053075
76 main_pmx0: pinmux@11c000 {
77 compatible = "pinctrl-single";
78 reg = <0x0 0x11c000 0x0 0x2e4>;
79 #pinctrl-cells = <1>;
80 pinctrl-single,register-width = <32>;
81 pinctrl-single,function-mask = <0xffffffff>;
82 };
83
Andreas Dannenberg9bbdfdf2019-06-04 18:08:13 -050084 main_pmx1: pinmux@11c2e8 {
85 compatible = "pinctrl-single";
86 reg = <0x0 0x11c2e8 0x0 0x24>;
87 #pinctrl-cells = <1>;
88 pinctrl-single,register-width = <32>;
89 pinctrl-single,function-mask = <0xffffffff>;
90 };
91
Faiz Abbas3a1a0df2019-06-11 00:43:31 +053092 sdhci0: sdhci@4f80000 {
93 compatible = "ti,am654-sdhci-5.1";
94 reg = <0x0 0x4f80000 0x0 0x260>, <0x0 0x4f90000 0x0 0x134>;
Lokesh Vutla355be912019-06-07 19:24:47 +053095 power-domains = <&k3_pds 47 TI_SCI_PD_EXCLUSIVE>;
Faiz Abbas3a1a0df2019-06-11 00:43:31 +053096 clocks = <&k3_clks 47 0>, <&k3_clks 47 1>;
97 clock-names = "clk_ahb", "clk_xin";
98 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
99 mmc-ddr-1_8v;
100 mmc-hs200-1_8v;
Faiz Abbasc7d106b2020-02-26 13:44:33 +0530101 ti,otap-del-sel-legacy = <0x0>;
102 ti,otap-del-sel-mmc-hs = <0x0>;
103 ti,otap-del-sel-sd-hs = <0x0>;
104 ti,otap-del-sel-sdr12 = <0x0>;
105 ti,otap-del-sel-sdr25 = <0x0>;
106 ti,otap-del-sel-sdr50 = <0x8>;
107 ti,otap-del-sel-sdr104 = <0x5>;
108 ti,otap-del-sel-ddr50 = <0x5>;
109 ti,otap-del-sel-ddr52 = <0x5>;
110 ti,otap-del-sel-hs200 = <0x5>;
111 ti,otap-del-sel-hs400 = <0x0>;
Faiz Abbas0758e9f2021-02-04 15:11:03 +0530112 ti,itap-del-sel-legacy = <0xa>;
113 ti,itap-del-sel-mmc-hs = <0x1>;
114 ti,itap-del-sel-sdr12 = <0xa>;
115 ti,itap-del-sel-sdr25 = <0x1>;
116 ti,clkbuf-sel = <0x7>;
Faiz Abbas3a1a0df2019-06-11 00:43:31 +0530117 ti,trm-icp = <0x8>;
118 dma-coherent;
119 };
Andreas Dannenbergbbe59162019-06-04 18:08:14 -0500120
Faiz Abbas2121c7e2021-02-04 15:10:56 +0530121 sdhci1: sdhci@4fa0000 {
122 compatible = "ti,am654-sdhci-5.1";
123 reg = <0x0 0x4fa0000 0x0 0x260>, <0x0 0x4fb0000 0x0 0x134>;
124 power-domains = <&k3_pds 48 TI_SCI_PD_EXCLUSIVE>;
125 clocks = <&k3_clks 48 0>, <&k3_clks 48 1>;
126 clock-names = "clk_ahb", "clk_xin";
127 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
128 ti,otap-del-sel-legacy = <0x0>;
129 ti,otap-del-sel-mmc-hs = <0x0>;
130 ti,otap-del-sel-sd-hs = <0x0>;
131 ti,otap-del-sel-sdr12 = <0x0>;
132 ti,otap-del-sel-sdr25 = <0x0>;
133 ti,otap-del-sel-sdr50 = <0x8>;
134 ti,otap-del-sel-sdr104 = <0x7>;
135 ti,otap-del-sel-ddr50 = <0x4>;
136 ti,otap-del-sel-ddr52 = <0x4>;
137 ti,otap-del-sel-hs200 = <0x7>;
Faiz Abbas0758e9f2021-02-04 15:11:03 +0530138 ti,itap-del-sel-legacy = <0xa>;
139 ti,itap-del-sel-mmc-hs = <0x1>;
140 ti,itap-del-sel-sdr12 = <0xa>;
141 ti,itap-del-sel-sdr25 = <0x1>;
Faiz Abbas2121c7e2021-02-04 15:10:56 +0530142 ti,clkbuf-sel = <0x7>;
143 ti,trm-icp = <0x8>;
144 dma-coherent;
145 };
146
Andreas Dannenbergbbe59162019-06-04 18:08:14 -0500147 main_i2c0: i2c@2000000 {
148 compatible = "ti,am654-i2c", "ti,omap4-i2c";
149 reg = <0x0 0x2000000 0x0 0x100>;
150 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>;
151 #address-cells = <1>;
152 #size-cells = <0>;
153 clock-names = "fck";
154 clocks = <&k3_clks 110 1>;
Lokesh Vutla355be912019-06-07 19:24:47 +0530155 power-domains = <&k3_pds 110 TI_SCI_PD_EXCLUSIVE>;
Andreas Dannenbergbbe59162019-06-04 18:08:14 -0500156 };
157
158 main_i2c1: i2c@2010000 {
159 compatible = "ti,am654-i2c", "ti,omap4-i2c";
160 reg = <0x0 0x2010000 0x0 0x100>;
161 interrupts = <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
162 #address-cells = <1>;
163 #size-cells = <0>;
164 clock-names = "fck";
165 clocks = <&k3_clks 111 1>;
Lokesh Vutla355be912019-06-07 19:24:47 +0530166 power-domains = <&k3_pds 111 TI_SCI_PD_EXCLUSIVE>;
Andreas Dannenbergbbe59162019-06-04 18:08:14 -0500167 };
168
169 main_i2c2: i2c@2020000 {
170 compatible = "ti,am654-i2c", "ti,omap4-i2c";
171 reg = <0x0 0x2020000 0x0 0x100>;
172 interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
173 #address-cells = <1>;
174 #size-cells = <0>;
175 clock-names = "fck";
176 clocks = <&k3_clks 112 1>;
Lokesh Vutla355be912019-06-07 19:24:47 +0530177 power-domains = <&k3_pds 112 TI_SCI_PD_EXCLUSIVE>;
Andreas Dannenbergbbe59162019-06-04 18:08:14 -0500178 };
179
180 main_i2c3: i2c@2030000 {
181 compatible = "ti,am654-i2c", "ti,omap4-i2c";
182 reg = <0x0 0x2030000 0x0 0x100>;
183 interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>;
184 #address-cells = <1>;
185 #size-cells = <0>;
186 clock-names = "fck";
187 clocks = <&k3_clks 113 1>;
Lokesh Vutla355be912019-06-07 19:24:47 +0530188 power-domains = <&k3_pds 113 TI_SCI_PD_EXCLUSIVE>;
Andreas Dannenbergbbe59162019-06-04 18:08:14 -0500189 };
Sekhar Nori476e9912019-08-01 19:13:00 +0530190
191 scm_conf: scm_conf@100000 {
192 compatible = "syscon", "simple-mfd";
193 reg = <0 0x00100000 0 0x1c000>;
194 #address-cells = <1>;
195 #size-cells = <1>;
196 ranges = <0x0 0x0 0x00100000 0x1c000>;
197
198 serdes_mux: mux-controller {
199 compatible = "mmio-mux";
200 #mux-control-cells = <1>;
201 mux-reg-masks = <0x4080 0x3>, /* SERDES0 lane select */
202 <0x4090 0x3>; /* SERDES1 lane select */
203 };
204
205 pcie0_mode: pcie-mode@4060 {
206 compatible = "syscon";
207 reg = <0x00004060 0x4>;
208 };
209
210 pcie1_mode: pcie-mode@4070 {
211 compatible = "syscon";
212 reg = <0x00004070 0x4>;
213 };
214
215 serdes0_clk: serdes_clk@4080 {
216 compatible = "syscon";
217 reg = <0x00004080 0x4>;
218 };
219
220 serdes1_clk: serdes_clk@4090 {
221 compatible = "syscon";
222 reg = <0x00004090 0x4>;
223 };
224
225 pcie_devid: pcie-devid@210 {
226 compatible = "syscon";
227 reg = <0x00000210 0x4>;
228 };
229 };
230
231 serdes0: serdes@900000 {
232 compatible = "ti,phy-am654-serdes";
233 reg = <0x0 0x900000 0x0 0x2000>;
234 reg-names = "serdes";
235 #phy-cells = <2>;
236 power-domains = <&k3_pds 153 TI_SCI_PD_EXCLUSIVE>;
237 clocks = <&k3_clks 153 4>, <&k3_clks 153 1>, <&serdes1 AM654_SERDES_LO_REFCLK>;
238 clock-output-names = "serdes0_cmu_refclk", "serdes0_lo_refclk", "serdes0_ro_refclk";
239 assigned-clocks = <&k3_clks 153 4>, <&serdes0 AM654_SERDES_CMU_REFCLK>;
240 assigned-clock-parents = <&k3_clks 153 8>, <&k3_clks 153 4>;
241 ti,serdes-clk = <&serdes0_clk>;
242 mux-controls = <&serdes_mux 0>;
243 #clock-cells = <1>;
244 };
245
246 serdes1: serdes@910000 {
247 compatible = "ti,phy-am654-serdes";
248 reg = <0x0 0x910000 0x0 0x2000>;
249 reg-names = "serdes";
250 #phy-cells = <2>;
251 power-domains = <&k3_pds 154 TI_SCI_PD_EXCLUSIVE>;
252 clocks = <&serdes0 AM654_SERDES_RO_REFCLK>, <&k3_clks 154 1>, <&k3_clks 154 5>;
253 clock-output-names = "serdes1_cmu_refclk", "serdes1_lo_refclk", "serdes1_ro_refclk";
254 assigned-clocks = <&k3_clks 154 5>, <&serdes1 AM654_SERDES_CMU_REFCLK>;
255 assigned-clock-parents = <&k3_clks 154 9>, <&k3_clks 154 5>;
256 ti,serdes-clk = <&serdes1_clk>;
257 mux-controls = <&serdes_mux 1>;
258 #clock-cells = <1>;
259 };
260
261 pcie0_rc: pcie@5500000 {
262 compatible = "ti,am654-pcie-rc";
263 reg = <0x0 0x5500000 0x0 0x1000>, <0x0 0x5501000 0x0 0x1000>, <0x0 0x10000000 0x0 0x2000>, <0x0 0x5506000 0x0 0x1000>;
264 reg-names = "app", "dbics", "config", "atu";
265 power-domains = <&k3_pds 120 TI_SCI_PD_EXCLUSIVE>;
266 #address-cells = <3>;
267 #size-cells = <2>;
268 ranges = <0x81000000 0 0 0x0 0x10020000 0 0x00010000
269 0x82000000 0 0x10030000 0x0 0x10030000 0 0x07FD0000>;
270 ti,syscon-pcie-id = <&pcie_devid>;
271 ti,syscon-pcie-mode = <&pcie0_mode>;
272 bus-range = <0x0 0xff>;
273 status = "disabled";
274 device_type = "pci";
275 num-lanes = <1>;
276 num-ob-windows = <16>;
277 num-viewport = <16>;
278 max-link-speed = <3>;
279 interrupts = <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>;
280 #interrupt-cells = <1>;
281 interrupt-map-mask = <0 0 0 7>;
282 interrupt-map = <0 0 0 1 &pcie0_intc 0>, /* INT A */
283 <0 0 0 2 &pcie0_intc 0>, /* INT B */
284 <0 0 0 3 &pcie0_intc 0>, /* INT C */
285 <0 0 0 4 &pcie0_intc 0>; /* INT D */
286 msi-map = <0x0 &gic_its 0x0 0x10000>;
287
288 pcie0_intc: legacy-interrupt-controller@1 {
289 interrupt-controller;
290 #interrupt-cells = <1>;
291 interrupt-parent = <&gic500>;
292 interrupts = <GIC_SPI 328 IRQ_TYPE_EDGE_RISING>;
293 };
294 };
Vignesh Raghavendraa1ac85d2019-12-09 10:37:32 +0530295
296 dwc3_0: dwc3@4000000 {
297 compatible = "ti,am654-dwc3";
298 reg = <0x0 0x4000000 0x0 0x4000>;
299 #address-cells = <1>;
300 #size-cells = <1>;
301 ranges = <0x0 0x0 0x4000000 0x20000>;
302 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
303 dma-coherent;
304 power-domains = <&k3_pds 151 TI_SCI_PD_EXCLUSIVE>;
305 assigned-clocks = <&k3_clks 151 2>, <&k3_clks 151 7>;
306 assigned-clock-parents = <&k3_clks 151 4>, /* set REF_CLK to 20MHz i.e. PER0_PLL/48 */
307 <&k3_clks 151 9>; /* set PIPE3_TXB_CLK to CLK_12M_RC/256 (for HS only) */
308
309 usb0: usb@10000 {
310 compatible = "snps,dwc3";
311 reg = <0x10000 0x10000>;
312 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
313 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
314 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
315 interrupt-names = "peripheral",
316 "host",
317 "otg";
318 maximum-speed = "high-speed";
319 dr_mode = "otg";
320 phys = <&usb0_phy>;
321 phy-names = "usb2-phy";
322 snps,dis_u3_susphy_quirk;
323 };
324 };
325
326 usb0_phy: phy@4100000 {
327 compatible = "ti,am654-usb2", "ti,omap-usb2";
328 reg = <0x0 0x4100000 0x0 0x54>;
329 syscon-phy-power = <&scm_conf 0x4000>;
330 clocks = <&k3_clks 151 0>, <&k3_clks 151 1>;
331 clock-names = "wkupclk", "refclk";
332 #phy-cells = <0>;
333 ti,dis-chg-det-quirk;
334 };
335
336 dwc3_1: dwc3@4020000 {
337 compatible = "ti,am654-dwc3";
338 reg = <0x0 0x4020000 0x0 0x4000>;
339 #address-cells = <1>;
340 #size-cells = <1>;
341 ranges = <0x0 0x0 0x4020000 0x20000>;
342 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
343 dma-coherent;
344 power-domains = <&k3_pds 152 TI_SCI_PD_EXCLUSIVE>;
345 assigned-clocks = <&k3_clks 152 2>;
346 assigned-clock-parents = <&k3_clks 152 4>; /* set REF_CLK to 20MHz i.e. PER0_PLL/48 */
347
348 usb1: usb@10000 {
349 compatible = "snps,dwc3";
350 reg = <0x10000 0x10000>;
351 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
352 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
353 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
354 interrupt-names = "peripheral",
355 "host",
356 "otg";
357 maximum-speed = "high-speed";
358 dr_mode = "otg";
359 phys = <&usb1_phy>;
360 phy-names = "usb2-phy";
361 };
362 };
363
364 usb1_phy: phy@4110000 {
365 compatible = "ti,am654-usb2", "ti,omap-usb2";
366 reg = <0x0 0x4110000 0x0 0x54>;
367 syscon-phy-power = <&scm_conf 0x4020>;
368 clocks = <&k3_clks 152 0>, <&k3_clks 152 1>;
369 clock-names = "wkupclk", "refclk";
370 #phy-cells = <0>;
371 ti,dis-chg-det-quirk;
372 };
Lokesh Vutlaea8ad1d2018-08-27 15:59:08 +0530373};