162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * (C) 2018 MediaTek Inc. 462306a36Sopenharmony_ci * Copyright (C) 2022 BayLibre SAS 562306a36Sopenharmony_ci * Fabien Parent <fparent@baylibre.com> 662306a36Sopenharmony_ci * Bernhard Rosenkränzer <bero@baylibre.com> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci#include <dt-bindings/clock/mediatek,mt8365-clk.h> 962306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h> 1062306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 1162306a36Sopenharmony_ci#include <dt-bindings/phy/phy.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/ { 1462306a36Sopenharmony_ci compatible = "mediatek,mt8365"; 1562306a36Sopenharmony_ci interrupt-parent = <&sysirq>; 1662306a36Sopenharmony_ci #address-cells = <2>; 1762306a36Sopenharmony_ci #size-cells = <2>; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci cpus { 2062306a36Sopenharmony_ci #address-cells = <1>; 2162306a36Sopenharmony_ci #size-cells = <0>; 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci cluster0_opp: opp-table-0 { 2462306a36Sopenharmony_ci compatible = "operating-points-v2"; 2562306a36Sopenharmony_ci opp-shared; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci opp-850000000 { 2862306a36Sopenharmony_ci opp-hz = /bits/ 64 <850000000>; 2962306a36Sopenharmony_ci opp-microvolt = <650000>; 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci opp-918000000 { 3362306a36Sopenharmony_ci opp-hz = /bits/ 64 <918000000>; 3462306a36Sopenharmony_ci opp-microvolt = <668750>; 3562306a36Sopenharmony_ci }; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci opp-987000000 { 3862306a36Sopenharmony_ci opp-hz = /bits/ 64 <987000000>; 3962306a36Sopenharmony_ci opp-microvolt = <687500>; 4062306a36Sopenharmony_ci }; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci opp-1056000000 { 4362306a36Sopenharmony_ci opp-hz = /bits/ 64 <1056000000>; 4462306a36Sopenharmony_ci opp-microvolt = <706250>; 4562306a36Sopenharmony_ci }; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci opp-1125000000 { 4862306a36Sopenharmony_ci opp-hz = /bits/ 64 <1125000000>; 4962306a36Sopenharmony_ci opp-microvolt = <725000>; 5062306a36Sopenharmony_ci }; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci opp-1216000000 { 5362306a36Sopenharmony_ci opp-hz = /bits/ 64 <1216000000>; 5462306a36Sopenharmony_ci opp-microvolt = <750000>; 5562306a36Sopenharmony_ci }; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci opp-1308000000 { 5862306a36Sopenharmony_ci opp-hz = /bits/ 64 <1308000000>; 5962306a36Sopenharmony_ci opp-microvolt = <775000>; 6062306a36Sopenharmony_ci }; 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci opp-1400000000 { 6362306a36Sopenharmony_ci opp-hz = /bits/ 64 <1400000000>; 6462306a36Sopenharmony_ci opp-microvolt = <800000>; 6562306a36Sopenharmony_ci }; 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci opp-1466000000 { 6862306a36Sopenharmony_ci opp-hz = /bits/ 64 <1466000000>; 6962306a36Sopenharmony_ci opp-microvolt = <825000>; 7062306a36Sopenharmony_ci }; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci opp-1533000000 { 7362306a36Sopenharmony_ci opp-hz = /bits/ 64 <1533000000>; 7462306a36Sopenharmony_ci opp-microvolt = <850000>; 7562306a36Sopenharmony_ci }; 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci opp-1633000000 { 7862306a36Sopenharmony_ci opp-hz = /bits/ 64 <1633000000>; 7962306a36Sopenharmony_ci opp-microvolt = <887500>; 8062306a36Sopenharmony_ci }; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci opp-1700000000 { 8362306a36Sopenharmony_ci opp-hz = /bits/ 64 <1700000000>; 8462306a36Sopenharmony_ci opp-microvolt = <912500>; 8562306a36Sopenharmony_ci }; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci opp-1767000000 { 8862306a36Sopenharmony_ci opp-hz = /bits/ 64 <1767000000>; 8962306a36Sopenharmony_ci opp-microvolt = <937500>; 9062306a36Sopenharmony_ci }; 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci opp-1834000000 { 9362306a36Sopenharmony_ci opp-hz = /bits/ 64 <1834000000>; 9462306a36Sopenharmony_ci opp-microvolt = <962500>; 9562306a36Sopenharmony_ci }; 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci opp-1917000000 { 9862306a36Sopenharmony_ci opp-hz = /bits/ 64 <1917000000>; 9962306a36Sopenharmony_ci opp-microvolt = <993750>; 10062306a36Sopenharmony_ci }; 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci opp-2001000000 { 10362306a36Sopenharmony_ci opp-hz = /bits/ 64 <2001000000>; 10462306a36Sopenharmony_ci opp-microvolt = <1025000>; 10562306a36Sopenharmony_ci }; 10662306a36Sopenharmony_ci }; 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci cpu-map { 10962306a36Sopenharmony_ci cluster0 { 11062306a36Sopenharmony_ci core0 { 11162306a36Sopenharmony_ci cpu = <&cpu0>; 11262306a36Sopenharmony_ci }; 11362306a36Sopenharmony_ci core1 { 11462306a36Sopenharmony_ci cpu = <&cpu1>; 11562306a36Sopenharmony_ci }; 11662306a36Sopenharmony_ci core2 { 11762306a36Sopenharmony_ci cpu = <&cpu2>; 11862306a36Sopenharmony_ci }; 11962306a36Sopenharmony_ci core3 { 12062306a36Sopenharmony_ci cpu = <&cpu3>; 12162306a36Sopenharmony_ci }; 12262306a36Sopenharmony_ci }; 12362306a36Sopenharmony_ci }; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci cpu0: cpu@0 { 12662306a36Sopenharmony_ci device_type = "cpu"; 12762306a36Sopenharmony_ci compatible = "arm,cortex-a53"; 12862306a36Sopenharmony_ci reg = <0x0>; 12962306a36Sopenharmony_ci #cooling-cells = <2>; 13062306a36Sopenharmony_ci enable-method = "psci"; 13162306a36Sopenharmony_ci cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>; 13262306a36Sopenharmony_ci i-cache-size = <0x8000>; 13362306a36Sopenharmony_ci i-cache-line-size = <64>; 13462306a36Sopenharmony_ci i-cache-sets = <256>; 13562306a36Sopenharmony_ci d-cache-size = <0x8000>; 13662306a36Sopenharmony_ci d-cache-line-size = <64>; 13762306a36Sopenharmony_ci d-cache-sets = <256>; 13862306a36Sopenharmony_ci next-level-cache = <&l2>; 13962306a36Sopenharmony_ci clocks = <&mcucfg CLK_MCU_BUS_SEL>, 14062306a36Sopenharmony_ci <&apmixedsys CLK_APMIXED_MAINPLL>; 14162306a36Sopenharmony_ci clock-names = "cpu", "intermediate"; 14262306a36Sopenharmony_ci operating-points-v2 = <&cluster0_opp>; 14362306a36Sopenharmony_ci }; 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci cpu1: cpu@1 { 14662306a36Sopenharmony_ci device_type = "cpu"; 14762306a36Sopenharmony_ci compatible = "arm,cortex-a53"; 14862306a36Sopenharmony_ci reg = <0x1>; 14962306a36Sopenharmony_ci #cooling-cells = <2>; 15062306a36Sopenharmony_ci enable-method = "psci"; 15162306a36Sopenharmony_ci cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>; 15262306a36Sopenharmony_ci i-cache-size = <0x8000>; 15362306a36Sopenharmony_ci i-cache-line-size = <64>; 15462306a36Sopenharmony_ci i-cache-sets = <256>; 15562306a36Sopenharmony_ci d-cache-size = <0x8000>; 15662306a36Sopenharmony_ci d-cache-line-size = <64>; 15762306a36Sopenharmony_ci d-cache-sets = <256>; 15862306a36Sopenharmony_ci next-level-cache = <&l2>; 15962306a36Sopenharmony_ci clocks = <&mcucfg CLK_MCU_BUS_SEL>, 16062306a36Sopenharmony_ci <&apmixedsys CLK_APMIXED_MAINPLL>; 16162306a36Sopenharmony_ci clock-names = "cpu", "intermediate", "armpll"; 16262306a36Sopenharmony_ci operating-points-v2 = <&cluster0_opp>; 16362306a36Sopenharmony_ci }; 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci cpu2: cpu@2 { 16662306a36Sopenharmony_ci device_type = "cpu"; 16762306a36Sopenharmony_ci compatible = "arm,cortex-a53"; 16862306a36Sopenharmony_ci reg = <0x2>; 16962306a36Sopenharmony_ci #cooling-cells = <2>; 17062306a36Sopenharmony_ci enable-method = "psci"; 17162306a36Sopenharmony_ci cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>; 17262306a36Sopenharmony_ci i-cache-size = <0x8000>; 17362306a36Sopenharmony_ci i-cache-line-size = <64>; 17462306a36Sopenharmony_ci i-cache-sets = <256>; 17562306a36Sopenharmony_ci d-cache-size = <0x8000>; 17662306a36Sopenharmony_ci d-cache-line-size = <64>; 17762306a36Sopenharmony_ci d-cache-sets = <256>; 17862306a36Sopenharmony_ci next-level-cache = <&l2>; 17962306a36Sopenharmony_ci clocks = <&mcucfg CLK_MCU_BUS_SEL>, 18062306a36Sopenharmony_ci <&apmixedsys CLK_APMIXED_MAINPLL>; 18162306a36Sopenharmony_ci clock-names = "cpu", "intermediate", "armpll"; 18262306a36Sopenharmony_ci operating-points-v2 = <&cluster0_opp>; 18362306a36Sopenharmony_ci }; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci cpu3: cpu@3 { 18662306a36Sopenharmony_ci device_type = "cpu"; 18762306a36Sopenharmony_ci compatible = "arm,cortex-a53"; 18862306a36Sopenharmony_ci reg = <0x3>; 18962306a36Sopenharmony_ci #cooling-cells = <2>; 19062306a36Sopenharmony_ci enable-method = "psci"; 19162306a36Sopenharmony_ci cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>; 19262306a36Sopenharmony_ci i-cache-size = <0x8000>; 19362306a36Sopenharmony_ci i-cache-line-size = <64>; 19462306a36Sopenharmony_ci i-cache-sets = <256>; 19562306a36Sopenharmony_ci d-cache-size = <0x8000>; 19662306a36Sopenharmony_ci d-cache-line-size = <64>; 19762306a36Sopenharmony_ci d-cache-sets = <256>; 19862306a36Sopenharmony_ci next-level-cache = <&l2>; 19962306a36Sopenharmony_ci clocks = <&mcucfg CLK_MCU_BUS_SEL>, 20062306a36Sopenharmony_ci <&apmixedsys CLK_APMIXED_MAINPLL>; 20162306a36Sopenharmony_ci clock-names = "cpu", "intermediate", "armpll"; 20262306a36Sopenharmony_ci operating-points-v2 = <&cluster0_opp>; 20362306a36Sopenharmony_ci }; 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci idle-states { 20662306a36Sopenharmony_ci entry-method = "psci"; 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci CPU_MCDI: cpu-mcdi { 20962306a36Sopenharmony_ci compatible = "arm,idle-state"; 21062306a36Sopenharmony_ci local-timer-stop; 21162306a36Sopenharmony_ci arm,psci-suspend-param = <0x00010001>; 21262306a36Sopenharmony_ci entry-latency-us = <300>; 21362306a36Sopenharmony_ci exit-latency-us = <200>; 21462306a36Sopenharmony_ci min-residency-us = <1000>; 21562306a36Sopenharmony_ci }; 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ci CLUSTER_MCDI: cluster-mcdi { 21862306a36Sopenharmony_ci compatible = "arm,idle-state"; 21962306a36Sopenharmony_ci local-timer-stop; 22062306a36Sopenharmony_ci arm,psci-suspend-param = <0x01010001>; 22162306a36Sopenharmony_ci entry-latency-us = <350>; 22262306a36Sopenharmony_ci exit-latency-us = <250>; 22362306a36Sopenharmony_ci min-residency-us = <1200>; 22462306a36Sopenharmony_ci }; 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci CLUSTER_DPIDLE: cluster-dpidle { 22762306a36Sopenharmony_ci compatible = "arm,idle-state"; 22862306a36Sopenharmony_ci local-timer-stop; 22962306a36Sopenharmony_ci arm,psci-suspend-param = <0x01010004>; 23062306a36Sopenharmony_ci entry-latency-us = <300>; 23162306a36Sopenharmony_ci exit-latency-us = <800>; 23262306a36Sopenharmony_ci min-residency-us = <3300>; 23362306a36Sopenharmony_ci }; 23462306a36Sopenharmony_ci }; 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci l2: l2-cache { 23762306a36Sopenharmony_ci compatible = "cache"; 23862306a36Sopenharmony_ci cache-level = <2>; 23962306a36Sopenharmony_ci cache-size = <0x80000>; 24062306a36Sopenharmony_ci cache-line-size = <64>; 24162306a36Sopenharmony_ci cache-sets = <512>; 24262306a36Sopenharmony_ci cache-unified; 24362306a36Sopenharmony_ci }; 24462306a36Sopenharmony_ci }; 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_ci clk26m: oscillator { 24762306a36Sopenharmony_ci compatible = "fixed-clock"; 24862306a36Sopenharmony_ci #clock-cells = <0>; 24962306a36Sopenharmony_ci clock-frequency = <26000000>; 25062306a36Sopenharmony_ci clock-output-names = "clk26m"; 25162306a36Sopenharmony_ci }; 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci psci { 25462306a36Sopenharmony_ci compatible = "arm,psci-1.0"; 25562306a36Sopenharmony_ci method = "smc"; 25662306a36Sopenharmony_ci }; 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci soc { 25962306a36Sopenharmony_ci #address-cells = <2>; 26062306a36Sopenharmony_ci #size-cells = <2>; 26162306a36Sopenharmony_ci compatible = "simple-bus"; 26262306a36Sopenharmony_ci ranges; 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ci gic: interrupt-controller@c000000 { 26562306a36Sopenharmony_ci compatible = "arm,gic-v3"; 26662306a36Sopenharmony_ci #interrupt-cells = <3>; 26762306a36Sopenharmony_ci interrupt-parent = <&gic>; 26862306a36Sopenharmony_ci interrupt-controller; 26962306a36Sopenharmony_ci reg = <0 0x0c000000 0 0x10000>, /* GICD */ 27062306a36Sopenharmony_ci <0 0x0c080000 0 0x80000>, /* GICR */ 27162306a36Sopenharmony_ci <0 0x0c400000 0 0x2000>, /* GICC */ 27262306a36Sopenharmony_ci <0 0x0c410000 0 0x1000>, /* GICH */ 27362306a36Sopenharmony_ci <0 0x0c420000 0 0x2000>; /* GICV */ 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ci interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 27662306a36Sopenharmony_ci }; 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci topckgen: syscon@10000000 { 27962306a36Sopenharmony_ci compatible = "mediatek,mt8365-topckgen", "syscon"; 28062306a36Sopenharmony_ci reg = <0 0x10000000 0 0x1000>; 28162306a36Sopenharmony_ci #clock-cells = <1>; 28262306a36Sopenharmony_ci }; 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ci infracfg: syscon@10001000 { 28562306a36Sopenharmony_ci compatible = "mediatek,mt8365-infracfg", "syscon"; 28662306a36Sopenharmony_ci reg = <0 0x10001000 0 0x1000>; 28762306a36Sopenharmony_ci #clock-cells = <1>; 28862306a36Sopenharmony_ci }; 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ci pericfg: syscon@10003000 { 29162306a36Sopenharmony_ci compatible = "mediatek,mt8365-pericfg", "syscon"; 29262306a36Sopenharmony_ci reg = <0 0x10003000 0 0x1000>; 29362306a36Sopenharmony_ci #clock-cells = <1>; 29462306a36Sopenharmony_ci }; 29562306a36Sopenharmony_ci 29662306a36Sopenharmony_ci syscfg_pctl: syscfg-pctl@10005000 { 29762306a36Sopenharmony_ci compatible = "mediatek,mt8365-syscfg", "syscon"; 29862306a36Sopenharmony_ci reg = <0 0x10005000 0 0x1000>; 29962306a36Sopenharmony_ci }; 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ci watchdog: watchdog@10007000 { 30262306a36Sopenharmony_ci compatible = "mediatek,mt8365-wdt", "mediatek,mt6589-wdt"; 30362306a36Sopenharmony_ci reg = <0 0x10007000 0 0x100>; 30462306a36Sopenharmony_ci #reset-cells = <1>; 30562306a36Sopenharmony_ci }; 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ci pio: pinctrl@1000b000 { 30862306a36Sopenharmony_ci compatible = "mediatek,mt8365-pinctrl"; 30962306a36Sopenharmony_ci reg = <0 0x1000b000 0 0x1000>; 31062306a36Sopenharmony_ci mediatek,pctl-regmap = <&syscfg_pctl>; 31162306a36Sopenharmony_ci gpio-controller; 31262306a36Sopenharmony_ci #gpio-cells = <2>; 31362306a36Sopenharmony_ci interrupt-controller; 31462306a36Sopenharmony_ci #interrupt-cells = <2>; 31562306a36Sopenharmony_ci interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>; 31662306a36Sopenharmony_ci }; 31762306a36Sopenharmony_ci 31862306a36Sopenharmony_ci apmixedsys: syscon@1000c000 { 31962306a36Sopenharmony_ci compatible = "mediatek,mt8365-apmixedsys", "syscon"; 32062306a36Sopenharmony_ci reg = <0 0x1000c000 0 0x1000>; 32162306a36Sopenharmony_ci #clock-cells = <1>; 32262306a36Sopenharmony_ci }; 32362306a36Sopenharmony_ci 32462306a36Sopenharmony_ci pwrap: pwrap@1000d000 { 32562306a36Sopenharmony_ci compatible = "mediatek,mt8365-pwrap"; 32662306a36Sopenharmony_ci reg = <0 0x1000d000 0 0x1000>; 32762306a36Sopenharmony_ci reg-names = "pwrap"; 32862306a36Sopenharmony_ci interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 32962306a36Sopenharmony_ci clocks = <&infracfg CLK_IFR_PWRAP_SPI>, 33062306a36Sopenharmony_ci <&infracfg CLK_IFR_PMIC_AP>, 33162306a36Sopenharmony_ci <&infracfg CLK_IFR_PWRAP_SYS>, 33262306a36Sopenharmony_ci <&infracfg CLK_IFR_PWRAP_TMR>; 33362306a36Sopenharmony_ci clock-names = "spi", "wrap", "sys", "tmr"; 33462306a36Sopenharmony_ci }; 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ci keypad: keypad@10010000 { 33762306a36Sopenharmony_ci compatible = "mediatek,mt6779-keypad"; 33862306a36Sopenharmony_ci reg = <0 0x10010000 0 0x1000>; 33962306a36Sopenharmony_ci wakeup-source; 34062306a36Sopenharmony_ci interrupts = <GIC_SPI 124 IRQ_TYPE_EDGE_FALLING>; 34162306a36Sopenharmony_ci clocks = <&clk26m>; 34262306a36Sopenharmony_ci clock-names = "kpd"; 34362306a36Sopenharmony_ci status = "disabled"; 34462306a36Sopenharmony_ci }; 34562306a36Sopenharmony_ci 34662306a36Sopenharmony_ci mcucfg: syscon@10200000 { 34762306a36Sopenharmony_ci compatible = "mediatek,mt8365-mcucfg", "syscon"; 34862306a36Sopenharmony_ci reg = <0 0x10200000 0 0x2000>; 34962306a36Sopenharmony_ci #clock-cells = <1>; 35062306a36Sopenharmony_ci }; 35162306a36Sopenharmony_ci 35262306a36Sopenharmony_ci sysirq: interrupt-controller@10200a80 { 35362306a36Sopenharmony_ci compatible = "mediatek,mt8365-sysirq", "mediatek,mt6577-sysirq"; 35462306a36Sopenharmony_ci interrupt-controller; 35562306a36Sopenharmony_ci #interrupt-cells = <3>; 35662306a36Sopenharmony_ci interrupt-parent = <&gic>; 35762306a36Sopenharmony_ci reg = <0 0x10200a80 0 0x20>; 35862306a36Sopenharmony_ci }; 35962306a36Sopenharmony_ci 36062306a36Sopenharmony_ci infracfg_nao: infracfg@1020e000 { 36162306a36Sopenharmony_ci compatible = "mediatek,mt8365-infracfg", "syscon"; 36262306a36Sopenharmony_ci reg = <0 0x1020e000 0 0x1000>; 36362306a36Sopenharmony_ci #clock-cells = <1>; 36462306a36Sopenharmony_ci }; 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ci rng: rng@1020f000 { 36762306a36Sopenharmony_ci compatible = "mediatek,mt8365-rng", "mediatek,mt7623-rng"; 36862306a36Sopenharmony_ci reg = <0 0x1020f000 0 0x100>; 36962306a36Sopenharmony_ci clocks = <&infracfg CLK_IFR_TRNG>; 37062306a36Sopenharmony_ci clock-names = "rng"; 37162306a36Sopenharmony_ci }; 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ci apdma: dma-controller@11000280 { 37462306a36Sopenharmony_ci compatible = "mediatek,mt8365-uart-dma", "mediatek,mt6577-uart-dma"; 37562306a36Sopenharmony_ci reg = <0 0x11000280 0 0x80>, 37662306a36Sopenharmony_ci <0 0x11000300 0 0x80>, 37762306a36Sopenharmony_ci <0 0x11000380 0 0x80>, 37862306a36Sopenharmony_ci <0 0x11000400 0 0x80>, 37962306a36Sopenharmony_ci <0 0x11000580 0 0x80>, 38062306a36Sopenharmony_ci <0 0x11000600 0 0x80>; 38162306a36Sopenharmony_ci interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>, 38262306a36Sopenharmony_ci <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>, 38362306a36Sopenharmony_ci <GIC_SPI 47 IRQ_TYPE_LEVEL_LOW>, 38462306a36Sopenharmony_ci <GIC_SPI 48 IRQ_TYPE_LEVEL_LOW>, 38562306a36Sopenharmony_ci <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>, 38662306a36Sopenharmony_ci <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>; 38762306a36Sopenharmony_ci dma-requests = <6>; 38862306a36Sopenharmony_ci clocks = <&infracfg CLK_IFR_AP_DMA>; 38962306a36Sopenharmony_ci clock-names = "apdma"; 39062306a36Sopenharmony_ci #dma-cells = <1>; 39162306a36Sopenharmony_ci }; 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ci uart0: serial@11002000 { 39462306a36Sopenharmony_ci compatible = "mediatek,mt8365-uart", "mediatek,mt6577-uart"; 39562306a36Sopenharmony_ci reg = <0 0x11002000 0 0x1000>; 39662306a36Sopenharmony_ci interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_LOW>; 39762306a36Sopenharmony_ci clocks = <&clk26m>, <&infracfg CLK_IFR_UART0>; 39862306a36Sopenharmony_ci clock-names = "baud", "bus"; 39962306a36Sopenharmony_ci dmas = <&apdma 0>, <&apdma 1>; 40062306a36Sopenharmony_ci dma-names = "tx", "rx"; 40162306a36Sopenharmony_ci status = "disabled"; 40262306a36Sopenharmony_ci }; 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ci uart1: serial@11003000 { 40562306a36Sopenharmony_ci compatible = "mediatek,mt8365-uart", "mediatek,mt6577-uart"; 40662306a36Sopenharmony_ci reg = <0 0x11003000 0 0x1000>; 40762306a36Sopenharmony_ci interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_LOW>; 40862306a36Sopenharmony_ci clocks = <&clk26m>, <&infracfg CLK_IFR_UART1>; 40962306a36Sopenharmony_ci clock-names = "baud", "bus"; 41062306a36Sopenharmony_ci dmas = <&apdma 2>, <&apdma 3>; 41162306a36Sopenharmony_ci dma-names = "tx", "rx"; 41262306a36Sopenharmony_ci status = "disabled"; 41362306a36Sopenharmony_ci }; 41462306a36Sopenharmony_ci 41562306a36Sopenharmony_ci uart2: serial@11004000 { 41662306a36Sopenharmony_ci compatible = "mediatek,mt8365-uart", "mediatek,mt6577-uart"; 41762306a36Sopenharmony_ci reg = <0 0x11004000 0 0x1000>; 41862306a36Sopenharmony_ci interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_LOW>; 41962306a36Sopenharmony_ci clocks = <&clk26m>, <&infracfg CLK_IFR_UART2>; 42062306a36Sopenharmony_ci clock-names = "baud", "bus"; 42162306a36Sopenharmony_ci dmas = <&apdma 4>, <&apdma 5>; 42262306a36Sopenharmony_ci dma-names = "tx", "rx"; 42362306a36Sopenharmony_ci status = "disabled"; 42462306a36Sopenharmony_ci }; 42562306a36Sopenharmony_ci 42662306a36Sopenharmony_ci pwm: pwm@11006000 { 42762306a36Sopenharmony_ci compatible = "mediatek,mt8365-pwm"; 42862306a36Sopenharmony_ci reg = <0 0x11006000 0 0x1000>; 42962306a36Sopenharmony_ci #pwm-cells = <2>; 43062306a36Sopenharmony_ci interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_LOW>; 43162306a36Sopenharmony_ci clocks = <&infracfg CLK_IFR_PWM_HCLK>, 43262306a36Sopenharmony_ci <&infracfg CLK_IFR_PWM>, 43362306a36Sopenharmony_ci <&infracfg CLK_IFR_PWM1>, 43462306a36Sopenharmony_ci <&infracfg CLK_IFR_PWM2>, 43562306a36Sopenharmony_ci <&infracfg CLK_IFR_PWM3>; 43662306a36Sopenharmony_ci clock-names = "top", "main", "pwm1", "pwm2", "pwm3"; 43762306a36Sopenharmony_ci }; 43862306a36Sopenharmony_ci 43962306a36Sopenharmony_ci i2c0: i2c@11007000 { 44062306a36Sopenharmony_ci compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c"; 44162306a36Sopenharmony_ci reg = <0 0x11007000 0 0xa0>, <0 0x11000080 0 0x80>; 44262306a36Sopenharmony_ci interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_LOW>; 44362306a36Sopenharmony_ci clock-div = <1>; 44462306a36Sopenharmony_ci clocks = <&infracfg CLK_IFR_I2C0_AXI>, <&infracfg CLK_IFR_AP_DMA>; 44562306a36Sopenharmony_ci clock-names = "main", "dma"; 44662306a36Sopenharmony_ci #address-cells = <1>; 44762306a36Sopenharmony_ci #size-cells = <0>; 44862306a36Sopenharmony_ci status = "disabled"; 44962306a36Sopenharmony_ci }; 45062306a36Sopenharmony_ci 45162306a36Sopenharmony_ci i2c1: i2c@11008000 { 45262306a36Sopenharmony_ci compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c"; 45362306a36Sopenharmony_ci reg = <0 0x11008000 0 0xa0>, <0 0x11000100 0 0x80>; 45462306a36Sopenharmony_ci interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_LOW>; 45562306a36Sopenharmony_ci clock-div = <1>; 45662306a36Sopenharmony_ci clocks = <&infracfg CLK_IFR_I2C1_AXI>, <&infracfg CLK_IFR_AP_DMA>; 45762306a36Sopenharmony_ci clock-names = "main", "dma"; 45862306a36Sopenharmony_ci #address-cells = <1>; 45962306a36Sopenharmony_ci #size-cells = <0>; 46062306a36Sopenharmony_ci status = "disabled"; 46162306a36Sopenharmony_ci }; 46262306a36Sopenharmony_ci 46362306a36Sopenharmony_ci i2c2: i2c@11009000 { 46462306a36Sopenharmony_ci compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c"; 46562306a36Sopenharmony_ci reg = <0 0x11009000 0 0xa0>, <0 0x11000180 0 0x80>; 46662306a36Sopenharmony_ci interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_LOW>; 46762306a36Sopenharmony_ci clock-div = <1>; 46862306a36Sopenharmony_ci clocks = <&infracfg CLK_IFR_I2C2_AXI>, <&infracfg CLK_IFR_AP_DMA>; 46962306a36Sopenharmony_ci clock-names = "main", "dma"; 47062306a36Sopenharmony_ci #address-cells = <1>; 47162306a36Sopenharmony_ci #size-cells = <0>; 47262306a36Sopenharmony_ci status = "disabled"; 47362306a36Sopenharmony_ci }; 47462306a36Sopenharmony_ci 47562306a36Sopenharmony_ci spi: spi@1100a000 { 47662306a36Sopenharmony_ci compatible = "mediatek,mt8365-spi", "mediatek,mt7622-spi"; 47762306a36Sopenharmony_ci reg = <0 0x1100a000 0 0x100>; 47862306a36Sopenharmony_ci #address-cells = <1>; 47962306a36Sopenharmony_ci #size-cells = <0>; 48062306a36Sopenharmony_ci interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_LOW>; 48162306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>, 48262306a36Sopenharmony_ci <&topckgen CLK_TOP_SPI_SEL>, 48362306a36Sopenharmony_ci <&infracfg CLK_IFR_SPI0>; 48462306a36Sopenharmony_ci clock-names = "parent-clk", "sel-clk", "spi-clk"; 48562306a36Sopenharmony_ci status = "disabled"; 48662306a36Sopenharmony_ci }; 48762306a36Sopenharmony_ci 48862306a36Sopenharmony_ci i2c3: i2c@1100f000 { 48962306a36Sopenharmony_ci compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c"; 49062306a36Sopenharmony_ci reg = <0 0x1100f000 0 0xa0>, <0 0x11000200 0 0x80>; 49162306a36Sopenharmony_ci interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>; 49262306a36Sopenharmony_ci clock-div = <1>; 49362306a36Sopenharmony_ci clocks = <&infracfg CLK_IFR_I2C3_AXI>, <&infracfg CLK_IFR_AP_DMA>; 49462306a36Sopenharmony_ci clock-names = "main", "dma"; 49562306a36Sopenharmony_ci #address-cells = <1>; 49662306a36Sopenharmony_ci #size-cells = <0>; 49762306a36Sopenharmony_ci status = "disabled"; 49862306a36Sopenharmony_ci }; 49962306a36Sopenharmony_ci 50062306a36Sopenharmony_ci ssusb: usb@11201000 { 50162306a36Sopenharmony_ci compatible = "mediatek,mt8365-mtu3", "mediatek,mtu3"; 50262306a36Sopenharmony_ci reg = <0 0x11201000 0 0x2e00>, <0 0x11203e00 0 0x0100>; 50362306a36Sopenharmony_ci reg-names = "mac", "ippc"; 50462306a36Sopenharmony_ci interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_LOW>; 50562306a36Sopenharmony_ci phys = <&u2port0 PHY_TYPE_USB2>, 50662306a36Sopenharmony_ci <&u2port1 PHY_TYPE_USB2>; 50762306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>, 50862306a36Sopenharmony_ci <&infracfg CLK_IFR_SSUSB_REF>, 50962306a36Sopenharmony_ci <&infracfg CLK_IFR_SSUSB_SYS>, 51062306a36Sopenharmony_ci <&infracfg CLK_IFR_ICUSB>; 51162306a36Sopenharmony_ci clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck"; 51262306a36Sopenharmony_ci #address-cells = <2>; 51362306a36Sopenharmony_ci #size-cells = <2>; 51462306a36Sopenharmony_ci ranges; 51562306a36Sopenharmony_ci status = "disabled"; 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_ci usb_host: usb@11200000 { 51862306a36Sopenharmony_ci compatible = "mediatek,mt8365-xhci", "mediatek,mtk-xhci"; 51962306a36Sopenharmony_ci reg = <0 0x11200000 0 0x1000>; 52062306a36Sopenharmony_ci reg-names = "mac"; 52162306a36Sopenharmony_ci interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_LOW>; 52262306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_SSUSB_TOP_CK_EN>, 52362306a36Sopenharmony_ci <&infracfg CLK_IFR_SSUSB_REF>, 52462306a36Sopenharmony_ci <&infracfg CLK_IFR_SSUSB_SYS>, 52562306a36Sopenharmony_ci <&infracfg CLK_IFR_ICUSB>, 52662306a36Sopenharmony_ci <&infracfg CLK_IFR_SSUSB_XHCI>; 52762306a36Sopenharmony_ci clock-names = "sys_ck", "ref_ck", "mcu_ck", 52862306a36Sopenharmony_ci "dma_ck", "xhci_ck"; 52962306a36Sopenharmony_ci status = "disabled"; 53062306a36Sopenharmony_ci }; 53162306a36Sopenharmony_ci }; 53262306a36Sopenharmony_ci 53362306a36Sopenharmony_ci mmc0: mmc@11230000 { 53462306a36Sopenharmony_ci compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc"; 53562306a36Sopenharmony_ci reg = <0 0x11230000 0 0x1000>, 53662306a36Sopenharmony_ci <0 0x11cd0000 0 0x1000>; 53762306a36Sopenharmony_ci interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_LOW>; 53862306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>, 53962306a36Sopenharmony_ci <&infracfg CLK_IFR_MSDC0_HCLK>, 54062306a36Sopenharmony_ci <&infracfg CLK_IFR_MSDC0_SRC>; 54162306a36Sopenharmony_ci clock-names = "source", "hclk", "source_cg"; 54262306a36Sopenharmony_ci status = "disabled"; 54362306a36Sopenharmony_ci }; 54462306a36Sopenharmony_ci 54562306a36Sopenharmony_ci mmc1: mmc@11240000 { 54662306a36Sopenharmony_ci compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc"; 54762306a36Sopenharmony_ci reg = <0 0x11240000 0 0x1000>, 54862306a36Sopenharmony_ci <0 0x11c90000 0 0x1000>; 54962306a36Sopenharmony_ci interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_LOW>; 55062306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>, 55162306a36Sopenharmony_ci <&infracfg CLK_IFR_MSDC1_HCLK>, 55262306a36Sopenharmony_ci <&infracfg CLK_IFR_MSDC1_SRC>; 55362306a36Sopenharmony_ci clock-names = "source", "hclk", "source_cg"; 55462306a36Sopenharmony_ci status = "disabled"; 55562306a36Sopenharmony_ci }; 55662306a36Sopenharmony_ci 55762306a36Sopenharmony_ci mmc2: mmc@11250000 { 55862306a36Sopenharmony_ci compatible = "mediatek,mt8365-mmc", "mediatek,mt8183-mmc"; 55962306a36Sopenharmony_ci reg = <0 0x11250000 0 0x1000>, 56062306a36Sopenharmony_ci <0 0x11c60000 0 0x1000>; 56162306a36Sopenharmony_ci interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_LOW>; 56262306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_MSDC50_2_SEL>, 56362306a36Sopenharmony_ci <&infracfg CLK_IFR_MSDC2_HCLK>, 56462306a36Sopenharmony_ci <&infracfg CLK_IFR_MSDC2_SRC>, 56562306a36Sopenharmony_ci <&infracfg CLK_IFR_MSDC2_BK>, 56662306a36Sopenharmony_ci <&infracfg CLK_IFR_AP_MSDC0>; 56762306a36Sopenharmony_ci clock-names = "source", "hclk", "source_cg", 56862306a36Sopenharmony_ci "bus_clk", "sys_cg"; 56962306a36Sopenharmony_ci status = "disabled"; 57062306a36Sopenharmony_ci }; 57162306a36Sopenharmony_ci 57262306a36Sopenharmony_ci ethernet: ethernet@112a0000 { 57362306a36Sopenharmony_ci compatible = "mediatek,mt8365-eth"; 57462306a36Sopenharmony_ci reg = <0 0x112a0000 0 0x1000>; 57562306a36Sopenharmony_ci mediatek,pericfg = <&infracfg>; 57662306a36Sopenharmony_ci interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 57762306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_ETH_SEL>, 57862306a36Sopenharmony_ci <&infracfg CLK_IFR_NIC_AXI>, 57962306a36Sopenharmony_ci <&infracfg CLK_IFR_NIC_SLV_AXI>; 58062306a36Sopenharmony_ci clock-names = "core", "reg", "trans"; 58162306a36Sopenharmony_ci status = "disabled"; 58262306a36Sopenharmony_ci }; 58362306a36Sopenharmony_ci 58462306a36Sopenharmony_ci u3phy: t-phy@11cc0000 { 58562306a36Sopenharmony_ci compatible = "mediatek,mt8365-tphy", "mediatek,generic-tphy-v2"; 58662306a36Sopenharmony_ci #address-cells = <1>; 58762306a36Sopenharmony_ci #size-cells = <1>; 58862306a36Sopenharmony_ci ranges = <0 0 0x11cc0000 0x9000>; 58962306a36Sopenharmony_ci 59062306a36Sopenharmony_ci u2port0: usb-phy@0 { 59162306a36Sopenharmony_ci reg = <0x0 0x400>; 59262306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>, 59362306a36Sopenharmony_ci <&topckgen CLK_TOP_USB20_48M_EN>; 59462306a36Sopenharmony_ci clock-names = "ref", "da_ref"; 59562306a36Sopenharmony_ci #phy-cells = <1>; 59662306a36Sopenharmony_ci }; 59762306a36Sopenharmony_ci 59862306a36Sopenharmony_ci u2port1: usb-phy@1000 { 59962306a36Sopenharmony_ci reg = <0x1000 0x400>; 60062306a36Sopenharmony_ci clocks = <&topckgen CLK_TOP_SSUSB_PHY_CK_EN>, 60162306a36Sopenharmony_ci <&topckgen CLK_TOP_USB20_48M_EN>; 60262306a36Sopenharmony_ci clock-names = "ref", "da_ref"; 60362306a36Sopenharmony_ci #phy-cells = <1>; 60462306a36Sopenharmony_ci }; 60562306a36Sopenharmony_ci }; 60662306a36Sopenharmony_ci }; 60762306a36Sopenharmony_ci 60862306a36Sopenharmony_ci timer { 60962306a36Sopenharmony_ci compatible = "arm,armv8-timer"; 61062306a36Sopenharmony_ci interrupt-parent = <&gic>; 61162306a36Sopenharmony_ci interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, 61262306a36Sopenharmony_ci <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, 61362306a36Sopenharmony_ci <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, 61462306a36Sopenharmony_ci <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; 61562306a36Sopenharmony_ci }; 61662306a36Sopenharmony_ci 61762306a36Sopenharmony_ci system_clk: dummy13m { 61862306a36Sopenharmony_ci compatible = "fixed-clock"; 61962306a36Sopenharmony_ci clock-frequency = <13000000>; 62062306a36Sopenharmony_ci #clock-cells = <0>; 62162306a36Sopenharmony_ci }; 62262306a36Sopenharmony_ci 62362306a36Sopenharmony_ci systimer: timer@10017000 { 62462306a36Sopenharmony_ci compatible = "mediatek,mt8365-systimer", "mediatek,mt6765-timer"; 62562306a36Sopenharmony_ci reg = <0 0x10017000 0 0x100>; 62662306a36Sopenharmony_ci interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 62762306a36Sopenharmony_ci clocks = <&system_clk>; 62862306a36Sopenharmony_ci clock-names = "clk13m"; 62962306a36Sopenharmony_ci }; 63062306a36Sopenharmony_ci}; 631