1// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2/* 3 * Copyright (c) 2018 MediaTek Inc. 4 * Author: Ben Ho <ben.ho@mediatek.com> 5 * Erin Lo <erin.lo@mediatek.com> 6 */ 7 8#include <dt-bindings/clock/mt8183-clk.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h> 10#include <dt-bindings/interrupt-controller/irq.h> 11#include <dt-bindings/power/mt8183-power.h> 12#include <dt-bindings/reset-controller/mt8183-resets.h> 13#include <dt-bindings/phy/phy.h> 14#include "mt8183-pinfunc.h" 15 16/ { 17 compatible = "mediatek,mt8183"; 18 interrupt-parent = <&sysirq>; 19 #address-cells = <2>; 20 #size-cells = <2>; 21 22 aliases { 23 i2c0 = &i2c0; 24 i2c1 = &i2c1; 25 i2c2 = &i2c2; 26 i2c3 = &i2c3; 27 i2c4 = &i2c4; 28 i2c5 = &i2c5; 29 i2c6 = &i2c6; 30 i2c7 = &i2c7; 31 i2c8 = &i2c8; 32 i2c9 = &i2c9; 33 i2c10 = &i2c10; 34 i2c11 = &i2c11; 35 }; 36 37 cpus { 38 #address-cells = <1>; 39 #size-cells = <0>; 40 41 cpu-map { 42 cluster0 { 43 core0 { 44 cpu = <&cpu0>; 45 }; 46 core1 { 47 cpu = <&cpu1>; 48 }; 49 core2 { 50 cpu = <&cpu2>; 51 }; 52 core3 { 53 cpu = <&cpu3>; 54 }; 55 }; 56 57 cluster1 { 58 core0 { 59 cpu = <&cpu4>; 60 }; 61 core1 { 62 cpu = <&cpu5>; 63 }; 64 core2 { 65 cpu = <&cpu6>; 66 }; 67 core3 { 68 cpu = <&cpu7>; 69 }; 70 }; 71 }; 72 73 cpu0: cpu@0 { 74 device_type = "cpu"; 75 compatible = "arm,cortex-a53"; 76 reg = <0x000>; 77 enable-method = "psci"; 78 capacity-dmips-mhz = <741>; 79 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>; 80 dynamic-power-coefficient = <84>; 81 #cooling-cells = <2>; 82 }; 83 84 cpu1: cpu@1 { 85 device_type = "cpu"; 86 compatible = "arm,cortex-a53"; 87 reg = <0x001>; 88 enable-method = "psci"; 89 capacity-dmips-mhz = <741>; 90 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>; 91 dynamic-power-coefficient = <84>; 92 #cooling-cells = <2>; 93 }; 94 95 cpu2: cpu@2 { 96 device_type = "cpu"; 97 compatible = "arm,cortex-a53"; 98 reg = <0x002>; 99 enable-method = "psci"; 100 capacity-dmips-mhz = <741>; 101 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>; 102 dynamic-power-coefficient = <84>; 103 #cooling-cells = <2>; 104 }; 105 106 cpu3: cpu@3 { 107 device_type = "cpu"; 108 compatible = "arm,cortex-a53"; 109 reg = <0x003>; 110 enable-method = "psci"; 111 capacity-dmips-mhz = <741>; 112 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP0>; 113 dynamic-power-coefficient = <84>; 114 #cooling-cells = <2>; 115 }; 116 117 cpu4: cpu@100 { 118 device_type = "cpu"; 119 compatible = "arm,cortex-a73"; 120 reg = <0x100>; 121 enable-method = "psci"; 122 capacity-dmips-mhz = <1024>; 123 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>; 124 dynamic-power-coefficient = <211>; 125 #cooling-cells = <2>; 126 }; 127 128 cpu5: cpu@101 { 129 device_type = "cpu"; 130 compatible = "arm,cortex-a73"; 131 reg = <0x101>; 132 enable-method = "psci"; 133 capacity-dmips-mhz = <1024>; 134 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>; 135 dynamic-power-coefficient = <211>; 136 #cooling-cells = <2>; 137 }; 138 139 cpu6: cpu@102 { 140 device_type = "cpu"; 141 compatible = "arm,cortex-a73"; 142 reg = <0x102>; 143 enable-method = "psci"; 144 capacity-dmips-mhz = <1024>; 145 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>; 146 dynamic-power-coefficient = <211>; 147 #cooling-cells = <2>; 148 }; 149 150 cpu7: cpu@103 { 151 device_type = "cpu"; 152 compatible = "arm,cortex-a73"; 153 reg = <0x103>; 154 enable-method = "psci"; 155 capacity-dmips-mhz = <1024>; 156 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP1>; 157 dynamic-power-coefficient = <211>; 158 #cooling-cells = <2>; 159 }; 160 161 idle-states { 162 entry-method = "psci"; 163 164 CPU_SLEEP: cpu-sleep { 165 compatible = "arm,idle-state"; 166 local-timer-stop; 167 arm,psci-suspend-param = <0x00010001>; 168 entry-latency-us = <200>; 169 exit-latency-us = <200>; 170 min-residency-us = <800>; 171 }; 172 173 CLUSTER_SLEEP0: cluster-sleep-0 { 174 compatible = "arm,idle-state"; 175 local-timer-stop; 176 arm,psci-suspend-param = <0x01010001>; 177 entry-latency-us = <250>; 178 exit-latency-us = <400>; 179 min-residency-us = <1000>; 180 }; 181 CLUSTER_SLEEP1: cluster-sleep-1 { 182 compatible = "arm,idle-state"; 183 local-timer-stop; 184 arm,psci-suspend-param = <0x01010001>; 185 entry-latency-us = <250>; 186 exit-latency-us = <400>; 187 min-residency-us = <1300>; 188 }; 189 }; 190 }; 191 192 pmu-a53 { 193 compatible = "arm,cortex-a53-pmu"; 194 interrupt-parent = <&gic>; 195 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>; 196 }; 197 198 pmu-a73 { 199 compatible = "arm,cortex-a73-pmu"; 200 interrupt-parent = <&gic>; 201 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster1>; 202 }; 203 204 psci { 205 compatible = "arm,psci-1.0"; 206 method = "smc"; 207 }; 208 209 clk26m: oscillator { 210 compatible = "fixed-clock"; 211 #clock-cells = <0>; 212 clock-frequency = <26000000>; 213 clock-output-names = "clk26m"; 214 }; 215 216 timer { 217 compatible = "arm,armv8-timer"; 218 interrupt-parent = <&gic>; 219 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>, 220 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>, 221 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>, 222 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>; 223 }; 224 225 soc { 226 #address-cells = <2>; 227 #size-cells = <2>; 228 compatible = "simple-bus"; 229 ranges; 230 231 soc_data: soc_data@8000000 { 232 compatible = "mediatek,mt8183-efuse", 233 "mediatek,efuse"; 234 reg = <0 0x08000000 0 0x0010>; 235 #address-cells = <1>; 236 #size-cells = <1>; 237 status = "disabled"; 238 }; 239 240 gic: interrupt-controller@c000000 { 241 compatible = "arm,gic-v3"; 242 #interrupt-cells = <4>; 243 interrupt-parent = <&gic>; 244 interrupt-controller; 245 reg = <0 0x0c000000 0 0x40000>, /* GICD */ 246 <0 0x0c100000 0 0x200000>, /* GICR */ 247 <0 0x0c400000 0 0x2000>, /* GICC */ 248 <0 0x0c410000 0 0x1000>, /* GICH */ 249 <0 0x0c420000 0 0x2000>; /* GICV */ 250 251 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>; 252 ppi-partitions { 253 ppi_cluster0: interrupt-partition-0 { 254 affinity = <&cpu0 &cpu1 &cpu2 &cpu3>; 255 }; 256 ppi_cluster1: interrupt-partition-1 { 257 affinity = <&cpu4 &cpu5 &cpu6 &cpu7>; 258 }; 259 }; 260 }; 261 262 mcucfg: syscon@c530000 { 263 compatible = "mediatek,mt8183-mcucfg", "syscon"; 264 reg = <0 0x0c530000 0 0x1000>; 265 #clock-cells = <1>; 266 }; 267 268 sysirq: interrupt-controller@c530a80 { 269 compatible = "mediatek,mt8183-sysirq", 270 "mediatek,mt6577-sysirq"; 271 interrupt-controller; 272 #interrupt-cells = <3>; 273 interrupt-parent = <&gic>; 274 reg = <0 0x0c530a80 0 0x50>; 275 }; 276 277 topckgen: syscon@10000000 { 278 compatible = "mediatek,mt8183-topckgen", "syscon"; 279 reg = <0 0x10000000 0 0x1000>; 280 #clock-cells = <1>; 281 }; 282 283 infracfg: syscon@10001000 { 284 compatible = "mediatek,mt8183-infracfg", "syscon"; 285 reg = <0 0x10001000 0 0x1000>; 286 #clock-cells = <1>; 287 #reset-cells = <1>; 288 }; 289 290 pericfg: syscon@10003000 { 291 compatible = "mediatek,mt8183-pericfg", "syscon"; 292 reg = <0 0x10003000 0 0x1000>; 293 #clock-cells = <1>; 294 }; 295 296 pio: pinctrl@10005000 { 297 compatible = "mediatek,mt8183-pinctrl"; 298 reg = <0 0x10005000 0 0x1000>, 299 <0 0x11f20000 0 0x1000>, 300 <0 0x11e80000 0 0x1000>, 301 <0 0x11e70000 0 0x1000>, 302 <0 0x11e90000 0 0x1000>, 303 <0 0x11d30000 0 0x1000>, 304 <0 0x11d20000 0 0x1000>, 305 <0 0x11c50000 0 0x1000>, 306 <0 0x11f30000 0 0x1000>, 307 <0 0x1000b000 0 0x1000>; 308 reg-names = "iocfg0", "iocfg1", "iocfg2", 309 "iocfg3", "iocfg4", "iocfg5", 310 "iocfg6", "iocfg7", "iocfg8", 311 "eint"; 312 gpio-controller; 313 #gpio-cells = <2>; 314 gpio-ranges = <&pio 0 0 192>; 315 interrupt-controller; 316 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>; 317 #interrupt-cells = <2>; 318 }; 319 320 scpsys: syscon@10006000 { 321 compatible = "syscon", "simple-mfd"; 322 reg = <0 0x10006000 0 0x1000>; 323 #power-domain-cells = <1>; 324 325 /* System Power Manager */ 326 spm: power-controller { 327 compatible = "mediatek,mt8183-power-controller"; 328 #address-cells = <1>; 329 #size-cells = <0>; 330 #power-domain-cells = <1>; 331 332 /* power domain of the SoC */ 333 power-domain@MT8183_POWER_DOMAIN_AUDIO { 334 reg = <MT8183_POWER_DOMAIN_AUDIO>; 335 clocks = <&topckgen CLK_TOP_MUX_AUD_INTBUS>, 336 <&infracfg CLK_INFRA_AUDIO>, 337 <&infracfg CLK_INFRA_AUDIO_26M_BCLK>; 338 clock-names = "audio", "audio1", "audio2"; 339 #power-domain-cells = <0>; 340 }; 341 342 power-domain@MT8183_POWER_DOMAIN_CONN { 343 reg = <MT8183_POWER_DOMAIN_CONN>; 344 mediatek,infracfg = <&infracfg>; 345 #power-domain-cells = <0>; 346 }; 347 348 power-domain@MT8183_POWER_DOMAIN_MFG_ASYNC { 349 reg = <MT8183_POWER_DOMAIN_MFG_ASYNC>; 350 clocks = <&topckgen CLK_TOP_MUX_MFG>; 351 clock-names = "mfg"; 352 #address-cells = <1>; 353 #size-cells = <0>; 354 #power-domain-cells = <1>; 355 356 power-domain@MT8183_POWER_DOMAIN_MFG { 357 reg = <MT8183_POWER_DOMAIN_MFG>; 358 #address-cells = <1>; 359 #size-cells = <0>; 360 #power-domain-cells = <1>; 361 362 power-domain@MT8183_POWER_DOMAIN_MFG_CORE0 { 363 reg = <MT8183_POWER_DOMAIN_MFG_CORE0>; 364 #power-domain-cells = <0>; 365 }; 366 367 power-domain@MT8183_POWER_DOMAIN_MFG_CORE1 { 368 reg = <MT8183_POWER_DOMAIN_MFG_CORE1>; 369 #power-domain-cells = <0>; 370 }; 371 372 power-domain@MT8183_POWER_DOMAIN_MFG_2D { 373 reg = <MT8183_POWER_DOMAIN_MFG_2D>; 374 mediatek,infracfg = <&infracfg>; 375 #power-domain-cells = <0>; 376 }; 377 }; 378 }; 379 380 power-domain@MT8183_POWER_DOMAIN_DISP { 381 reg = <MT8183_POWER_DOMAIN_DISP>; 382 clocks = <&topckgen CLK_TOP_MUX_MM>, 383 <&mmsys CLK_MM_SMI_COMMON>, 384 <&mmsys CLK_MM_SMI_LARB0>, 385 <&mmsys CLK_MM_SMI_LARB1>, 386 <&mmsys CLK_MM_GALS_COMM0>, 387 <&mmsys CLK_MM_GALS_COMM1>, 388 <&mmsys CLK_MM_GALS_CCU2MM>, 389 <&mmsys CLK_MM_GALS_IPU12MM>, 390 <&mmsys CLK_MM_GALS_IMG2MM>, 391 <&mmsys CLK_MM_GALS_CAM2MM>, 392 <&mmsys CLK_MM_GALS_IPU2MM>; 393 clock-names = "mm", "mm-0", "mm-1", "mm-2", "mm-3", 394 "mm-4", "mm-5", "mm-6", "mm-7", 395 "mm-8", "mm-9"; 396 mediatek,infracfg = <&infracfg>; 397 mediatek,smi = <&smi_common>; 398 #address-cells = <1>; 399 #size-cells = <0>; 400 #power-domain-cells = <1>; 401 402 power-domain@MT8183_POWER_DOMAIN_CAM { 403 reg = <MT8183_POWER_DOMAIN_CAM>; 404 clocks = <&topckgen CLK_TOP_MUX_CAM>, 405 <&camsys CLK_CAM_LARB6>, 406 <&camsys CLK_CAM_LARB3>, 407 <&camsys CLK_CAM_SENINF>, 408 <&camsys CLK_CAM_CAMSV0>, 409 <&camsys CLK_CAM_CAMSV1>, 410 <&camsys CLK_CAM_CAMSV2>, 411 <&camsys CLK_CAM_CCU>; 412 clock-names = "cam", "cam-0", "cam-1", 413 "cam-2", "cam-3", "cam-4", 414 "cam-5", "cam-6"; 415 mediatek,infracfg = <&infracfg>; 416 mediatek,smi = <&smi_common>; 417 #power-domain-cells = <0>; 418 }; 419 420 power-domain@MT8183_POWER_DOMAIN_ISP { 421 reg = <MT8183_POWER_DOMAIN_ISP>; 422 clocks = <&topckgen CLK_TOP_MUX_IMG>, 423 <&imgsys CLK_IMG_LARB5>, 424 <&imgsys CLK_IMG_LARB2>; 425 clock-names = "isp", "isp-0", "isp-1"; 426 mediatek,infracfg = <&infracfg>; 427 mediatek,smi = <&smi_common>; 428 #power-domain-cells = <0>; 429 }; 430 431 power-domain@MT8183_POWER_DOMAIN_VDEC { 432 reg = <MT8183_POWER_DOMAIN_VDEC>; 433 mediatek,smi = <&smi_common>; 434 #power-domain-cells = <0>; 435 }; 436 437 power-domain@MT8183_POWER_DOMAIN_VENC { 438 reg = <MT8183_POWER_DOMAIN_VENC>; 439 mediatek,smi = <&smi_common>; 440 #power-domain-cells = <0>; 441 }; 442 443 power-domain@MT8183_POWER_DOMAIN_VPU_TOP { 444 reg = <MT8183_POWER_DOMAIN_VPU_TOP>; 445 clocks = <&topckgen CLK_TOP_MUX_IPU_IF>, 446 <&topckgen CLK_TOP_MUX_DSP>, 447 <&ipu_conn CLK_IPU_CONN_IPU>, 448 <&ipu_conn CLK_IPU_CONN_AHB>, 449 <&ipu_conn CLK_IPU_CONN_AXI>, 450 <&ipu_conn CLK_IPU_CONN_ISP>, 451 <&ipu_conn CLK_IPU_CONN_CAM_ADL>, 452 <&ipu_conn CLK_IPU_CONN_IMG_ADL>; 453 clock-names = "vpu", "vpu1", "vpu-0", "vpu-1", 454 "vpu-2", "vpu-3", "vpu-4", "vpu-5"; 455 mediatek,infracfg = <&infracfg>; 456 mediatek,smi = <&smi_common>; 457 #address-cells = <1>; 458 #size-cells = <0>; 459 #power-domain-cells = <1>; 460 461 power-domain@MT8183_POWER_DOMAIN_VPU_CORE0 { 462 reg = <MT8183_POWER_DOMAIN_VPU_CORE0>; 463 clocks = <&topckgen CLK_TOP_MUX_DSP1>; 464 clock-names = "vpu2"; 465 mediatek,infracfg = <&infracfg>; 466 #power-domain-cells = <0>; 467 }; 468 469 power-domain@MT8183_POWER_DOMAIN_VPU_CORE1 { 470 reg = <MT8183_POWER_DOMAIN_VPU_CORE1>; 471 clocks = <&topckgen CLK_TOP_MUX_DSP2>; 472 clock-names = "vpu3"; 473 mediatek,infracfg = <&infracfg>; 474 #power-domain-cells = <0>; 475 }; 476 }; 477 }; 478 }; 479 }; 480 481 watchdog: watchdog@10007000 { 482 compatible = "mediatek,mt8183-wdt"; 483 reg = <0 0x10007000 0 0x100>; 484 #reset-cells = <1>; 485 }; 486 487 apmixedsys: syscon@1000c000 { 488 compatible = "mediatek,mt8183-apmixedsys", "syscon"; 489 reg = <0 0x1000c000 0 0x1000>; 490 #clock-cells = <1>; 491 }; 492 493 pwrap: pwrap@1000d000 { 494 compatible = "mediatek,mt8183-pwrap"; 495 reg = <0 0x1000d000 0 0x1000>; 496 reg-names = "pwrap"; 497 interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>; 498 clocks = <&topckgen CLK_TOP_MUX_PMICSPI>, 499 <&infracfg CLK_INFRA_PMIC_AP>; 500 clock-names = "spi", "wrap"; 501 }; 502 503 scp: scp@10500000 { 504 compatible = "mediatek,mt8183-scp"; 505 reg = <0 0x10500000 0 0x80000>, 506 <0 0x105c0000 0 0x19080>; 507 reg-names = "sram", "cfg"; 508 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 509 clocks = <&infracfg CLK_INFRA_SCPSYS>; 510 clock-names = "main"; 511 memory-region = <&scp_mem_reserved>; 512 status = "disabled"; 513 }; 514 515 systimer: timer@10017000 { 516 compatible = "mediatek,mt8183-timer", 517 "mediatek,mt6765-timer"; 518 reg = <0 0x10017000 0 0x1000>; 519 interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>; 520 clocks = <&topckgen CLK_TOP_CLK13M>; 521 clock-names = "clk13m"; 522 }; 523 524 gce: mailbox@10238000 { 525 compatible = "mediatek,mt8183-gce"; 526 reg = <0 0x10238000 0 0x4000>; 527 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_LOW>; 528 #mbox-cells = <2>; 529 clocks = <&infracfg CLK_INFRA_GCE>; 530 clock-names = "gce"; 531 }; 532 533 auxadc: auxadc@11001000 { 534 compatible = "mediatek,mt8183-auxadc", 535 "mediatek,mt8173-auxadc"; 536 reg = <0 0x11001000 0 0x1000>; 537 clocks = <&infracfg CLK_INFRA_AUXADC>; 538 clock-names = "main"; 539 #io-channel-cells = <1>; 540 status = "disabled"; 541 }; 542 543 uart0: serial@11002000 { 544 compatible = "mediatek,mt8183-uart", 545 "mediatek,mt6577-uart"; 546 reg = <0 0x11002000 0 0x1000>; 547 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>; 548 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART0>; 549 clock-names = "baud", "bus"; 550 status = "disabled"; 551 }; 552 553 uart1: serial@11003000 { 554 compatible = "mediatek,mt8183-uart", 555 "mediatek,mt6577-uart"; 556 reg = <0 0x11003000 0 0x1000>; 557 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>; 558 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART1>; 559 clock-names = "baud", "bus"; 560 status = "disabled"; 561 }; 562 563 uart2: serial@11004000 { 564 compatible = "mediatek,mt8183-uart", 565 "mediatek,mt6577-uart"; 566 reg = <0 0x11004000 0 0x1000>; 567 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>; 568 clocks = <&clk26m>, <&infracfg CLK_INFRA_UART2>; 569 clock-names = "baud", "bus"; 570 status = "disabled"; 571 }; 572 573 i2c6: i2c@11005000 { 574 compatible = "mediatek,mt8183-i2c"; 575 reg = <0 0x11005000 0 0x1000>, 576 <0 0x11000600 0 0x80>; 577 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>; 578 clocks = <&infracfg CLK_INFRA_I2C6>, 579 <&infracfg CLK_INFRA_AP_DMA>; 580 clock-names = "main", "dma"; 581 clock-div = <1>; 582 #address-cells = <1>; 583 #size-cells = <0>; 584 status = "disabled"; 585 }; 586 587 i2c0: i2c@11007000 { 588 compatible = "mediatek,mt8183-i2c"; 589 reg = <0 0x11007000 0 0x1000>, 590 <0 0x11000080 0 0x80>; 591 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>; 592 clocks = <&infracfg CLK_INFRA_I2C0>, 593 <&infracfg CLK_INFRA_AP_DMA>; 594 clock-names = "main", "dma"; 595 clock-div = <1>; 596 #address-cells = <1>; 597 #size-cells = <0>; 598 status = "disabled"; 599 }; 600 601 i2c4: i2c@11008000 { 602 compatible = "mediatek,mt8183-i2c"; 603 reg = <0 0x11008000 0 0x1000>, 604 <0 0x11000100 0 0x80>; 605 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_LOW>; 606 clocks = <&infracfg CLK_INFRA_I2C1>, 607 <&infracfg CLK_INFRA_AP_DMA>, 608 <&infracfg CLK_INFRA_I2C1_ARBITER>; 609 clock-names = "main", "dma","arb"; 610 clock-div = <1>; 611 #address-cells = <1>; 612 #size-cells = <0>; 613 status = "disabled"; 614 }; 615 616 i2c2: i2c@11009000 { 617 compatible = "mediatek,mt8183-i2c"; 618 reg = <0 0x11009000 0 0x1000>, 619 <0 0x11000280 0 0x80>; 620 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_LOW>; 621 clocks = <&infracfg CLK_INFRA_I2C2>, 622 <&infracfg CLK_INFRA_AP_DMA>, 623 <&infracfg CLK_INFRA_I2C2_ARBITER>; 624 clock-names = "main", "dma", "arb"; 625 clock-div = <1>; 626 #address-cells = <1>; 627 #size-cells = <0>; 628 status = "disabled"; 629 }; 630 631 spi0: spi@1100a000 { 632 compatible = "mediatek,mt8183-spi"; 633 #address-cells = <1>; 634 #size-cells = <0>; 635 reg = <0 0x1100a000 0 0x1000>; 636 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_LOW>; 637 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>, 638 <&topckgen CLK_TOP_MUX_SPI>, 639 <&infracfg CLK_INFRA_SPI0>; 640 clock-names = "parent-clk", "sel-clk", "spi-clk"; 641 status = "disabled"; 642 }; 643 644 pwm0: pwm@1100e000 { 645 compatible = "mediatek,mt8183-disp-pwm"; 646 reg = <0 0x1100e000 0 0x1000>; 647 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_LOW>; 648 #pwm-cells = <2>; 649 clocks = <&topckgen CLK_TOP_MUX_DISP_PWM>, 650 <&infracfg CLK_INFRA_DISP_PWM>; 651 clock-names = "main", "mm"; 652 }; 653 654 i2c3: i2c@1100f000 { 655 compatible = "mediatek,mt8183-i2c"; 656 reg = <0 0x1100f000 0 0x1000>, 657 <0 0x11000400 0 0x80>; 658 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_LOW>; 659 clocks = <&infracfg CLK_INFRA_I2C3>, 660 <&infracfg CLK_INFRA_AP_DMA>; 661 clock-names = "main", "dma"; 662 clock-div = <1>; 663 #address-cells = <1>; 664 #size-cells = <0>; 665 status = "disabled"; 666 }; 667 668 spi1: spi@11010000 { 669 compatible = "mediatek,mt8183-spi"; 670 #address-cells = <1>; 671 #size-cells = <0>; 672 reg = <0 0x11010000 0 0x1000>; 673 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_LOW>; 674 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>, 675 <&topckgen CLK_TOP_MUX_SPI>, 676 <&infracfg CLK_INFRA_SPI1>; 677 clock-names = "parent-clk", "sel-clk", "spi-clk"; 678 status = "disabled"; 679 }; 680 681 i2c1: i2c@11011000 { 682 compatible = "mediatek,mt8183-i2c"; 683 reg = <0 0x11011000 0 0x1000>, 684 <0 0x11000480 0 0x80>; 685 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_LOW>; 686 clocks = <&infracfg CLK_INFRA_I2C4>, 687 <&infracfg CLK_INFRA_AP_DMA>; 688 clock-names = "main", "dma"; 689 clock-div = <1>; 690 #address-cells = <1>; 691 #size-cells = <0>; 692 status = "disabled"; 693 }; 694 695 spi2: spi@11012000 { 696 compatible = "mediatek,mt8183-spi"; 697 #address-cells = <1>; 698 #size-cells = <0>; 699 reg = <0 0x11012000 0 0x1000>; 700 interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_LOW>; 701 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>, 702 <&topckgen CLK_TOP_MUX_SPI>, 703 <&infracfg CLK_INFRA_SPI2>; 704 clock-names = "parent-clk", "sel-clk", "spi-clk"; 705 status = "disabled"; 706 }; 707 708 spi3: spi@11013000 { 709 compatible = "mediatek,mt8183-spi"; 710 #address-cells = <1>; 711 #size-cells = <0>; 712 reg = <0 0x11013000 0 0x1000>; 713 interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_LOW>; 714 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>, 715 <&topckgen CLK_TOP_MUX_SPI>, 716 <&infracfg CLK_INFRA_SPI3>; 717 clock-names = "parent-clk", "sel-clk", "spi-clk"; 718 status = "disabled"; 719 }; 720 721 i2c9: i2c@11014000 { 722 compatible = "mediatek,mt8183-i2c"; 723 reg = <0 0x11014000 0 0x1000>, 724 <0 0x11000180 0 0x80>; 725 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_LOW>; 726 clocks = <&infracfg CLK_INFRA_I2C1_IMM>, 727 <&infracfg CLK_INFRA_AP_DMA>, 728 <&infracfg CLK_INFRA_I2C1_ARBITER>; 729 clock-names = "main", "dma", "arb"; 730 clock-div = <1>; 731 #address-cells = <1>; 732 #size-cells = <0>; 733 status = "disabled"; 734 }; 735 736 i2c10: i2c@11015000 { 737 compatible = "mediatek,mt8183-i2c"; 738 reg = <0 0x11015000 0 0x1000>, 739 <0 0x11000300 0 0x80>; 740 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_LOW>; 741 clocks = <&infracfg CLK_INFRA_I2C2_IMM>, 742 <&infracfg CLK_INFRA_AP_DMA>, 743 <&infracfg CLK_INFRA_I2C2_ARBITER>; 744 clock-names = "main", "dma", "arb"; 745 clock-div = <1>; 746 #address-cells = <1>; 747 #size-cells = <0>; 748 status = "disabled"; 749 }; 750 751 i2c5: i2c@11016000 { 752 compatible = "mediatek,mt8183-i2c"; 753 reg = <0 0x11016000 0 0x1000>, 754 <0 0x11000500 0 0x80>; 755 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_LOW>; 756 clocks = <&infracfg CLK_INFRA_I2C5>, 757 <&infracfg CLK_INFRA_AP_DMA>, 758 <&infracfg CLK_INFRA_I2C5_ARBITER>; 759 clock-names = "main", "dma", "arb"; 760 clock-div = <1>; 761 #address-cells = <1>; 762 #size-cells = <0>; 763 status = "disabled"; 764 }; 765 766 i2c11: i2c@11017000 { 767 compatible = "mediatek,mt8183-i2c"; 768 reg = <0 0x11017000 0 0x1000>, 769 <0 0x11000580 0 0x80>; 770 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_LOW>; 771 clocks = <&infracfg CLK_INFRA_I2C5_IMM>, 772 <&infracfg CLK_INFRA_AP_DMA>, 773 <&infracfg CLK_INFRA_I2C5_ARBITER>; 774 clock-names = "main", "dma", "arb"; 775 clock-div = <1>; 776 #address-cells = <1>; 777 #size-cells = <0>; 778 status = "disabled"; 779 }; 780 781 spi4: spi@11018000 { 782 compatible = "mediatek,mt8183-spi"; 783 #address-cells = <1>; 784 #size-cells = <0>; 785 reg = <0 0x11018000 0 0x1000>; 786 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_LOW>; 787 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>, 788 <&topckgen CLK_TOP_MUX_SPI>, 789 <&infracfg CLK_INFRA_SPI4>; 790 clock-names = "parent-clk", "sel-clk", "spi-clk"; 791 status = "disabled"; 792 }; 793 794 spi5: spi@11019000 { 795 compatible = "mediatek,mt8183-spi"; 796 #address-cells = <1>; 797 #size-cells = <0>; 798 reg = <0 0x11019000 0 0x1000>; 799 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>; 800 clocks = <&topckgen CLK_TOP_SYSPLL_D5_D2>, 801 <&topckgen CLK_TOP_MUX_SPI>, 802 <&infracfg CLK_INFRA_SPI5>; 803 clock-names = "parent-clk", "sel-clk", "spi-clk"; 804 status = "disabled"; 805 }; 806 807 i2c7: i2c@1101a000 { 808 compatible = "mediatek,mt8183-i2c"; 809 reg = <0 0x1101a000 0 0x1000>, 810 <0 0x11000680 0 0x80>; 811 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_LOW>; 812 clocks = <&infracfg CLK_INFRA_I2C7>, 813 <&infracfg CLK_INFRA_AP_DMA>; 814 clock-names = "main", "dma"; 815 clock-div = <1>; 816 #address-cells = <1>; 817 #size-cells = <0>; 818 status = "disabled"; 819 }; 820 821 i2c8: i2c@1101b000 { 822 compatible = "mediatek,mt8183-i2c"; 823 reg = <0 0x1101b000 0 0x1000>, 824 <0 0x11000700 0 0x80>; 825 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_LOW>; 826 clocks = <&infracfg CLK_INFRA_I2C8>, 827 <&infracfg CLK_INFRA_AP_DMA>; 828 clock-names = "main", "dma"; 829 clock-div = <1>; 830 #address-cells = <1>; 831 #size-cells = <0>; 832 status = "disabled"; 833 }; 834 835 ssusb: usb@11201000 { 836 compatible ="mediatek,mt8183-mtu3", "mediatek,mtu3"; 837 reg = <0 0x11201000 0 0x2e00>, 838 <0 0x11203e00 0 0x0100>; 839 reg-names = "mac", "ippc"; 840 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>; 841 phys = <&u2port0 PHY_TYPE_USB2>, 842 <&u3port0 PHY_TYPE_USB3>; 843 clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>, 844 <&infracfg CLK_INFRA_USB>; 845 clock-names = "sys_ck", "ref_ck"; 846 mediatek,syscon-wakeup = <&pericfg 0x400 0>; 847 #address-cells = <2>; 848 #size-cells = <2>; 849 ranges; 850 status = "disabled"; 851 852 usb_host: xhci@11200000 { 853 compatible = "mediatek,mt8183-xhci", 854 "mediatek,mtk-xhci"; 855 reg = <0 0x11200000 0 0x1000>; 856 reg-names = "mac"; 857 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_LOW>; 858 clocks = <&infracfg CLK_INFRA_UNIPRO_SCK>, 859 <&infracfg CLK_INFRA_USB>; 860 clock-names = "sys_ck", "ref_ck"; 861 status = "disabled"; 862 }; 863 }; 864 865 audiosys: syscon@11220000 { 866 compatible = "mediatek,mt8183-audiosys", "syscon"; 867 reg = <0 0x11220000 0 0x1000>; 868 #clock-cells = <1>; 869 }; 870 871 mmc0: mmc@11230000 { 872 compatible = "mediatek,mt8183-mmc"; 873 reg = <0 0x11230000 0 0x1000>, 874 <0 0x11f50000 0 0x1000>; 875 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>; 876 clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>, 877 <&infracfg CLK_INFRA_MSDC0>, 878 <&infracfg CLK_INFRA_MSDC0_SCK>; 879 clock-names = "source", "hclk", "source_cg"; 880 status = "disabled"; 881 }; 882 883 mmc1: mmc@11240000 { 884 compatible = "mediatek,mt8183-mmc"; 885 reg = <0 0x11240000 0 0x1000>, 886 <0 0x11e10000 0 0x1000>; 887 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>; 888 clocks = <&topckgen CLK_TOP_MUX_MSDC30_1>, 889 <&infracfg CLK_INFRA_MSDC1>, 890 <&infracfg CLK_INFRA_MSDC1_SCK>; 891 clock-names = "source", "hclk", "source_cg"; 892 status = "disabled"; 893 }; 894 895 efuse: efuse@11f10000 { 896 compatible = "mediatek,mt8183-efuse", 897 "mediatek,efuse"; 898 reg = <0 0x11f10000 0 0x1000>; 899 }; 900 901 u3phy: usb-phy@11f40000 { 902 compatible = "mediatek,mt8183-tphy", 903 "mediatek,generic-tphy-v2"; 904 #address-cells = <1>; 905 #phy-cells = <1>; 906 #size-cells = <1>; 907 ranges = <0 0 0x11f40000 0x1000>; 908 status = "okay"; 909 910 u2port0: usb-phy@0 { 911 reg = <0x0 0x700>; 912 clocks = <&clk26m>; 913 clock-names = "ref"; 914 #phy-cells = <1>; 915 mediatek,discth = <15>; 916 status = "okay"; 917 }; 918 919 u3port0: usb-phy@0700 { 920 reg = <0x0700 0x900>; 921 clocks = <&clk26m>; 922 clock-names = "ref"; 923 #phy-cells = <1>; 924 status = "okay"; 925 }; 926 }; 927 928 mfgcfg: syscon@13000000 { 929 compatible = "mediatek,mt8183-mfgcfg", "syscon"; 930 reg = <0 0x13000000 0 0x1000>; 931 #clock-cells = <1>; 932 }; 933 934 mmsys: syscon@14000000 { 935 compatible = "mediatek,mt8183-mmsys", "syscon"; 936 reg = <0 0x14000000 0 0x1000>; 937 #clock-cells = <1>; 938 }; 939 940 smi_common: smi@14019000 { 941 compatible = "mediatek,mt8183-smi-common", "syscon"; 942 reg = <0 0x14019000 0 0x1000>; 943 clocks = <&mmsys CLK_MM_SMI_COMMON>, 944 <&mmsys CLK_MM_SMI_COMMON>, 945 <&mmsys CLK_MM_GALS_COMM0>, 946 <&mmsys CLK_MM_GALS_COMM1>; 947 clock-names = "apb", "smi", "gals0", "gals1"; 948 }; 949 950 imgsys: syscon@15020000 { 951 compatible = "mediatek,mt8183-imgsys", "syscon"; 952 reg = <0 0x15020000 0 0x1000>; 953 #clock-cells = <1>; 954 }; 955 956 vdecsys: syscon@16000000 { 957 compatible = "mediatek,mt8183-vdecsys", "syscon"; 958 reg = <0 0x16000000 0 0x1000>; 959 #clock-cells = <1>; 960 }; 961 962 vencsys: syscon@17000000 { 963 compatible = "mediatek,mt8183-vencsys", "syscon"; 964 reg = <0 0x17000000 0 0x1000>; 965 #clock-cells = <1>; 966 }; 967 968 ipu_conn: syscon@19000000 { 969 compatible = "mediatek,mt8183-ipu_conn", "syscon"; 970 reg = <0 0x19000000 0 0x1000>; 971 #clock-cells = <1>; 972 }; 973 974 ipu_adl: syscon@19010000 { 975 compatible = "mediatek,mt8183-ipu_adl", "syscon"; 976 reg = <0 0x19010000 0 0x1000>; 977 #clock-cells = <1>; 978 }; 979 980 ipu_core0: syscon@19180000 { 981 compatible = "mediatek,mt8183-ipu_core0", "syscon"; 982 reg = <0 0x19180000 0 0x1000>; 983 #clock-cells = <1>; 984 }; 985 986 ipu_core1: syscon@19280000 { 987 compatible = "mediatek,mt8183-ipu_core1", "syscon"; 988 reg = <0 0x19280000 0 0x1000>; 989 #clock-cells = <1>; 990 }; 991 992 camsys: syscon@1a000000 { 993 compatible = "mediatek,mt8183-camsys", "syscon"; 994 reg = <0 0x1a000000 0 0x1000>; 995 #clock-cells = <1>; 996 }; 997 }; 998}; 999