16ff94537SFabien Parent// SPDX-License-Identifier: (GPL-2.0 OR MIT) 26ff94537SFabien Parent/* 36ff94537SFabien Parent * (C) 2018 MediaTek Inc. 46ff94537SFabien Parent * Copyright (C) 2022 BayLibre SAS 56ff94537SFabien Parent * Fabien Parent <fparent@baylibre.com> 66ff94537SFabien Parent * Bernhard Rosenkränzer <bero@baylibre.com> 76ff94537SFabien Parent */ 86ff94537SFabien Parent#include <dt-bindings/clock/mediatek,mt8365-clk.h> 96ff94537SFabien Parent#include <dt-bindings/interrupt-controller/arm-gic.h> 106ff94537SFabien Parent#include <dt-bindings/interrupt-controller/irq.h> 116ff94537SFabien Parent#include <dt-bindings/phy/phy.h> 126ff94537SFabien Parent 136ff94537SFabien Parent/ { 146ff94537SFabien Parent compatible = "mediatek,mt8365"; 156ff94537SFabien Parent interrupt-parent = <&sysirq>; 166ff94537SFabien Parent #address-cells = <2>; 176ff94537SFabien Parent #size-cells = <2>; 186ff94537SFabien Parent 196ff94537SFabien Parent cpus { 206ff94537SFabien Parent #address-cells = <1>; 216ff94537SFabien Parent #size-cells = <0>; 226ff94537SFabien Parent 2327205cecSAlexandre Mergnat cluster0_opp: opp-table-0 { 2427205cecSAlexandre Mergnat compatible = "operating-points-v2"; 2527205cecSAlexandre Mergnat opp-shared; 2627205cecSAlexandre Mergnat 2727205cecSAlexandre Mergnat opp-850000000 { 2827205cecSAlexandre Mergnat opp-hz = /bits/ 64 <850000000>; 2927205cecSAlexandre Mergnat opp-microvolt = <650000>; 3027205cecSAlexandre Mergnat }; 3127205cecSAlexandre Mergnat 3227205cecSAlexandre Mergnat opp-918000000 { 3327205cecSAlexandre Mergnat opp-hz = /bits/ 64 <918000000>; 3427205cecSAlexandre Mergnat opp-microvolt = <668750>; 3527205cecSAlexandre Mergnat }; 3627205cecSAlexandre Mergnat 3727205cecSAlexandre Mergnat opp-987000000 { 3827205cecSAlexandre Mergnat opp-hz = /bits/ 64 <987000000>; 3927205cecSAlexandre Mergnat opp-microvolt = <687500>; 4027205cecSAlexandre Mergnat }; 4127205cecSAlexandre Mergnat 4227205cecSAlexandre Mergnat opp-1056000000 { 4327205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1056000000>; 4427205cecSAlexandre Mergnat opp-microvolt = <706250>; 4527205cecSAlexandre Mergnat }; 4627205cecSAlexandre Mergnat 4727205cecSAlexandre Mergnat opp-1125000000 { 4827205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1125000000>; 4927205cecSAlexandre Mergnat opp-microvolt = <725000>; 5027205cecSAlexandre Mergnat }; 5127205cecSAlexandre Mergnat 5227205cecSAlexandre Mergnat opp-1216000000 { 5327205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1216000000>; 5427205cecSAlexandre Mergnat opp-microvolt = <750000>; 5527205cecSAlexandre Mergnat }; 5627205cecSAlexandre Mergnat 5727205cecSAlexandre Mergnat opp-1308000000 { 5827205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1308000000>; 5927205cecSAlexandre Mergnat opp-microvolt = <775000>; 6027205cecSAlexandre Mergnat }; 6127205cecSAlexandre Mergnat 6227205cecSAlexandre Mergnat opp-1400000000 { 6327205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1400000000>; 6427205cecSAlexandre Mergnat opp-microvolt = <800000>; 6527205cecSAlexandre Mergnat }; 6627205cecSAlexandre Mergnat 6727205cecSAlexandre Mergnat opp-1466000000 { 6827205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1466000000>; 6927205cecSAlexandre Mergnat opp-microvolt = <825000>; 7027205cecSAlexandre Mergnat }; 7127205cecSAlexandre Mergnat 7227205cecSAlexandre Mergnat opp-1533000000 { 7327205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1533000000>; 7427205cecSAlexandre Mergnat opp-microvolt = <850000>; 7527205cecSAlexandre Mergnat }; 7627205cecSAlexandre Mergnat 7727205cecSAlexandre Mergnat opp-1633000000 { 7827205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1633000000>; 7927205cecSAlexandre Mergnat opp-microvolt = <887500>; 8027205cecSAlexandre Mergnat }; 8127205cecSAlexandre Mergnat 8227205cecSAlexandre Mergnat opp-1700000000 { 8327205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1700000000>; 8427205cecSAlexandre Mergnat opp-microvolt = <912500>; 8527205cecSAlexandre Mergnat }; 8627205cecSAlexandre Mergnat 8727205cecSAlexandre Mergnat opp-1767000000 { 8827205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1767000000>; 8927205cecSAlexandre Mergnat opp-microvolt = <937500>; 9027205cecSAlexandre Mergnat }; 9127205cecSAlexandre Mergnat 9227205cecSAlexandre Mergnat opp-1834000000 { 9327205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1834000000>; 9427205cecSAlexandre Mergnat opp-microvolt = <962500>; 9527205cecSAlexandre Mergnat }; 9627205cecSAlexandre Mergnat 9727205cecSAlexandre Mergnat opp-1917000000 { 9827205cecSAlexandre Mergnat opp-hz = /bits/ 64 <1917000000>; 9927205cecSAlexandre Mergnat opp-microvolt = <993750>; 10027205cecSAlexandre Mergnat }; 10127205cecSAlexandre Mergnat 10227205cecSAlexandre Mergnat opp-2001000000 { 10327205cecSAlexandre Mergnat opp-hz = /bits/ 64 <2001000000>; 10427205cecSAlexandre Mergnat opp-microvolt = <1025000>; 10527205cecSAlexandre Mergnat }; 10627205cecSAlexandre Mergnat }; 10727205cecSAlexandre Mergnat 1086ff94537SFabien Parent cpu-map { 1096ff94537SFabien Parent cluster0 { 1106ff94537SFabien Parent core0 { 1116ff94537SFabien Parent cpu = <&cpu0>; 1126ff94537SFabien Parent }; 1136ff94537SFabien Parent core1 { 1146ff94537SFabien Parent cpu = <&cpu1>; 1156ff94537SFabien Parent }; 1166ff94537SFabien Parent core2 { 1176ff94537SFabien Parent cpu = <&cpu2>; 1186ff94537SFabien Parent }; 1196ff94537SFabien Parent core3 { 1206ff94537SFabien Parent cpu = <&cpu3>; 1216ff94537SFabien Parent }; 1226ff94537SFabien Parent }; 1236ff94537SFabien Parent }; 1246ff94537SFabien Parent 1256ff94537SFabien Parent cpu0: cpu@0 { 1266ff94537SFabien Parent device_type = "cpu"; 1276ff94537SFabien Parent compatible = "arm,cortex-a53"; 1286ff94537SFabien Parent reg = <0x0>; 1296ff94537SFabien Parent #cooling-cells = <2>; 1306ff94537SFabien Parent enable-method = "psci"; 131e8c6b47fSAmjad Ouled-Ameur cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>; 1326ff94537SFabien Parent i-cache-size = <0x8000>; 1336ff94537SFabien Parent i-cache-line-size = <64>; 1346ff94537SFabien Parent i-cache-sets = <256>; 1356ff94537SFabien Parent d-cache-size = <0x8000>; 1366ff94537SFabien Parent d-cache-line-size = <64>; 1376ff94537SFabien Parent d-cache-sets = <256>; 1386ff94537SFabien Parent next-level-cache = <&l2>; 13927205cecSAlexandre Mergnat clocks = <&mcucfg CLK_MCU_BUS_SEL>, 14027205cecSAlexandre Mergnat <&apmixedsys CLK_APMIXED_MAINPLL>; 14127205cecSAlexandre Mergnat clock-names = "cpu", "intermediate"; 14227205cecSAlexandre Mergnat operating-points-v2 = <&cluster0_opp>; 1436ff94537SFabien Parent }; 1446ff94537SFabien Parent 1456ff94537SFabien Parent cpu1: cpu@1 { 1466ff94537SFabien Parent device_type = "cpu"; 1476ff94537SFabien Parent compatible = "arm,cortex-a53"; 1486ff94537SFabien Parent reg = <0x1>; 1496ff94537SFabien Parent #cooling-cells = <2>; 1506ff94537SFabien Parent enable-method = "psci"; 151e8c6b47fSAmjad Ouled-Ameur cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>; 1526ff94537SFabien Parent i-cache-size = <0x8000>; 1536ff94537SFabien Parent i-cache-line-size = <64>; 1546ff94537SFabien Parent i-cache-sets = <256>; 1556ff94537SFabien Parent d-cache-size = <0x8000>; 1566ff94537SFabien Parent d-cache-line-size = <64>; 1576ff94537SFabien Parent d-cache-sets = <256>; 1586ff94537SFabien Parent next-level-cache = <&l2>; 15927205cecSAlexandre Mergnat clocks = <&mcucfg CLK_MCU_BUS_SEL>, 16027205cecSAlexandre Mergnat <&apmixedsys CLK_APMIXED_MAINPLL>; 16127205cecSAlexandre Mergnat clock-names = "cpu", "intermediate", "armpll"; 16227205cecSAlexandre Mergnat operating-points-v2 = <&cluster0_opp>; 1636ff94537SFabien Parent }; 1646ff94537SFabien Parent 1656ff94537SFabien Parent cpu2: cpu@2 { 1666ff94537SFabien Parent device_type = "cpu"; 1676ff94537SFabien Parent compatible = "arm,cortex-a53"; 1686ff94537SFabien Parent reg = <0x2>; 1696ff94537SFabien Parent #cooling-cells = <2>; 1706ff94537SFabien Parent enable-method = "psci"; 171e8c6b47fSAmjad Ouled-Ameur cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>; 1726ff94537SFabien Parent i-cache-size = <0x8000>; 1736ff94537SFabien Parent i-cache-line-size = <64>; 1746ff94537SFabien Parent i-cache-sets = <256>; 1756ff94537SFabien Parent d-cache-size = <0x8000>; 1766ff94537SFabien Parent d-cache-line-size = <64>; 1776ff94537SFabien Parent d-cache-sets = <256>; 1786ff94537SFabien Parent next-level-cache = <&l2>; 17927205cecSAlexandre Mergnat clocks = <&mcucfg CLK_MCU_BUS_SEL>, 18027205cecSAlexandre Mergnat <&apmixedsys CLK_APMIXED_MAINPLL>; 18127205cecSAlexandre Mergnat clock-names = "cpu", "intermediate", "armpll"; 18227205cecSAlexandre Mergnat operating-points-v2 = <&cluster0_opp>; 1836ff94537SFabien Parent }; 1846ff94537SFabien Parent 1856ff94537SFabien Parent cpu3: cpu@3 { 1866ff94537SFabien Parent device_type = "cpu"; 1876ff94537SFabien Parent compatible = "arm,cortex-a53"; 1886ff94537SFabien Parent reg = <0x3>; 1896ff94537SFabien Parent #cooling-cells = <2>; 1906ff94537SFabien Parent enable-method = "psci"; 191e8c6b47fSAmjad Ouled-Ameur cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>; 1926ff94537SFabien Parent i-cache-size = <0x8000>; 1936ff94537SFabien Parent i-cache-line-size = <64>; 1946ff94537SFabien Parent i-cache-sets = <256>; 1956ff94537SFabien Parent d-cache-size = <0x8000>; 1966ff94537SFabien Parent d-cache-line-size = <64>; 1976ff94537SFabien Parent d-cache-sets = <256>; 1986ff94537SFabien Parent next-level-cache = <&l2>; 19927205cecSAlexandre Mergnat clocks = <&mcucfg CLK_MCU_BUS_SEL>, 20027205cecSAlexandre Mergnat <&apmixedsys CLK_APMIXED_MAINPLL>; 20127205cecSAlexandre Mergnat clock-names = "cpu", "intermediate", "armpll"; 20227205cecSAlexandre Mergnat operating-points-v2 = <&cluster0_opp>; 2036ff94537SFabien Parent }; 2046ff94537SFabien Parent 205e8c6b47fSAmjad Ouled-Ameur idle-states { 206e8c6b47fSAmjad Ouled-Ameur entry-method = "psci"; 207e8c6b47fSAmjad Ouled-Ameur 208e8c6b47fSAmjad Ouled-Ameur CPU_MCDI: cpu-mcdi { 209e8c6b47fSAmjad Ouled-Ameur compatible = "arm,idle-state"; 210e8c6b47fSAmjad Ouled-Ameur local-timer-stop; 211e8c6b47fSAmjad Ouled-Ameur arm,psci-suspend-param = <0x00010001>; 212e8c6b47fSAmjad Ouled-Ameur entry-latency-us = <300>; 213e8c6b47fSAmjad Ouled-Ameur exit-latency-us = <200>; 214e8c6b47fSAmjad Ouled-Ameur min-residency-us = <1000>; 215e8c6b47fSAmjad Ouled-Ameur }; 216e8c6b47fSAmjad Ouled-Ameur 217e8c6b47fSAmjad Ouled-Ameur CLUSTER_MCDI: cluster-mcdi { 218e8c6b47fSAmjad Ouled-Ameur compatible = "arm,idle-state"; 219e8c6b47fSAmjad Ouled-Ameur local-timer-stop; 220e8c6b47fSAmjad Ouled-Ameur arm,psci-suspend-param = <0x01010001>; 221e8c6b47fSAmjad Ouled-Ameur entry-latency-us = <350>; 222e8c6b47fSAmjad Ouled-Ameur exit-latency-us = <250>; 223e8c6b47fSAmjad Ouled-Ameur min-residency-us = <1200>; 224e8c6b47fSAmjad Ouled-Ameur }; 225e8c6b47fSAmjad Ouled-Ameur 226e8c6b47fSAmjad Ouled-Ameur CLUSTER_DPIDLE: cluster-dpidle { 227e8c6b47fSAmjad Ouled-Ameur compatible = "arm,idle-state"; 228e8c6b47fSAmjad Ouled-Ameur local-timer-stop; 229e8c6b47fSAmjad Ouled-Ameur arm,psci-suspend-param = <0x01010004>; 230e8c6b47fSAmjad Ouled-Ameur entry-latency-us = <300>; 231e8c6b47fSAmjad Ouled-Ameur exit-latency-us = <800>; 232e8c6b47fSAmjad Ouled-Ameur min-residency-us = <3300>; 233e8c6b47fSAmjad Ouled-Ameur }; 234e8c6b47fSAmjad Ouled-Ameur }; 235e8c6b47fSAmjad Ouled-Ameur 2366ff94537SFabien Parent l2: l2-cache { 2376ff94537SFabien Parent compatible = "cache"; 2386ff94537SFabien Parent cache-level = <2>; 2396ff94537SFabien Parent cache-size = <0x80000>; 2406ff94537SFabien Parent cache-line-size = <64>; 2416ff94537SFabien Parent cache-sets = <512>; 2426ff94537SFabien Parent cache-unified; 2436ff94537SFabien Parent }; 2446ff94537SFabien Parent }; 2456ff94537SFabien Parent 2466ff94537SFabien Parent clk26m: oscillator { 2476ff94537SFabien Parent compatible = "fixed-clock"; 2486ff94537SFabien Parent #clock-cells = <0>; 2496ff94537SFabien Parent clock-frequency = <26000000>; 2506ff94537SFabien Parent clock-output-names = "clk26m"; 2516ff94537SFabien Parent }; 2526ff94537SFabien Parent 2536ff94537SFabien Parent psci { 2546ff94537SFabien Parent compatible = "arm,psci-1.0"; 2556ff94537SFabien Parent method = "smc"; 2566ff94537SFabien Parent }; 2576ff94537SFabien Parent 2586ff94537SFabien Parent soc { 2596ff94537SFabien Parent #address-cells = <2>; 2606ff94537SFabien Parent #size-cells = <2>; 2616ff94537SFabien Parent compatible = "simple-bus"; 2626ff94537SFabien Parent ranges; 2636ff94537SFabien Parent 2646ff94537SFabien Parent gic: interrupt-controller@c000000 { 2656ff94537SFabien Parent compatible = "arm,gic-v3"; 2666ff94537SFabien Parent #interrupt-cells = <3>; 2676ff94537SFabien Parent interrupt-parent = <&gic>; 2686ff94537SFabien Parent interrupt-controller; 2696ff94537SFabien Parent reg = <0 0x0c000000 0 0x10000>, /* GICD */ 2706ff94537SFabien Parent <0 0x0c080000 0 0x80000>, /* GICR */ 2716ff94537SFabien Parent <0 0x0c400000 0 0x2000>, /* GICC */ 2726ff94537SFabien Parent <0 0x0c410000 0 0x1000>, /* GICH */ 2736ff94537SFabien Parent <0 0x0c420000 0 0x2000>; /* GICV */ 2746ff94537SFabien Parent 2756ff94537SFabien Parent interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 2766ff94537SFabien Parent }; 2776ff94537SFabien Parent 2786ff94537SFabien Parent topckgen: syscon@10000000 { 2796ff94537SFabien Parent compatible = "mediatek,mt8365-topckgen", "syscon"; 2806ff94537SFabien Parent reg = <0 0x10000000 0 0x1000>; 2816ff94537SFabien Parent #clock-cells = <1>; 2826ff94537SFabien Parent }; 2836ff94537SFabien Parent 2846ff94537SFabien Parent infracfg: syscon@10001000 { 2856ff94537SFabien Parent compatible = "mediatek,mt8365-infracfg", "syscon"; 2866ff94537SFabien Parent reg = <0 0x10001000 0 0x1000>; 2876ff94537SFabien Parent #clock-cells = <1>; 2886ff94537SFabien Parent }; 2896ff94537SFabien Parent 2906ff94537SFabien Parent pericfg: syscon@10003000 { 2916ff94537SFabien Parent compatible = "mediatek,mt8365-pericfg", "syscon"; 2926ff94537SFabien Parent reg = <0 0x10003000 0 0x1000>; 2936ff94537SFabien Parent #clock-cells = <1>; 2946ff94537SFabien Parent }; 2956ff94537SFabien Parent 2966ff94537SFabien Parent syscfg_pctl: syscfg-pctl@10005000 { 2976ff94537SFabien Parent compatible = "mediatek,mt8365-syscfg", "syscon"; 2986ff94537SFabien Parent reg = <0 0x10005000 0 0x1000>; 2996ff94537SFabien Parent }; 3006ff94537SFabien Parent 301751ec3daSAlexandre Mergnat watchdog: watchdog@10007000 { 302751ec3daSAlexandre Mergnat compatible = "mediatek,mt8365-wdt", "mediatek,mt6589-wdt"; 303751ec3daSAlexandre Mergnat reg = <0 0x10007000 0 0x100>; 304751ec3daSAlexandre Mergnat #reset-cells = <1>; 305751ec3daSAlexandre Mergnat }; 306751ec3daSAlexandre Mergnat 3076ff94537SFabien Parent pio: pinctrl@1000b000 { 3086ff94537SFabien Parent compatible = "mediatek,mt8365-pinctrl"; 3096ff94537SFabien Parent reg = <0 0x1000b000 0 0x1000>; 3106ff94537SFabien Parent mediatek,pctl-regmap = <&syscfg_pctl>; 3116ff94537SFabien Parent gpio-controller; 3126ff94537SFabien Parent #gpio-cells = <2>; 3136ff94537SFabien Parent interrupt-controller; 3146ff94537SFabien Parent #interrupt-cells = <2>; 3156ff94537SFabien Parent interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 3166ff94537SFabien Parent }; 3176ff94537SFabien Parent 3186ff94537SFabien Parent apmixedsys: syscon@1000c000 { 3196ff94537SFabien Parent compatible = "mediatek,mt8365-apmixedsys", "syscon"; 3206ff94537SFabien Parent reg = <0 0x1000c000 0 0x1000>; 3216ff94537SFabien Parent #clock-cells = <1>; 3226ff94537SFabien Parent }; 3236ff94537SFabien Parent 324a00d1c91SAlexandre Mergnat pwrap: pwrap@1000d000 { 325a00d1c91SAlexandre Mergnat compatible = "mediatek,mt8365-pwrap"; 326a00d1c91SAlexandre Mergnat reg = <0 0x1000d000 0 0x1000>; 327a00d1c91SAlexandre Mergnat reg-names = "pwrap"; 328a00d1c91SAlexandre Mergnat interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 329a00d1c91SAlexandre Mergnat clocks = <&infracfg CLK_IFR_PWRAP_SPI>, 330a00d1c91SAlexandre Mergnat <&infracfg CLK_IFR_PMIC_AP>, 331a00d1c91SAlexandre Mergnat <&infracfg CLK_IFR_PWRAP_SYS>, 332a00d1c91SAlexandre Mergnat <&infracfg CLK_IFR_PWRAP_TMR>; 333a00d1c91SAlexandre Mergnat clock-names = "spi", "wrap", "sys", "tmr"; 334a00d1c91SAlexandre Mergnat }; 335a00d1c91SAlexandre Mergnat 3366ff94537SFabien Parent keypad: keypad@10010000 { 337*c7e2f0eeSVal Packett compatible = "mediatek,mt8365-keypad", 338*c7e2f0eeSVal Packett "mediatek,mt6779-keypad"; 3396ff94537SFabien Parent reg = <0 0x10010000 0 0x1000>; 3406ff94537SFabien Parent wakeup-source; 3416ff94537SFabien Parent interrupts = <GIC_SPI 124 IRQ_TYPE_EDGE_FALLING>; 3426ff94537SFabien Parent clocks = <&clk26m>; 3436ff94537SFabien Parent clock-names = "kpd"; 3446ff94537SFabien Parent status = "disabled"; 3456ff94537SFabien Parent }; 3466ff94537SFabien Parent 3476ff94537SFabien Parent mcucfg: syscon@10200000 { 3486ff94537SFabien Parent compatible = "mediatek,mt8365-mcucfg", "syscon"; 3496ff94537SFabien Parent reg = <0 0x10200000 0 0x2000>; 3506ff94537SFabien Parent #clock-cells = <1>; 3516ff94537SFabien Parent }; 3526ff94537SFabien Parent 3536ff94537SFabien Parent sysirq: interrupt-controller@10200a80 { 3546ff94537SFabien Parent compatible = "mediatek,mt8365-sysirq", "mediatek,mt6577-sysirq"; 3556ff94537SFabien Parent interrupt-controller; 3566ff94537SFabien Parent #interrupt-cells = <3>; 3576ff94537SFabien Parent interrupt-parent = <&gic>; 3586ff94537SFabien Parent reg = <0 0x10200a80 0 0x20>; 3596ff94537SFabien Parent }; 3606ff94537SFabien Parent 3616ff94537SFabien Parent infracfg_nao: infracfg@1020e000 { 3626ff94537SFabien Parent compatible = "mediatek,mt8365-infracfg", "syscon"; 3636ff94537SFabien Parent reg = <0 0x1020e000 0 0x1000>; 3646ff94537SFabien Parent #clock-cells = <1>; 3656ff94537SFabien Parent }; 3666ff94537SFabien Parent 3676ff94537SFabien Parent rng: rng@1020f000 { 3686ff94537SFabien Parent compatible = "mediatek,mt8365-rng", "mediatek,mt7623-rng"; 3696ff94537SFabien Parent reg = <0 0x1020f000 0 0x100>; 3706ff94537SFabien Parent clocks = <&infracfg CLK_IFR_TRNG>; 3716ff94537SFabien Parent clock-names = "rng"; 3726ff94537SFabien Parent }; 3736ff94537SFabien Parent 3746ff94537SFabien Parent apdma: dma-controller@11000280 { 3756ff94537SFabien Parent compatible = "mediatek,mt8365-uart-dma", "mediatek,mt6577-uart-dma"; 3766ff94537SFabien Parent reg = <0 0x11000280 0 0x80>, 3776ff94537SFabien Parent <0 0x11000300 0 0x80>, 3786ff94537SFabien Parent <0 0x11000380 0 0x80>, 3796ff94537SFabien Parent <0 0x11000400 0 0x80>, 3806ff94537SFabien Parent <0 0x11000580 0 0x80>, 3816ff94537SFabien Parent <0 0x11000600 0 0x80>; 3826ff94537SFabien Parent interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>, 3836ff94537SFabien Parent <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>, 3846ff94537SFabien Parent <GIC_SPI 47 IRQ_TYPE_LEVEL_LOW>, 3856ff94537SFabien Parent <GIC_SPI 48 IRQ_TYPE_LEVEL_LOW>, 3866ff94537SFabien Parent <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>, 3876ff94537SFabien Parent <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>; 3886ff94537SFabien Parent dma-requests = <6>; 3896ff94537SFabien Parent clocks = <&infracfg CLK_IFR_AP_DMA>; 3906ff94537SFabien Parent clock-names = "apdma"; 3916ff94537SFabien Parent #dma-cells = <1>; 3926ff94537SFabien Parent }; 3936ff94537SFabien Parent 3946ff94537SFabien Parent uart0: serial@11002000 { 3956ff94537SFabien Parent compatible = "mediatek,mt8365-uart", "mediatek,mt6577-uart"; 3966ff94537SFabien Parent reg = <0 0x11002000 0 0x1000>; 3976ff94537SFabien Parent interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_LOW>; 3986ff94537SFabien Parent clocks = <&clk26m>, <&infracfg CLK_IFR_UART0>; 3996ff94537SFabien Parent clock-names = "baud", "bus"; 4006ff94537SFabien Parent dmas = <&apdma 0>, <&apdma 1>; 4016ff94537SFabien Parent dma-names = "tx", "rx"; 4026ff94537SFabien Parent status = "disabled"; 4036ff94537SFabien Parent }; 4046ff94537SFabien Parent 4056ff94537SFabien Parent uart1: serial@11003000 { 4066ff94537SFabien Parent compatible = "mediatek,mt8365-uart", "mediatek,mt6577-uart"; 4076ff94537SFabien Parent reg = <0 0x11003000 0 0x1000>; 4086ff94537SFabien Parent interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_LOW>; 4096ff94537SFabien Parent clocks = <&clk26m>, <&infracfg CLK_IFR_UART1>; 4106ff94537SFabien Parent clock-names = "baud", "bus"; 4116ff94537SFabien Parent dmas = <&apdma 2>, <&apdma 3>; 4126ff94537SFabien Parent dma-names = "tx", "rx"; 4136ff94537SFabien Parent status = "disabled"; 4146ff94537SFabien Parent }; 4156ff94537SFabien Parent 4166ff94537SFabien Parent uart2: serial@11004000 { 4176ff94537SFabien Parent compatible = "mediatek,mt8365-uart", "mediatek,mt6577-uart"; 4186ff94537SFabien Parent reg = <0 0x11004000 0 0x1000>; 4196ff94537SFabien Parent interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_LOW>; 4206ff94537SFabien Parent clocks = <&clk26m>, <&infracfg CLK_IFR_UART2>; 4216ff94537SFabien Parent clock-names = "baud", "bus"; 4226ff94537SFabien Parent dmas = <&apdma 4>, <&apdma 5>; 4236ff94537SFabien Parent dma-names = "tx", "rx"; 4246ff94537SFabien Parent status = "disabled"; 4256ff94537SFabien Parent }; 4266ff94537SFabien Parent 4276ff94537SFabien Parent pwm: pwm@11006000 { 4286ff94537SFabien Parent compatible = "mediatek,mt8365-pwm"; 4296ff94537SFabien Parent reg = <0 0x11006000 0 0x1000>; 4306ff94537SFabien Parent #pwm-cells = <2>; 4316ff94537SFabien Parent interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>; 4326ff94537SFabien Parent clocks = <&infracfg CLK_IFR_PWM_HCLK>, 4336ff94537SFabien Parent <&infracfg CLK_IFR_PWM>, 4346ff94537SFabien Parent <&infracfg CLK_IFR_PWM1>, 4356ff94537SFabien Parent <&infracfg CLK_IFR_PWM2>, 4366ff94537SFabien Parent <&infracfg CLK_IFR_PWM3>; 4376ff94537SFabien Parent clock-names = "top", "main", "pwm1", "pwm2", "pwm3"; 4386ff94537SFabien Parent }; 4396ff94537SFabien Parent 440dbf17e13SAlexandre Mergnat i2c0: i2c@11007000 { 441dbf17e13SAlexandre Mergnat compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c"; 442dbf17e13SAlexandre Mergnat reg = <0 0x11007000 0 0xa0>, <0 0x11000080 0 0x80>; 443dbf17e13SAlexandre Mergnat interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_LOW>; 444dbf17e13SAlexandre Mergnat clock-div = <1>; 445dbf17e13SAlexandre Mergnat clocks = <&infracfg CLK_IFR_I2C0_AXI>, <&infracfg CLK_IFR_AP_DMA>; 446dbf17e13SAlexandre Mergnat clock-names = "main", "dma"; 447dbf17e13SAlexandre Mergnat #address-cells = <1>; 448dbf17e13SAlexandre Mergnat #size-cells = <0>; 449dbf17e13SAlexandre Mergnat status = "disabled"; 450dbf17e13SAlexandre Mergnat }; 451dbf17e13SAlexandre Mergnat 452dbf17e13SAlexandre Mergnat i2c1: i2c@11008000 { 453dbf17e13SAlexandre Mergnat compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c"; 454dbf17e13SAlexandre Mergnat reg = <0 0x11008000 0 0xa0>, <0 0x11000100 0 0x80>; 455dbf17e13SAlexandre Mergnat interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_LOW>; 456dbf17e13SAlexandre Mergnat clock-div = <1>; 457dbf17e13SAlexandre Mergnat clocks = <&infracfg CLK_IFR_I2C1_AXI>, <&infracfg CLK_IFR_AP_DMA>; 458dbf17e13SAlexandre Mergnat clock-names = "main", "dma"; 459dbf17e13SAlexandre Mergnat #address-cells = <1>; 460dbf17e13SAlexandre Mergnat #size-cells = <0>; 461dbf17e13SAlexandre Mergnat status = "disabled"; 462dbf17e13SAlexandre Mergnat }; 463dbf17e13SAlexandre Mergnat 464dbf17e13SAlexandre Mergnat i2c2: i2c@11009000 { 465dbf17e13SAlexandre Mergnat compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c"; 466dbf17e13SAlexandre Mergnat reg = <0 0x11009000 0 0xa0>, <0 0x11000180 0 0x80>; 467dbf17e13SAlexandre Mergnat interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_LOW>; 468dbf17e13SAlexandre Mergnat clock-div = <1>; 469dbf17e13SAlexandre Mergnat clocks = <&infracfg CLK_IFR_I2C2_AXI>, <&infracfg CLK_IFR_AP_DMA>; 470dbf17e13SAlexandre Mergnat clock-names = "main", "dma"; 471dbf17e13SAlexandre Mergnat #address-cells = <1>; 472dbf17e13SAlexandre Mergnat #size-cells = <0>; 473dbf17e13SAlexandre Mergnat status = "disabled"; 474dbf17e13SAlexandre Mergnat }; 475dbf17e13SAlexandre Mergnat 4766ff94537SFabien Parent spi: spi@1100a000 { 4776ff94537SFabien Parent compatible = "mediatek,mt8365-spi", "mediatek,mt7622-spi"; 4786ff94537SFabien Parent reg = <0 0x1100a000 0 0x100>; 4796ff94537SFabien Parent #address-cells = <1>; 4806ff94537SFabien Parent #size-cells = <0>; 4816ff94537SFabien Parent interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_LOW>; 4826ff94537SFabien Parent clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>, 4836ff94537SFabien Parent <&topckgen CLK_TOP_SPI_SEL>, 4846ff94537SFabien Parent <&infracfg CLK_IFR_SPI0>; 4856ff94537SFabien Parent clock-names = "parent-clk", "sel-clk", "spi-clk"; 4866ff94537SFabien Parent status = "disabled"; 4876ff94537SFabien Parent }; 4886ff94537SFabien Parent 489dbf17e13SAlexandre Mergnat i2c3: i2c@1100f000 { 490dbf17e13SAlexandre Mergnat compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c"; 491dbf17e13SAlexandre Mergnat reg = <0 0x1100f000 0 0xa0>, <0 0x11000200 0 0x80>; 492dbf17e13SAlexandre Mergnat interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>; 493dbf17e13SAlexandre Mergnat clock-div = <1>; 494dbf17e13SAlexandre Mergnat clocks = <&infracfg CLK_IFR_I2C3_AXI>, <&infracfg CLK_IFR_AP_DMA>; 495dbf17e13SAlexandre Mergnat clock-names = "main", "dma"; 496dbf17e13SAlexandre Mergnat #address-cells = <1>; 497dbf17e13SAlexandre Mergnat #size-cells = <0>; 498dbf17e13SAlexandre Mergnat status = "disabled"; 499dbf17e13SAlexandre Mergnat }; 500dbf17e13SAlexandre Mergnat 5016ff94537SFabien Parent ssusb: usb@11201000 { 5026ff94537SFabien Parent compatible = "mediatek,mt8365-mtu3", "mediatek,mtu3"; 5036ff94537SFabien Parent reg = <0 0x11201000 0 0x2e00>, <0 0x11203e00 0 0x0100>; 5046ff94537SFabien Parent reg-names = "mac", "ippc"; 5056ff94537SFabien Parent interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_LOW>; 5066ff94537SFabien Parent phys = <&u2port0 PHY_TYPE_USB2>, 5076ff94537SFabien Parent <&u2port1 PHY_TYPE_USB2>; 5086ff94537SFabien Parent clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>, 5096ff94537SFabien Parent <&infracfg CLK_IFR_SSUSB_REF>, 5106ff94537SFabien Parent <&infracfg CLK_IFR_SSUSB_SYS>, 5116ff94537SFabien Parent <&infracfg CLK_IFR_ICUSB>; 5126ff94537SFabien Parent clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck"; 5136ff94537SFabien Parent #address-cells = <2>; 5146ff94537SFabien Parent #size-cells = <2>; 5156ff94537SFabien Parent ranges; 5166ff94537SFabien Parent status = "disabled"; 5176ff94537SFabien Parent 5186ff94537SFabien Parent usb_host: usb@11200000 { 5196ff94537SFabien Parent compatible = "mediatek,mt8365-xhci", "mediatek,mtk-xhci"; 5206ff94537SFabien Parent reg = <0 0x11200000 0 0x1000>; 5216ff94537SFabien Parent reg-names = "mac"; 5226ff94537SFabien Parent interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_LOW>; 5236ff94537SFabien Parent clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>, 5246ff94537SFabien Parent <&infracfg CLK_IFR_SSUSB_REF>, 5256ff94537SFabien Parent <&infracfg CLK_IFR_SSUSB_SYS>, 5266ff94537SFabien Parent <&infracfg CLK_IFR_ICUSB>, 5276ff94537SFabien Parent <&infracfg CLK_IFR_SSUSB_XHCI>; 5286ff94537SFabien Parent clock-names = "sys_ck", "ref_ck", "mcu_ck", 5296ff94537SFabien Parent "dma_ck", "xhci_ck"; 5306ff94537SFabien Parent status = "disabled"; 5316ff94537SFabien Parent }; 5326ff94537SFabien Parent }; 5336ff94537SFabien Parent 5348b5db516SAlexandre Mergnat mmc0: mmc@11230000 { 5358b5db516SAlexandre Mergnat compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc"; 5368b5db516SAlexandre Mergnat reg = <0 0x11230000 0 0x1000>, 5378b5db516SAlexandre Mergnat <0 0x11cd0000 0 0x1000>; 5388b5db516SAlexandre Mergnat interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_LOW>; 5398b5db516SAlexandre Mergnat clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>, 5408b5db516SAlexandre Mergnat <&infracfg CLK_IFR_MSDC0_HCLK>, 5418b5db516SAlexandre Mergnat <&infracfg CLK_IFR_MSDC0_SRC>; 5428b5db516SAlexandre Mergnat clock-names = "source", "hclk", "source_cg"; 5438b5db516SAlexandre Mergnat status = "disabled"; 5448b5db516SAlexandre Mergnat }; 5458b5db516SAlexandre Mergnat 5468b5db516SAlexandre Mergnat mmc1: mmc@11240000 { 5478b5db516SAlexandre Mergnat compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc"; 5488b5db516SAlexandre Mergnat reg = <0 0x11240000 0 0x1000>, 5498b5db516SAlexandre Mergnat <0 0x11c90000 0 0x1000>; 5508b5db516SAlexandre Mergnat interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_LOW>; 5518b5db516SAlexandre Mergnat clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>, 5528b5db516SAlexandre Mergnat <&infracfg CLK_IFR_MSDC1_HCLK>, 5538b5db516SAlexandre Mergnat <&infracfg CLK_IFR_MSDC1_SRC>; 5548b5db516SAlexandre Mergnat clock-names = "source", "hclk", "source_cg"; 5558b5db516SAlexandre Mergnat status = "disabled"; 5568b5db516SAlexandre Mergnat }; 5578b5db516SAlexandre Mergnat 5588b5db516SAlexandre Mergnat mmc2: mmc@11250000 { 5598b5db516SAlexandre Mergnat compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc"; 5608b5db516SAlexandre Mergnat reg = <0 0x11250000 0 0x1000>, 5618b5db516SAlexandre Mergnat <0 0x11c60000 0 0x1000>; 5628b5db516SAlexandre Mergnat interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_LOW>; 5638b5db516SAlexandre Mergnat clocks = <&topckgen CLK_TOP_MSDC50_2_SEL>, 5648b5db516SAlexandre Mergnat <&infracfg CLK_IFR_MSDC2_HCLK>, 5658b5db516SAlexandre Mergnat <&infracfg CLK_IFR_MSDC2_SRC>, 5668b5db516SAlexandre Mergnat <&infracfg CLK_IFR_MSDC2_BK>, 5678b5db516SAlexandre Mergnat <&infracfg CLK_IFR_AP_MSDC0>; 5688b5db516SAlexandre Mergnat clock-names = "source", "hclk", "source_cg", 5698b5db516SAlexandre Mergnat "bus_clk", "sys_cg"; 5708b5db516SAlexandre Mergnat status = "disabled"; 5718b5db516SAlexandre Mergnat }; 5728b5db516SAlexandre Mergnat 57391e217d4SAlexandre Mergnat ethernet: ethernet@112a0000 { 57491e217d4SAlexandre Mergnat compatible = "mediatek,mt8365-eth"; 57591e217d4SAlexandre Mergnat reg = <0 0x112a0000 0 0x1000>; 57691e217d4SAlexandre Mergnat mediatek,pericfg = <&infracfg>; 57791e217d4SAlexandre Mergnat interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 57891e217d4SAlexandre Mergnat clocks = <&topckgen CLK_TOP_ETH_SEL>, 57991e217d4SAlexandre Mergnat <&infracfg CLK_IFR_NIC_AXI>, 58091e217d4SAlexandre Mergnat <&infracfg CLK_IFR_NIC_SLV_AXI>; 58191e217d4SAlexandre Mergnat clock-names = "core", "reg", "trans"; 58291e217d4SAlexandre Mergnat status = "disabled"; 58391e217d4SAlexandre Mergnat }; 58491e217d4SAlexandre Mergnat 5856ff94537SFabien Parent u3phy: t-phy@11cc0000 { 5866ff94537SFabien Parent compatible = "mediatek,mt8365-tphy", "mediatek,generic-tphy-v2"; 5876ff94537SFabien Parent #address-cells = <1>; 5886ff94537SFabien Parent #size-cells = <1>; 5896ff94537SFabien Parent ranges = <0 0 0x11cc0000 0x9000>; 5906ff94537SFabien Parent 5916ff94537SFabien Parent u2port0: usb-phy@0 { 5926ff94537SFabien Parent reg = <0x0 0x400>; 5936ff94537SFabien Parent clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>, 5946ff94537SFabien Parent <&topckgen CLK_TOP_USB20_48M_EN>; 5956ff94537SFabien Parent clock-names = "ref", "da_ref"; 5966ff94537SFabien Parent #phy-cells = <1>; 5976ff94537SFabien Parent }; 5986ff94537SFabien Parent 5996ff94537SFabien Parent u2port1: usb-phy@1000 { 6006ff94537SFabien Parent reg = <0x1000 0x400>; 6016ff94537SFabien Parent clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>, 6026ff94537SFabien Parent <&topckgen CLK_TOP_USB20_48M_EN>; 6036ff94537SFabien Parent clock-names = "ref", "da_ref"; 6046ff94537SFabien Parent #phy-cells = <1>; 6056ff94537SFabien Parent }; 6066ff94537SFabien Parent }; 6076ff94537SFabien Parent }; 6086ff94537SFabien Parent 6096ff94537SFabien Parent timer { 6106ff94537SFabien Parent compatible = "arm,armv8-timer"; 6116ff94537SFabien Parent interrupt-parent = <&gic>; 6126ff94537SFabien Parent interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 6136ff94537SFabien Parent <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 6146ff94537SFabien Parent <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 6156ff94537SFabien Parent <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 6166ff94537SFabien Parent }; 6176ff94537SFabien Parent 6186ff94537SFabien Parent system_clk: dummy13m { 6196ff94537SFabien Parent compatible = "fixed-clock"; 6206ff94537SFabien Parent clock-frequency = <13000000>; 6216ff94537SFabien Parent #clock-cells = <0>; 6226ff94537SFabien Parent }; 6236ff94537SFabien Parent 6246ff94537SFabien Parent systimer: timer@10017000 { 6256ff94537SFabien Parent compatible = "mediatek,mt8365-systimer", "mediatek,mt6765-timer"; 6266ff94537SFabien Parent reg = <0 0x10017000 0 0x100>; 6276ff94537SFabien Parent interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 6286ff94537SFabien Parent clocks = <&system_clk>; 6296ff94537SFabien Parent clock-names = "clk13m"; 6306ff94537SFabien Parent }; 6316ff94537SFabien Parent}; 632