1// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2/* 3 * Copyright (c) 2021 MediaTek Inc. 4 * Author: Seiya Wang <seiya.wang@mediatek.com> 5 */ 6 7/dts-v1/; 8#include <dt-bindings/clock/mt8195-clk.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h> 10#include <dt-bindings/interrupt-controller/irq.h> 11#include <dt-bindings/phy/phy.h> 12#include <dt-bindings/pinctrl/mt8195-pinfunc.h> 13#include <dt-bindings/reset/ti-syscon.h> 14 15/ { 16 compatible = "mediatek,mt8195"; 17 interrupt-parent = <&gic>; 18 #address-cells = <2>; 19 #size-cells = <2>; 20 21 cpus { 22 #address-cells = <1>; 23 #size-cells = <0>; 24 25 cpu0: cpu@0 { 26 device_type = "cpu"; 27 compatible = "arm,cortex-a55"; 28 reg = <0x000>; 29 enable-method = "psci"; 30 clock-frequency = <1701000000>; 31 capacity-dmips-mhz = <578>; 32 cpu-idle-states = <&cpu_off_l &cluster_off_l>; 33 next-level-cache = <&l2_0>; 34 #cooling-cells = <2>; 35 }; 36 37 cpu1: cpu@100 { 38 device_type = "cpu"; 39 compatible = "arm,cortex-a55"; 40 reg = <0x100>; 41 enable-method = "psci"; 42 clock-frequency = <1701000000>; 43 capacity-dmips-mhz = <578>; 44 cpu-idle-states = <&cpu_off_l &cluster_off_l>; 45 next-level-cache = <&l2_0>; 46 #cooling-cells = <2>; 47 }; 48 49 cpu2: cpu@200 { 50 device_type = "cpu"; 51 compatible = "arm,cortex-a55"; 52 reg = <0x200>; 53 enable-method = "psci"; 54 clock-frequency = <1701000000>; 55 capacity-dmips-mhz = <578>; 56 cpu-idle-states = <&cpu_off_l &cluster_off_l>; 57 next-level-cache = <&l2_0>; 58 #cooling-cells = <2>; 59 }; 60 61 cpu3: cpu@300 { 62 device_type = "cpu"; 63 compatible = "arm,cortex-a55"; 64 reg = <0x300>; 65 enable-method = "psci"; 66 clock-frequency = <1701000000>; 67 capacity-dmips-mhz = <578>; 68 cpu-idle-states = <&cpu_off_l &cluster_off_l>; 69 next-level-cache = <&l2_0>; 70 #cooling-cells = <2>; 71 }; 72 73 cpu4: cpu@400 { 74 device_type = "cpu"; 75 compatible = "arm,cortex-a78"; 76 reg = <0x400>; 77 enable-method = "psci"; 78 clock-frequency = <2171000000>; 79 capacity-dmips-mhz = <1024>; 80 cpu-idle-states = <&cpu_off_b &cluster_off_b>; 81 next-level-cache = <&l2_1>; 82 #cooling-cells = <2>; 83 }; 84 85 cpu5: cpu@500 { 86 device_type = "cpu"; 87 compatible = "arm,cortex-a78"; 88 reg = <0x500>; 89 enable-method = "psci"; 90 clock-frequency = <2171000000>; 91 capacity-dmips-mhz = <1024>; 92 cpu-idle-states = <&cpu_off_b &cluster_off_b>; 93 next-level-cache = <&l2_1>; 94 #cooling-cells = <2>; 95 }; 96 97 cpu6: cpu@600 { 98 device_type = "cpu"; 99 compatible = "arm,cortex-a78"; 100 reg = <0x600>; 101 enable-method = "psci"; 102 clock-frequency = <2171000000>; 103 capacity-dmips-mhz = <1024>; 104 cpu-idle-states = <&cpu_off_b &cluster_off_b>; 105 next-level-cache = <&l2_1>; 106 #cooling-cells = <2>; 107 }; 108 109 cpu7: cpu@700 { 110 device_type = "cpu"; 111 compatible = "arm,cortex-a78"; 112 reg = <0x700>; 113 enable-method = "psci"; 114 clock-frequency = <2171000000>; 115 capacity-dmips-mhz = <1024>; 116 cpu-idle-states = <&cpu_off_b &cluster_off_b>; 117 next-level-cache = <&l2_1>; 118 #cooling-cells = <2>; 119 }; 120 121 cpu-map { 122 cluster0 { 123 core0 { 124 cpu = <&cpu0>; 125 }; 126 127 core1 { 128 cpu = <&cpu1>; 129 }; 130 131 core2 { 132 cpu = <&cpu2>; 133 }; 134 135 core3 { 136 cpu = <&cpu3>; 137 }; 138 }; 139 140 cluster1 { 141 core0 { 142 cpu = <&cpu4>; 143 }; 144 145 core1 { 146 cpu = <&cpu5>; 147 }; 148 149 core2 { 150 cpu = <&cpu6>; 151 }; 152 153 core3 { 154 cpu = <&cpu7>; 155 }; 156 }; 157 }; 158 159 idle-states { 160 entry-method = "psci"; 161 162 cpu_off_l: cpu-off-l { 163 compatible = "arm,idle-state"; 164 arm,psci-suspend-param = <0x00010001>; 165 local-timer-stop; 166 entry-latency-us = <50>; 167 exit-latency-us = <95>; 168 min-residency-us = <580>; 169 }; 170 171 cpu_off_b: cpu-off-b { 172 compatible = "arm,idle-state"; 173 arm,psci-suspend-param = <0x00010001>; 174 local-timer-stop; 175 entry-latency-us = <45>; 176 exit-latency-us = <140>; 177 min-residency-us = <740>; 178 }; 179 180 cluster_off_l: cluster-off-l { 181 compatible = "arm,idle-state"; 182 arm,psci-suspend-param = <0x01010002>; 183 local-timer-stop; 184 entry-latency-us = <55>; 185 exit-latency-us = <155>; 186 min-residency-us = <840>; 187 }; 188 189 cluster_off_b: cluster-off-b { 190 compatible = "arm,idle-state"; 191 arm,psci-suspend-param = <0x01010002>; 192 local-timer-stop; 193 entry-latency-us = <50>; 194 exit-latency-us = <200>; 195 min-residency-us = <1000>; 196 }; 197 }; 198 199 l2_0: l2-cache0 { 200 compatible = "cache"; 201 next-level-cache = <&l3_0>; 202 }; 203 204 l2_1: l2-cache1 { 205 compatible = "cache"; 206 next-level-cache = <&l3_0>; 207 }; 208 209 l3_0: l3-cache { 210 compatible = "cache"; 211 }; 212 }; 213 214 dsu-pmu { 215 compatible = "arm,dsu-pmu"; 216 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>; 217 cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>, 218 <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>; 219 }; 220 221 clk26m: oscillator-26m { 222 compatible = "fixed-clock"; 223 #clock-cells = <0>; 224 clock-frequency = <26000000>; 225 clock-output-names = "clk26m"; 226 }; 227 228 clk32k: oscillator-32k { 229 compatible = "fixed-clock"; 230 #clock-cells = <0>; 231 clock-frequency = <32768>; 232 clock-output-names = "clk32k"; 233 }; 234 235 pmu-a55 { 236 compatible = "arm,cortex-a55-pmu"; 237 interrupt-parent = <&gic>; 238 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>; 239 }; 240 241 pmu-a78 { 242 compatible = "arm,cortex-a78-pmu"; 243 interrupt-parent = <&gic>; 244 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>; 245 }; 246 247 psci { 248 compatible = "arm,psci-1.0"; 249 method = "smc"; 250 }; 251 252 timer: timer { 253 compatible = "arm,armv8-timer"; 254 interrupt-parent = <&gic>; 255 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>, 256 <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>, 257 <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>, 258 <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>; 259 }; 260 261 soc { 262 #address-cells = <2>; 263 #size-cells = <2>; 264 compatible = "simple-bus"; 265 ranges; 266 267 gic: interrupt-controller@c000000 { 268 compatible = "arm,gic-v3"; 269 #interrupt-cells = <4>; 270 #redistributor-regions = <1>; 271 interrupt-parent = <&gic>; 272 interrupt-controller; 273 reg = <0 0x0c000000 0 0x40000>, 274 <0 0x0c040000 0 0x200000>; 275 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>; 276 277 ppi-partitions { 278 ppi_cluster0: interrupt-partition-0 { 279 affinity = <&cpu0 &cpu1 &cpu2 &cpu3>; 280 }; 281 282 ppi_cluster1: interrupt-partition-1 { 283 affinity = <&cpu4 &cpu5 &cpu6 &cpu7>; 284 }; 285 }; 286 }; 287 288 topckgen: syscon@10000000 { 289 compatible = "mediatek,mt8195-topckgen", "syscon"; 290 reg = <0 0x10000000 0 0x1000>; 291 #clock-cells = <1>; 292 }; 293 294 infracfg_ao: syscon@10001000 { 295 compatible = "mediatek,mt8195-infracfg_ao", "syscon", "simple-mfd"; 296 reg = <0 0x10001000 0 0x1000>; 297 #clock-cells = <1>; 298 299 infracfg_rst: reset-controller { 300 compatible = "ti,syscon-reset"; 301 #reset-cells = <1>; 302 ti,reset-bits = < 303 0x140 18 0x144 18 0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* pcie */ 304 0x120 0 0x124 0 0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* thermal */ 305 0x730 10 0x734 10 0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* thermal */ 306 0x150 5 0x154 5 0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* svs gpu */ 307 >; 308 }; 309 }; 310 311 pericfg: syscon@10003000 { 312 compatible = "mediatek,mt8195-pericfg", "syscon"; 313 reg = <0 0x10003000 0 0x1000>; 314 #clock-cells = <1>; 315 }; 316 317 pio: pinctrl@10005000 { 318 compatible = "mediatek,mt8195-pinctrl"; 319 reg = <0 0x10005000 0 0x1000>, 320 <0 0x11d10000 0 0x1000>, 321 <0 0x11d30000 0 0x1000>, 322 <0 0x11d40000 0 0x1000>, 323 <0 0x11e20000 0 0x1000>, 324 <0 0x11eb0000 0 0x1000>, 325 <0 0x11f40000 0 0x1000>, 326 <0 0x1000b000 0 0x1000>; 327 reg-names = "iocfg0", "iocfg_bm", "iocfg_bl", 328 "iocfg_br", "iocfg_lm", "iocfg_rb", 329 "iocfg_tl", "eint"; 330 gpio-controller; 331 #gpio-cells = <2>; 332 gpio-ranges = <&pio 0 0 144>; 333 interrupt-controller; 334 interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH 0>; 335 #interrupt-cells = <2>; 336 }; 337 338 watchdog: watchdog@10007000 { 339 compatible = "mediatek,mt8195-wdt", 340 "mediatek,mt6589-wdt"; 341 reg = <0 0x10007000 0 0x100>; 342 }; 343 344 apmixedsys: syscon@1000c000 { 345 compatible = "mediatek,mt8195-apmixedsys", "syscon"; 346 reg = <0 0x1000c000 0 0x1000>; 347 #clock-cells = <1>; 348 }; 349 350 systimer: timer@10017000 { 351 compatible = "mediatek,mt8195-timer", 352 "mediatek,mt6765-timer"; 353 reg = <0 0x10017000 0 0x1000>; 354 interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH 0>; 355 clocks = <&topckgen CLK_TOP_CLK26M_D2>; 356 }; 357 358 pwrap: pwrap@10024000 { 359 compatible = "mediatek,mt8195-pwrap", "syscon"; 360 reg = <0 0x10024000 0 0x1000>; 361 reg-names = "pwrap"; 362 interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH 0>; 363 clocks = <&infracfg_ao CLK_INFRA_AO_PMIC_AP>, 364 <&infracfg_ao CLK_INFRA_AO_PMIC_TMR>; 365 clock-names = "spi", "wrap"; 366 assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC>; 367 assigned-clock-parents = <&topckgen CLK_TOP_ULPOSC1_D10>; 368 }; 369 370 scp_adsp: clock-controller@10720000 { 371 compatible = "mediatek,mt8195-scp_adsp"; 372 reg = <0 0x10720000 0 0x1000>; 373 #clock-cells = <1>; 374 }; 375 376 uart0: serial@11001100 { 377 compatible = "mediatek,mt8195-uart", 378 "mediatek,mt6577-uart"; 379 reg = <0 0x11001100 0 0x100>; 380 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH 0>; 381 clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART0>; 382 clock-names = "baud", "bus"; 383 status = "disabled"; 384 }; 385 386 uart1: serial@11001200 { 387 compatible = "mediatek,mt8195-uart", 388 "mediatek,mt6577-uart"; 389 reg = <0 0x11001200 0 0x100>; 390 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH 0>; 391 clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART1>; 392 clock-names = "baud", "bus"; 393 status = "disabled"; 394 }; 395 396 uart2: serial@11001300 { 397 compatible = "mediatek,mt8195-uart", 398 "mediatek,mt6577-uart"; 399 reg = <0 0x11001300 0 0x100>; 400 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH 0>; 401 clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART2>; 402 clock-names = "baud", "bus"; 403 status = "disabled"; 404 }; 405 406 uart3: serial@11001400 { 407 compatible = "mediatek,mt8195-uart", 408 "mediatek,mt6577-uart"; 409 reg = <0 0x11001400 0 0x100>; 410 interrupts = <GIC_SPI 723 IRQ_TYPE_LEVEL_HIGH 0>; 411 clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART3>; 412 clock-names = "baud", "bus"; 413 status = "disabled"; 414 }; 415 416 uart4: serial@11001500 { 417 compatible = "mediatek,mt8195-uart", 418 "mediatek,mt6577-uart"; 419 reg = <0 0x11001500 0 0x100>; 420 interrupts = <GIC_SPI 724 IRQ_TYPE_LEVEL_HIGH 0>; 421 clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART4>; 422 clock-names = "baud", "bus"; 423 status = "disabled"; 424 }; 425 426 uart5: serial@11001600 { 427 compatible = "mediatek,mt8195-uart", 428 "mediatek,mt6577-uart"; 429 reg = <0 0x11001600 0 0x100>; 430 interrupts = <GIC_SPI 725 IRQ_TYPE_LEVEL_HIGH 0>; 431 clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART5>; 432 clock-names = "baud", "bus"; 433 status = "disabled"; 434 }; 435 436 auxadc: auxadc@11002000 { 437 compatible = "mediatek,mt8195-auxadc", 438 "mediatek,mt8173-auxadc"; 439 reg = <0 0x11002000 0 0x1000>; 440 clocks = <&infracfg_ao CLK_INFRA_AO_AUXADC>; 441 clock-names = "main"; 442 #io-channel-cells = <1>; 443 status = "disabled"; 444 }; 445 446 pericfg_ao: syscon@11003000 { 447 compatible = "mediatek,mt8195-pericfg_ao", "syscon"; 448 reg = <0 0x11003000 0 0x1000>; 449 #clock-cells = <1>; 450 }; 451 452 spi0: spi@1100a000 { 453 compatible = "mediatek,mt8195-spi", 454 "mediatek,mt6765-spi"; 455 #address-cells = <1>; 456 #size-cells = <0>; 457 reg = <0 0x1100a000 0 0x1000>; 458 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH 0>; 459 clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>, 460 <&topckgen CLK_TOP_SPI>, 461 <&infracfg_ao CLK_INFRA_AO_SPI0>; 462 clock-names = "parent-clk", "sel-clk", "spi-clk"; 463 status = "disabled"; 464 }; 465 466 spi1: spi@11010000 { 467 compatible = "mediatek,mt8195-spi", 468 "mediatek,mt6765-spi"; 469 #address-cells = <1>; 470 #size-cells = <0>; 471 reg = <0 0x11010000 0 0x1000>; 472 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH 0>; 473 clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>, 474 <&topckgen CLK_TOP_SPI>, 475 <&infracfg_ao CLK_INFRA_AO_SPI1>; 476 clock-names = "parent-clk", "sel-clk", "spi-clk"; 477 status = "disabled"; 478 }; 479 480 spi2: spi@11012000 { 481 compatible = "mediatek,mt8195-spi", 482 "mediatek,mt6765-spi"; 483 #address-cells = <1>; 484 #size-cells = <0>; 485 reg = <0 0x11012000 0 0x1000>; 486 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH 0>; 487 clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>, 488 <&topckgen CLK_TOP_SPI>, 489 <&infracfg_ao CLK_INFRA_AO_SPI2>; 490 clock-names = "parent-clk", "sel-clk", "spi-clk"; 491 status = "disabled"; 492 }; 493 494 spi3: spi@11013000 { 495 compatible = "mediatek,mt8195-spi", 496 "mediatek,mt6765-spi"; 497 #address-cells = <1>; 498 #size-cells = <0>; 499 reg = <0 0x11013000 0 0x1000>; 500 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH 0>; 501 clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>, 502 <&topckgen CLK_TOP_SPI>, 503 <&infracfg_ao CLK_INFRA_AO_SPI3>; 504 clock-names = "parent-clk", "sel-clk", "spi-clk"; 505 status = "disabled"; 506 }; 507 508 spi4: spi@11018000 { 509 compatible = "mediatek,mt8195-spi", 510 "mediatek,mt6765-spi"; 511 #address-cells = <1>; 512 #size-cells = <0>; 513 reg = <0 0x11018000 0 0x1000>; 514 interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH 0>; 515 clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>, 516 <&topckgen CLK_TOP_SPI>, 517 <&infracfg_ao CLK_INFRA_AO_SPI4>; 518 clock-names = "parent-clk", "sel-clk", "spi-clk"; 519 status = "disabled"; 520 }; 521 522 spi5: spi@11019000 { 523 compatible = "mediatek,mt8195-spi", 524 "mediatek,mt6765-spi"; 525 #address-cells = <1>; 526 #size-cells = <0>; 527 reg = <0 0x11019000 0 0x1000>; 528 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH 0>; 529 clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>, 530 <&topckgen CLK_TOP_SPI>, 531 <&infracfg_ao CLK_INFRA_AO_SPI5>; 532 clock-names = "parent-clk", "sel-clk", "spi-clk"; 533 status = "disabled"; 534 }; 535 536 spis0: spi@1101d000 { 537 compatible = "mediatek,mt8195-spi-slave"; 538 reg = <0 0x1101d000 0 0x1000>; 539 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH 0>; 540 clocks = <&infracfg_ao CLK_INFRA_AO_SPIS0>; 541 clock-names = "spi"; 542 assigned-clocks = <&topckgen CLK_TOP_SPIS>; 543 assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D6>; 544 status = "disabled"; 545 }; 546 547 spis1: spi@1101e000 { 548 compatible = "mediatek,mt8195-spi-slave"; 549 reg = <0 0x1101e000 0 0x1000>; 550 interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH 0>; 551 clocks = <&infracfg_ao CLK_INFRA_AO_SPIS1>; 552 clock-names = "spi"; 553 assigned-clocks = <&topckgen CLK_TOP_SPIS>; 554 assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D6>; 555 status = "disabled"; 556 }; 557 558 xhci0: usb@11200000 { 559 compatible = "mediatek,mt8195-xhci", 560 "mediatek,mtk-xhci"; 561 reg = <0 0x11200000 0 0x1000>, 562 <0 0x11203e00 0 0x0100>; 563 reg-names = "mac", "ippc"; 564 interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH 0>; 565 phys = <&u2port0 PHY_TYPE_USB2>, 566 <&u3port0 PHY_TYPE_USB3>; 567 assigned-clocks = <&topckgen CLK_TOP_USB_TOP>, 568 <&topckgen CLK_TOP_SSUSB_XHCI>; 569 assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>, 570 <&topckgen CLK_TOP_UNIVPLL_D5_D4>; 571 clocks = <&infracfg_ao CLK_INFRA_AO_SSUSB>, 572 <&topckgen CLK_TOP_SSUSB_REF>, 573 <&apmixedsys CLK_APMIXED_USB1PLL>, 574 <&infracfg_ao CLK_INFRA_AO_SSUSB_XHCI>; 575 clock-names = "sys_ck", "ref_ck", "mcu_ck", "xhci_ck"; 576 status = "disabled"; 577 }; 578 579 mmc0: mmc@11230000 { 580 compatible = "mediatek,mt8195-mmc", 581 "mediatek,mt8183-mmc"; 582 reg = <0 0x11230000 0 0x10000>, 583 <0 0x11f50000 0 0x1000>; 584 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH 0>; 585 clocks = <&topckgen CLK_TOP_MSDC50_0>, 586 <&infracfg_ao CLK_INFRA_AO_MSDC0>, 587 <&infracfg_ao CLK_INFRA_AO_MSDC0_SRC>; 588 clock-names = "source", "hclk", "source_cg"; 589 status = "disabled"; 590 }; 591 592 mmc1: mmc@11240000 { 593 compatible = "mediatek,mt8195-mmc", 594 "mediatek,mt8183-mmc"; 595 reg = <0 0x11240000 0 0x1000>, 596 <0 0x11c70000 0 0x1000>; 597 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH 0>; 598 clocks = <&topckgen CLK_TOP_MSDC30_1>, 599 <&infracfg_ao CLK_INFRA_AO_MSDC1>, 600 <&infracfg_ao CLK_INFRA_AO_MSDC1_SRC>; 601 clock-names = "source", "hclk", "source_cg"; 602 assigned-clocks = <&topckgen CLK_TOP_MSDC30_1>; 603 assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>; 604 status = "disabled"; 605 }; 606 607 mmc2: mmc@11250000 { 608 compatible = "mediatek,mt8195-mmc", 609 "mediatek,mt8183-mmc"; 610 reg = <0 0x11250000 0 0x1000>, 611 <0 0x11e60000 0 0x1000>; 612 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>; 613 clocks = <&topckgen CLK_TOP_MSDC30_2>, 614 <&infracfg_ao CLK_INFRA_AO_CG1_MSDC2>, 615 <&infracfg_ao CLK_INFRA_AO_CG3_MSDC2>; 616 clock-names = "source", "hclk", "source_cg"; 617 assigned-clocks = <&topckgen CLK_TOP_MSDC30_2>; 618 assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>; 619 status = "disabled"; 620 }; 621 622 xhci1: usb@11290000 { 623 compatible = "mediatek,mt8195-xhci", 624 "mediatek,mtk-xhci"; 625 reg = <0 0x11290000 0 0x1000>, 626 <0 0x11293e00 0 0x0100>; 627 reg-names = "mac", "ippc"; 628 interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH 0>; 629 phys = <&u2port1 PHY_TYPE_USB2>; 630 assigned-clocks = <&topckgen CLK_TOP_USB_TOP_1P>, 631 <&topckgen CLK_TOP_SSUSB_XHCI_1P>; 632 assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>, 633 <&topckgen CLK_TOP_UNIVPLL_D5_D4>; 634 clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_1P_BUS>, 635 <&topckgen CLK_TOP_SSUSB_P1_REF>, 636 <&apmixedsys CLK_APMIXED_USB1PLL>, 637 <&pericfg_ao CLK_PERI_AO_SSUSB_1P_XHCI>; 638 clock-names = "sys_ck", "ref_ck", "mcu_ck","xhci_ck"; 639 status = "disabled"; 640 }; 641 642 xhci2: usb@112a0000 { 643 compatible = "mediatek,mt8195-xhci", 644 "mediatek,mtk-xhci"; 645 reg = <0 0x112a0000 0 0x1000>, 646 <0 0x112a3e00 0 0x0100>; 647 reg-names = "mac", "ippc"; 648 interrupts = <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH 0>; 649 phys = <&u2port2 PHY_TYPE_USB2>; 650 assigned-clocks = <&topckgen CLK_TOP_USB_TOP_2P>, 651 <&topckgen CLK_TOP_SSUSB_XHCI_2P>; 652 assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>, 653 <&topckgen CLK_TOP_UNIVPLL_D5_D4>; 654 clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_2P_BUS>, 655 <&topckgen CLK_TOP_SSUSB_P2_REF>, 656 <&pericfg_ao CLK_PERI_AO_SSUSB_2P_XHCI>; 657 clock-names = "sys_ck", "ref_ck", "xhci_ck"; 658 status = "disabled"; 659 }; 660 661 xhci3: usb@112b0000 { 662 compatible = "mediatek,mt8195-xhci", 663 "mediatek,mtk-xhci"; 664 reg = <0 0x112b0000 0 0x1000>, 665 <0 0x112b3e00 0 0x0100>; 666 reg-names = "mac", "ippc"; 667 interrupts = <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH 0>; 668 phys = <&u2port3 PHY_TYPE_USB2>; 669 assigned-clocks = <&topckgen CLK_TOP_USB_TOP_3P>, 670 <&topckgen CLK_TOP_SSUSB_XHCI_3P>; 671 assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>, 672 <&topckgen CLK_TOP_UNIVPLL_D5_D4>; 673 clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_3P_BUS>, 674 <&topckgen CLK_TOP_SSUSB_P3_REF>, 675 <&pericfg_ao CLK_PERI_AO_SSUSB_3P_XHCI>; 676 clock-names = "sys_ck", "ref_ck", "xhci_ck"; 677 status = "disabled"; 678 }; 679 680 nor_flash: spi@1132c000 { 681 compatible = "mediatek,mt8195-nor", 682 "mediatek,mt8173-nor"; 683 reg = <0 0x1132c000 0 0x1000>; 684 interrupts = <GIC_SPI 825 IRQ_TYPE_LEVEL_HIGH 0>; 685 clocks = <&topckgen CLK_TOP_SPINOR>, 686 <&pericfg_ao CLK_PERI_AO_FLASHIF_FLASH>, 687 <&pericfg_ao CLK_PERI_AO_FLASHIF_BUS>; 688 clock-names = "spi", "sf", "axi"; 689 #address-cells = <1>; 690 #size-cells = <0>; 691 status = "disabled"; 692 }; 693 694 efuse: efuse@11c10000 { 695 compatible = "mediatek,mt8195-efuse", "mediatek,efuse"; 696 reg = <0 0x11c10000 0 0x1000>; 697 #address-cells = <1>; 698 #size-cells = <1>; 699 u3_tx_imp_p0: usb3-tx-imp@184,1 { 700 reg = <0x184 0x1>; 701 bits = <0 5>; 702 }; 703 u3_rx_imp_p0: usb3-rx-imp@184,2 { 704 reg = <0x184 0x2>; 705 bits = <5 5>; 706 }; 707 u3_intr_p0: usb3-intr@185 { 708 reg = <0x185 0x1>; 709 bits = <2 6>; 710 }; 711 comb_tx_imp_p1: usb3-tx-imp@186,1 { 712 reg = <0x186 0x1>; 713 bits = <0 5>; 714 }; 715 comb_rx_imp_p1: usb3-rx-imp@186,2 { 716 reg = <0x186 0x2>; 717 bits = <5 5>; 718 }; 719 comb_intr_p1: usb3-intr@187 { 720 reg = <0x187 0x1>; 721 bits = <2 6>; 722 }; 723 u2_intr_p0: usb2-intr-p0@188,1 { 724 reg = <0x188 0x1>; 725 bits = <0 5>; 726 }; 727 u2_intr_p1: usb2-intr-p1@188,2 { 728 reg = <0x188 0x2>; 729 bits = <5 5>; 730 }; 731 u2_intr_p2: usb2-intr-p2@189,1 { 732 reg = <0x189 0x1>; 733 bits = <2 5>; 734 }; 735 u2_intr_p3: usb2-intr-p3@189,2 { 736 reg = <0x189 0x2>; 737 bits = <7 5>; 738 }; 739 }; 740 741 u3phy2: t-phy@11c40000 { 742 compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3"; 743 #address-cells = <1>; 744 #size-cells = <1>; 745 ranges = <0 0 0x11c40000 0x700>; 746 status = "disabled"; 747 748 u2port2: usb-phy@0 { 749 reg = <0x0 0x700>; 750 clocks = <&topckgen CLK_TOP_SSUSB_PHY_P2_REF>; 751 clock-names = "ref"; 752 #phy-cells = <1>; 753 }; 754 }; 755 756 u3phy3: t-phy@11c50000 { 757 compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3"; 758 #address-cells = <1>; 759 #size-cells = <1>; 760 ranges = <0 0 0x11c50000 0x700>; 761 status = "disabled"; 762 763 u2port3: usb-phy@0 { 764 reg = <0x0 0x700>; 765 clocks = <&topckgen CLK_TOP_SSUSB_PHY_P3_REF>; 766 clock-names = "ref"; 767 #phy-cells = <1>; 768 }; 769 }; 770 771 i2c5: i2c@11d00000 { 772 compatible = "mediatek,mt8195-i2c", 773 "mediatek,mt8192-i2c"; 774 reg = <0 0x11d00000 0 0x1000>, 775 <0 0x10220580 0 0x80>; 776 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH 0>; 777 clock-div = <1>; 778 clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C5>, 779 <&infracfg_ao CLK_INFRA_AO_APDMA_B>; 780 clock-names = "main", "dma"; 781 #address-cells = <1>; 782 #size-cells = <0>; 783 status = "disabled"; 784 }; 785 786 i2c6: i2c@11d01000 { 787 compatible = "mediatek,mt8195-i2c", 788 "mediatek,mt8192-i2c"; 789 reg = <0 0x11d01000 0 0x1000>, 790 <0 0x10220600 0 0x80>; 791 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH 0>; 792 clock-div = <1>; 793 clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C6>, 794 <&infracfg_ao CLK_INFRA_AO_APDMA_B>; 795 clock-names = "main", "dma"; 796 #address-cells = <1>; 797 #size-cells = <0>; 798 status = "disabled"; 799 }; 800 801 i2c7: i2c@11d02000 { 802 compatible = "mediatek,mt8195-i2c", 803 "mediatek,mt8192-i2c"; 804 reg = <0 0x11d02000 0 0x1000>, 805 <0 0x10220680 0 0x80>; 806 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>; 807 clock-div = <1>; 808 clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C7>, 809 <&infracfg_ao CLK_INFRA_AO_APDMA_B>; 810 clock-names = "main", "dma"; 811 #address-cells = <1>; 812 #size-cells = <0>; 813 status = "disabled"; 814 }; 815 816 imp_iic_wrap_s: clock-controller@11d03000 { 817 compatible = "mediatek,mt8195-imp_iic_wrap_s"; 818 reg = <0 0x11d03000 0 0x1000>; 819 #clock-cells = <1>; 820 }; 821 822 i2c0: i2c@11e00000 { 823 compatible = "mediatek,mt8195-i2c", 824 "mediatek,mt8192-i2c"; 825 reg = <0 0x11e00000 0 0x1000>, 826 <0 0x10220080 0 0x80>; 827 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH 0>; 828 clock-div = <1>; 829 clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C0>, 830 <&infracfg_ao CLK_INFRA_AO_APDMA_B>; 831 clock-names = "main", "dma"; 832 #address-cells = <1>; 833 #size-cells = <0>; 834 status = "okay"; 835 }; 836 837 i2c1: i2c@11e01000 { 838 compatible = "mediatek,mt8195-i2c", 839 "mediatek,mt8192-i2c"; 840 reg = <0 0x11e01000 0 0x1000>, 841 <0 0x10220200 0 0x80>; 842 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH 0>; 843 clock-div = <1>; 844 clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C1>, 845 <&infracfg_ao CLK_INFRA_AO_APDMA_B>; 846 clock-names = "main", "dma"; 847 #address-cells = <1>; 848 #size-cells = <0>; 849 status = "disabled"; 850 }; 851 852 i2c2: i2c@11e02000 { 853 compatible = "mediatek,mt8195-i2c", 854 "mediatek,mt8192-i2c"; 855 reg = <0 0x11e02000 0 0x1000>, 856 <0 0x10220380 0 0x80>; 857 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH 0>; 858 clock-div = <1>; 859 clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C2>, 860 <&infracfg_ao CLK_INFRA_AO_APDMA_B>; 861 clock-names = "main", "dma"; 862 #address-cells = <1>; 863 #size-cells = <0>; 864 status = "disabled"; 865 }; 866 867 i2c3: i2c@11e03000 { 868 compatible = "mediatek,mt8195-i2c", 869 "mediatek,mt8192-i2c"; 870 reg = <0 0x11e03000 0 0x1000>, 871 <0 0x10220480 0 0x80>; 872 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH 0>; 873 clock-div = <1>; 874 clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C3>, 875 <&infracfg_ao CLK_INFRA_AO_APDMA_B>; 876 clock-names = "main", "dma"; 877 #address-cells = <1>; 878 #size-cells = <0>; 879 status = "disabled"; 880 }; 881 882 i2c4: i2c@11e04000 { 883 compatible = "mediatek,mt8195-i2c", 884 "mediatek,mt8192-i2c"; 885 reg = <0 0x11e04000 0 0x1000>, 886 <0 0x10220500 0 0x80>; 887 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH 0>; 888 clock-div = <1>; 889 clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C4>, 890 <&infracfg_ao CLK_INFRA_AO_APDMA_B>; 891 clock-names = "main", "dma"; 892 #address-cells = <1>; 893 #size-cells = <0>; 894 status = "disabled"; 895 }; 896 897 imp_iic_wrap_w: clock-controller@11e05000 { 898 compatible = "mediatek,mt8195-imp_iic_wrap_w"; 899 reg = <0 0x11e05000 0 0x1000>; 900 #clock-cells = <1>; 901 }; 902 903 u3phy1: t-phy@11e30000 { 904 compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3"; 905 #address-cells = <1>; 906 #size-cells = <1>; 907 ranges = <0 0 0x11e30000 0xe00>; 908 status = "disabled"; 909 910 u2port1: usb-phy@0 { 911 reg = <0x0 0x700>; 912 clocks = <&topckgen CLK_TOP_SSUSB_PHY_P1_REF>, 913 <&clk26m>; 914 clock-names = "ref", "da_ref"; 915 #phy-cells = <1>; 916 }; 917 918 u3port1: usb-phy@700 { 919 reg = <0x700 0x700>; 920 clocks = <&apmixedsys CLK_APMIXED_PLL_SSUSB26M>, 921 <&topckgen CLK_TOP_SSUSB_PHY_P1_REF>; 922 clock-names = "ref", "da_ref"; 923 nvmem-cells = <&comb_intr_p1>, 924 <&comb_rx_imp_p1>, 925 <&comb_tx_imp_p1>; 926 nvmem-cell-names = "intr", "rx_imp", "tx_imp"; 927 #phy-cells = <1>; 928 }; 929 }; 930 931 u3phy0: t-phy@11e40000 { 932 compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3"; 933 #address-cells = <1>; 934 #size-cells = <1>; 935 ranges = <0 0 0x11e40000 0xe00>; 936 status = "disabled"; 937 938 u2port0: usb-phy@0 { 939 reg = <0x0 0x700>; 940 clocks = <&topckgen CLK_TOP_SSUSB_PHY_REF>, 941 <&clk26m>; 942 clock-names = "ref", "da_ref"; 943 #phy-cells = <1>; 944 }; 945 946 u3port0: usb-phy@700 { 947 reg = <0x700 0x700>; 948 clocks = <&apmixedsys CLK_APMIXED_PLL_SSUSB26M>, 949 <&topckgen CLK_TOP_SSUSB_PHY_REF>; 950 clock-names = "ref", "da_ref"; 951 nvmem-cells = <&u3_intr_p0>, 952 <&u3_rx_imp_p0>, 953 <&u3_tx_imp_p0>; 954 nvmem-cell-names = "intr", "rx_imp", "tx_imp"; 955 #phy-cells = <1>; 956 }; 957 }; 958 959 ufsphy: ufs-phy@11fa0000 { 960 compatible = "mediatek,mt8195-ufsphy", "mediatek,mt8183-ufsphy"; 961 reg = <0 0x11fa0000 0 0xc000>; 962 clocks = <&clk26m>, <&clk26m>; 963 clock-names = "unipro", "mp"; 964 #phy-cells = <0>; 965 status = "disabled"; 966 }; 967 968 mfgcfg: clock-controller@13fbf000 { 969 compatible = "mediatek,mt8195-mfgcfg"; 970 reg = <0 0x13fbf000 0 0x1000>; 971 #clock-cells = <1>; 972 }; 973 974 wpesys: clock-controller@14e00000 { 975 compatible = "mediatek,mt8195-wpesys"; 976 reg = <0 0x14e00000 0 0x1000>; 977 #clock-cells = <1>; 978 }; 979 980 wpesys_vpp0: clock-controller@14e02000 { 981 compatible = "mediatek,mt8195-wpesys_vpp0"; 982 reg = <0 0x14e02000 0 0x1000>; 983 #clock-cells = <1>; 984 }; 985 986 wpesys_vpp1: clock-controller@14e03000 { 987 compatible = "mediatek,mt8195-wpesys_vpp1"; 988 reg = <0 0x14e03000 0 0x1000>; 989 #clock-cells = <1>; 990 }; 991 992 imgsys: clock-controller@15000000 { 993 compatible = "mediatek,mt8195-imgsys"; 994 reg = <0 0x15000000 0 0x1000>; 995 #clock-cells = <1>; 996 }; 997 998 imgsys1_dip_top: clock-controller@15110000 { 999 compatible = "mediatek,mt8195-imgsys1_dip_top"; 1000 reg = <0 0x15110000 0 0x1000>; 1001 #clock-cells = <1>; 1002 }; 1003 1004 imgsys1_dip_nr: clock-controller@15130000 { 1005 compatible = "mediatek,mt8195-imgsys1_dip_nr"; 1006 reg = <0 0x15130000 0 0x1000>; 1007 #clock-cells = <1>; 1008 }; 1009 1010 imgsys1_wpe: clock-controller@15220000 { 1011 compatible = "mediatek,mt8195-imgsys1_wpe"; 1012 reg = <0 0x15220000 0 0x1000>; 1013 #clock-cells = <1>; 1014 }; 1015 1016 ipesys: clock-controller@15330000 { 1017 compatible = "mediatek,mt8195-ipesys"; 1018 reg = <0 0x15330000 0 0x1000>; 1019 #clock-cells = <1>; 1020 }; 1021 1022 camsys: clock-controller@16000000 { 1023 compatible = "mediatek,mt8195-camsys"; 1024 reg = <0 0x16000000 0 0x1000>; 1025 #clock-cells = <1>; 1026 }; 1027 1028 camsys_rawa: clock-controller@1604f000 { 1029 compatible = "mediatek,mt8195-camsys_rawa"; 1030 reg = <0 0x1604f000 0 0x1000>; 1031 #clock-cells = <1>; 1032 }; 1033 1034 camsys_yuva: clock-controller@1606f000 { 1035 compatible = "mediatek,mt8195-camsys_yuva"; 1036 reg = <0 0x1606f000 0 0x1000>; 1037 #clock-cells = <1>; 1038 }; 1039 1040 camsys_rawb: clock-controller@1608f000 { 1041 compatible = "mediatek,mt8195-camsys_rawb"; 1042 reg = <0 0x1608f000 0 0x1000>; 1043 #clock-cells = <1>; 1044 }; 1045 1046 camsys_yuvb: clock-controller@160af000 { 1047 compatible = "mediatek,mt8195-camsys_yuvb"; 1048 reg = <0 0x160af000 0 0x1000>; 1049 #clock-cells = <1>; 1050 }; 1051 1052 camsys_mraw: clock-controller@16140000 { 1053 compatible = "mediatek,mt8195-camsys_mraw"; 1054 reg = <0 0x16140000 0 0x1000>; 1055 #clock-cells = <1>; 1056 }; 1057 1058 ccusys: clock-controller@17200000 { 1059 compatible = "mediatek,mt8195-ccusys"; 1060 reg = <0 0x17200000 0 0x1000>; 1061 #clock-cells = <1>; 1062 }; 1063 1064 vdecsys_soc: clock-controller@1800f000 { 1065 compatible = "mediatek,mt8195-vdecsys_soc"; 1066 reg = <0 0x1800f000 0 0x1000>; 1067 #clock-cells = <1>; 1068 }; 1069 1070 vdecsys: clock-controller@1802f000 { 1071 compatible = "mediatek,mt8195-vdecsys"; 1072 reg = <0 0x1802f000 0 0x1000>; 1073 #clock-cells = <1>; 1074 }; 1075 1076 vdecsys_core1: clock-controller@1803f000 { 1077 compatible = "mediatek,mt8195-vdecsys_core1"; 1078 reg = <0 0x1803f000 0 0x1000>; 1079 #clock-cells = <1>; 1080 }; 1081 1082 apusys_pll: clock-controller@190f3000 { 1083 compatible = "mediatek,mt8195-apusys_pll"; 1084 reg = <0 0x190f3000 0 0x1000>; 1085 #clock-cells = <1>; 1086 }; 1087 1088 vencsys: clock-controller@1a000000 { 1089 compatible = "mediatek,mt8195-vencsys"; 1090 reg = <0 0x1a000000 0 0x1000>; 1091 #clock-cells = <1>; 1092 }; 1093 1094 vencsys_core1: clock-controller@1b000000 { 1095 compatible = "mediatek,mt8195-vencsys_core1"; 1096 reg = <0 0x1b000000 0 0x1000>; 1097 #clock-cells = <1>; 1098 }; 1099 }; 1100}; 1101