blob: 9747e1c68cb644a96a28b73b4ae5cccf91e55585 [file]
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
* Copyright (c) 2021 MediaTek Inc.
*/
/dts-v1/;
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/memory/mt8696-larb-port.h>
#include <dt-bindings/phy/phy.h>
#include <dt-bindings/clock/mt8696-clk.h>
#include <dt-bindings/power/mt8696-power.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/gce/mt8696-gce.h>
#include <dt-bindings/pinctrl/mt8696-pinfunc.h>
#include <dt-bindings/soc/mediatek,boot-mode.h>
#include <dt-bindings/thermal/thermal.h>
/ {
model = "MT8696";
compatible = "mediatek,mt8696";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
aliases {
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
i2c4 = &i2c4;
i2c5 = &i2c5;
mmc0 = &mmc0;
};
cache-parity {
compatible = "mediatek,mt6873-cache-parity",
"mediatek,mt8696-cache-parity";
arm_dsu_ecc_hwirq = <32>;
interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
};
chosen {
bootargs = "console=tty0 earlycon=uart8250,mmio32,0x11002400 8250.nr_uarts=4 \
cma=32M cgroup.memory=nosocket,nokmem";
kaslr-seed = <0 0>;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu0: cpu@000 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0x0000>;
enable-method = "psci";
cpu-idle-states = <&cpuoff &clusteroff &mcusysoff>;
performance-domains = <&performance 0>;
clock-frequency = <1700000000>;
#cooling-cells = <2>;
};
cpu1: cpu@001 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0x0100>;
enable-method = "psci";
cpu-idle-states = <&cpuoff &clusteroff &mcusysoff>;
performance-domains = <&performance 0>;
clock-frequency = <1700000000>;
#cooling-cells = <2>;
};
cpu2: cpu@002 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0x0200>;
enable-method = "psci";
cpu-idle-states = <&cpuoff &clusteroff &mcusysoff>;
performance-domains = <&performance 0>;
clock-frequency = <1700000000>;
#cooling-cells = <2>;
};
cpu3: cpu@003 {
device_type = "cpu";
compatible = "arm,cortex-a55";
reg = <0x0300>;
enable-method = "psci";
cpu-idle-states = <&cpuoff &clusteroff &mcusysoff>;
performance-domains = <&performance 0>;
clock-frequency = <1700000000>;
#cooling-cells = <2>;
};
cpu-map {
cluster0 {
core0 {
cpu = <&cpu0>;
};
core1 {
cpu = <&cpu1>;
};
core2 {
cpu = <&cpu2>;
};
core3 {
cpu = <&cpu3>;
};
};
};
idle-states {
entry-method = "psci";
cpuoff: cpuoff {
compatible = "arm,idle-state";
local-timer-stop;
arm,psci-suspend-param = <0x00010001>;
entry-latency-us = <100>;
exit-latency-us = <250>;
min-residency-us = <1600>;
};
clusteroff: clusteroff {
compatible = "arm,idle-state";
local-timer-stop;
arm,psci-suspend-param = <0x01010001>;
entry-latency-us = <100>;
exit-latency-us = <350>;
min-residency-us = <2100>;
};
mcusysoff: mcusysoff {
compatible = "arm,idle-state";
local-timer-stop;
arm,psci-suspend-param = <0x01010002>;
entry-latency-us = <300>;
exit-latency-us = <1200>;
min-residency-us = <2600>;
};
};
};
clocks {
clk_null: clk_null {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <0>;
};
clk26m: clk26m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <26000000>;
clock-output-names = "clk26m";
};
clk13m: clk13m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <13000000>;
};
clk12m: clk12m {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <12000000>;
};
clk32k: clk32k {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <32768>;
clock-output-names = "clk32k";
};
clki2sin_mclk_i: oscillator@0 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <49152000>;
clock-output-names = "i2si0_mck_i";
};
clksplin_mclk_i: oscillator@1 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <49152000>;
clock-output-names = "splin_mck_i";
};
};
firmware: firmware {
android: android {
compatible = "android,firmware";
fstab: fstab {
compatible = "android,fstab";
};
};
};
memory@40000000 {
device_type = "memory";
reg = <0 0x40000000 0 0x20000000>;
};
pmu-a55 {
compatible = "arm,cortex-a55-pmu";
interrupt-parent = <&gic>;
interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
};
pmu-dsu-0 {
compatible = "arm,dsu-pmu";
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
};
psci {
compatible = "arm,psci-1.0";
method = "smc";
};
reserved_memory: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
atf_reserved_mem: atf-reserved-memory@bc000000 {
compatible = "mediatek,mt8696-atf-reserved-memory";
no-map;
reg = <0 0xbc000000 0 0x40000>;
};
gpt_rtc_reserved_mem: gpt-rtc-reserved-memory@a2000000 {
compatible = "mediatek,mt8696-gpt-rtc-reserved-memory";
no-map;
reg = <0 0xa2000000 0 0x20>;
};
secure_carveout: secure-carveout {
compatible = "shared-dma-pool";
reusable;
reg = <0 0x60000000 0 0x1a800000>;
};
};
timer: timer {
compatible = "arm,armv8-timer";
interrupt-parent = <&gic>;
interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>,
<GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH>,
<GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>,
<GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
};
drm-subsystem {
compatible = "mediatek,mt8696-disp-drm";
};
soc {
#address-cells = <2>;
#size-cells = <2>;
compatible = "simple-bus";
ranges;
cpuhvfs: cpuhvfs@105c00 {
compatible = "mediatek,cpufreq-hybrid";
reg = <0 0x00105c00 0 0x400>,
<0 0x0010bc00 0 0x1300>;
reg-names = "USRAM", "CSRAM";
cslog-range = <0x0578>, <0x0d48>;
tbl-off = <4>, <76>;
/* pll mcucfg */
mcucfg-ver = <0>;
apmixedsys = <&apmixedsys>;
clk-div-base = <&mcucfg>;
pll-con = <0x114>, <0x2a4>;
clk-div = <0x2a0>, <0x2e0>;
};
performance: performance-controller@10bc10 {
compatible = "mediatek,cpufreq-hw";
reg = <0 0x0010bc10 0 0x120>;
#performance-domain-cells = <1>;
};
scp: scp@338000 {
compatible = "mediatek,mt8696-scp";
reg = <0 0x280000 0 0x7f000>, /* tcm */
<0 0x338000 0 0x1000>, /* cfg */
<0 0x2ff000 0 0x100>, /* mbox0 base */
<0 0x33a000 0 0x4>, /* mbox0 set */
<0 0x33a00c 0 0x4>, /* mbox0 clr */
<0 0x2ff100 0 0x100>, /* mbox1 base */
<0 0x33b000 0 0x4>, /* mbox1 set */
<0 0x33b00c 0 0x4>, /* mbox1 clr */
<0 0x2ff200 0 0x100>, /* mbox2 base */
<0 0x33c000 0 0x4>, /* mbox2 set */
<0 0x33c00c 0 0x4>, /* mbox2 clr */
<0 0x2ff300 0 0x100>, /* mbox3 base */
<0 0x33d000 0 0x4>, /* mbox3 set */
<0 0x33d00c 0 0x4>, /* mbox3 clr */
<0 0x2ff400 0 0x100>, /* mbox4 base */
<0 0x33e000 0 0x4>, /* mbox4 set */
<0 0x33e00c 0 0x4>; /* mbox4 clr */
reg-names = "sram",
"cfg",
"mbox0_base",
"mbox0_set",
"mbox0_clr",
"mbox1_base",
"mbox1_set",
"mbox1_clr",
"mbox2_base",
"mbox2_set",
"mbox2_clr",
"mbox3_base",
"mbox3_set",
"mbox3_clr",
"mbox4_base",
"mbox4_set",
"mbox4_clr";
interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "wdt",
"mbox0",
"mbox1",
"mbox2",
"mbox3",
"mbox4";
clocks = <&topckgen CLK_TOP_SCP_SEL>;
clock-names = "main";
status = "okay";
};
soc_data: soc_data@8000000 {
compatible = "mediatek,mt8696-efuse",
"mediatek,efuse";
reg = <0 0x08000000 0 0x0010>;
#address-cells = <1>;
#size-cells = <1>;
};
gic: interrupt-controller@c000000 {
compatible = "arm,gic-v3";
#interrupt-cells = <3>;
interrupt-parent = <&gic>;
#redistributor-regions = <1>;
interrupt-controller;
reg = <0 0x0c000000 0 0x40000>, /* GICD */
<0 0x0c040000 0 0x200000>; /* GICR */
interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
};
mcucfg: syscon@c53a000 {
compatible = "mediatek,mt8696-mcucfg", "syscon";
reg = <0 0x0c53a000 0 0x1000>;
#clock-cells = <1>;
};
mcupm: mcupm@c540000 {
compatible = "mediatek,mcupm";
reg = <0 0x0c540000 0 0x22000>,
<0 0x0c55fb00 0 0xa0>,
<0 0x0c562004 0 0x4>,
<0 0x0c562018 0 0x4>,
<0 0x0c562000 0 0x4>,
<0 0x0c562010 0 0x4>,
<0 0x0c55fba0 0 0xa0>,
<0 0x0c562004 0 0x4>,
<0 0x0c562018 0 0x4>,
<0 0x0c562000 0 0x4>,
<0 0x0c562010 0 0x4>,
<0 0x0c55fc40 0 0xa0>,
<0 0x0c562004 0 0x4>,
<0 0x0c562018 0 0x4>,
<0 0x0c562000 0 0x4>,
<0 0x0c562010 0 0x4>,
<0 0x0c55fce0 0 0xa0>,
<0 0x0c562004 0 0x4>,
<0 0x0c562018 0 0x4>,
<0 0x0c562000 0 0x4>,
<0 0x0c562010 0 0x4>,
<0 0x0c55fd80 0 0xa0>,
<0 0x0c562004 0 0x4>,
<0 0x0c562018 0 0x4>,
<0 0x0c562000 0 0x4>,
<0 0x0c562010 0 0x4>,
<0 0x0c55fe20 0 0xa0>,
<0 0x0c562004 0 0x4>,
<0 0x0c562018 0 0x4>,
<0 0x0c562000 0 0x4>,
<0 0x0c562010 0 0x4>,
<0 0x0c55fec0 0 0xa0>,
<0 0x0c562004 0 0x4>,
<0 0x0c562018 0 0x4>,
<0 0x0c562000 0 0x4>,
<0 0x0c562010 0 0x4>,
<0 0x0c55ff60 0 0xa0>,
<0 0x0c562004 0 0x4>,
<0 0x0c562018 0 0x4>,
<0 0x0c562000 0 0x4>,
<0 0x0c562010 0 0x4>;
reg-names = "mcupm_base",
"mbox0_base",
"mbox0_set",
"mbox0_clr",
"mbox0_send",
"mbox0_recv",
"mbox1_base",
"mbox1_set",
"mbox1_clr",
"mbox1_send",
"mbox1_recv",
"mbox2_base",
"mbox2_set",
"mbox2_clr",
"mbox2_send",
"mbox2_recv",
"mbox3_base",
"mbox3_set",
"mbox3_clr",
"mbox3_send",
"mbox3_recv",
"mbox4_base",
"mbox4_set",
"mbox4_clr",
"mbox4_send",
"mbox4_recv",
"mbox5_base",
"mbox5_set",
"mbox5_clr",
"mbox5_send",
"mbox5_recv",
"mbox6_base",
"mbox6_set",
"mbox6_clr",
"mbox6_send",
"mbox6_recv",
"mbox7_base",
"mbox7_set",
"mbox7_clr",
"mbox7_send",
"mbox7_recv";
interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mbox0",
"mbox1",
"mbox2",
"mbox3",
"mbox4",
"mbox5",
"mbox6",
"mbox7";
};
topckgen: syscon@10000000 {
compatible = "mediatek,mt8696-topckgen", "syscon";
reg = <0 0x10000000 0 0x1000>;
#clock-cells = <1>;
};
infrasys: syscon@10001000 {
compatible = "mediatek,mt8696-infracfg", "syscon";
reg = <0 0x10001000 0 0x1000>;
#clock-cells = <1>;
};
perisys: syscon@10003000 {
compatible = "mediatek,mt8696-pericfg", "syscon";
reg = <0 0x10003000 0 0x1000>;
#clock-cells = <1>;
};
syscfg_pctl_a: syscfg_pctl_a@10005000 {
compatible = "mediatek,pctl-a-syscfg", "syscon";
reg = <0 0x10005000 0 0x1000>;
};
scpsys: syscon@10006000 {
compatible = "mediatek,mt8696-scpsys", "syscon";
#power-domain-cells = <1>;
reg = <0 0x10006000 0 0x1000>;
clocks = <&topckgen CLK_TOP_MMSEL>,
<&topckgen CLK_TOP_VDEC_SEL>,
<&topckgen CLK_TOP_VENC_SEL>,
<&topckgen CLK_TOP_VDEC_SEL>,
<&topckgen CLK_TOP_VENC_SEL>,
<&topckgen CLK_TOP_MMSEL>,
<&topckgen CLK_TOP_HDMI_APB_SEL>,
<&topckgen CLK_TOP_RV33_SEL>,
<&topckgen CLK_TOP_MEMSEL>,
<&infrasys CLK_INFRA_IPSYS>,
<&topckgen CLK_TOP_AUDIO_26MSEL>,
<&topckgen CLK_TOP_ETH_125MSEL>;
clock-names = "mm", "vdec-0",
"venc-0", "mm-0", "mm-1",
"osd-0", "hdmiapb",
"mmcu-0", "mmcu-1", "mmcu-2",
"audio", "ether";
infracfg = <&infrasys>;
};
dvfsrc: dvfsrc@10006000 {
compatible = "mediatek,mt8696-dvfsrc";
reg = <0 0x10006000 0 0x1000>;
reg-names = "dvfsrc";
status = "okay";
dvfsrc_vcore: dvfsrc-vcore {
regulator-name = "dvfsrc-vcore";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <800000>;
regulator-always-on;
};
dvfsrc-helper {
compatible = "mediatek,dvfsrc-helper";
};
};
toprgu: toprgu@10007000 {
compatible = "mediatek,mt6589-wdt",
"mediatek,mt8696-wdt",
"syscon",
"simple-mfd";
reg = <0 0x10007000 0 0x1000>;
registered-in-atf = <1>;
#reset-cells = <1>;
reboot-mode {
compatible = "syscon-reboot-mode";
offset = <0x24>;
mask = <0xf>;
mode-charger = <BOOT_CHARGER>;
mode-recovery = <BOOT_RECOVERY>;
mode-bootloader = <BOOT_BOOTLOADER>;
mode-dm-verity-dev-corrupt = <BOOT_DM_VERITY>;
mode-kpoc = <BOOT_KPOC>;
mode-ddr-reserve = <BOOT_DDR_RSVD>;
mode-meta = <BOOT_META>;
mode-rpmbpk = <BOOT_RPMBPK>;
mode-quiescent = <BOOT_QUIESCENT>;
mode-unattended,ota_update,quiescent = <BOOT_QUIESCENT>;
mode-userrequested,quiescent = <BOOT_QUIESCENT>;
};
};
pio: pinctrl@10005000 {
compatible = "mediatek,mt8696-pinctrl";
reg = <0 0x10005000 0 0x1000>,
<0 0x11C30000 0 0x0200>,
<0 0x11D00000 0 0x0200>,
<0 0x11D20000 0 0x0200>,
<0 0x11E10000 0 0x0200>,
<0 0x11F40000 0 0x0200>,
<0 0x1000b000 0 0x1000>;
reg-names = "gpio_base", "iocfg_lb_base", "iocfg_lt_base",
"iocfg_tm_base", "iocfg_rm_base", "iocfg_tr_base",
"eint";
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&pio 0 0 157>;
interrupt-controller;
interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
#interrupt-cells = <4>;
mediatek,eint = <&eint>;
};
gptrtc: gptrtc@10008000 {
compatible = "mediatek,gpt-rtc";
reg = <0 0x10008000 0 0x1000>,
<0 0xa2000000 0 0x20>; /* save date for reboot */
interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
gpt-index = <5>;
};
eint: apirq@1000b000 {
compatible = "mediatek,mtk-eint";
reg = <0 0x1000b000 0 0x1000>;
reg-name = "eint";
interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
mediatek,total-pin-number = <232>;
};
apmixedsys: syscon@1000c000 {
compatible = "mediatek,mt8696-apmixedsys", "syscon";
reg = <0 0x1000c000 0 0x1000>;
#clock-cells = <1>;
};
fhctl@1000ce00 {
compatible = "mediatek,fhctl";
reg = <0 0x1000ce00 0 0xD4>;
};
irrx: irrx@1000d000 {
compatible = "mediatek,mt8696-irrx";
reg = <0 0x1000d000 0 0x1000>;
interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
keypad: keypad@10010000 {
compatible = "mediatek,kp";
reg = <0 0x10010000 0 0x1000>;
interrupts = <GIC_SPI 67 IRQ_TYPE_EDGE_RISING>;
clocks = <&infrasys CLK_INFRA_KP>;
clock-names = "kpd";
};
sys_timer@10017000 {
compatible = "mediatek,mt6765-timer",
"mediatek,mt8696-timer";
reg = <0 0x10017000 0 0x1000>;
reg-names = "sys_timer_base";
interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk13m>;
};
i2c4: i2c@10018000 {
compatible = "mediatek,mt8696-i2c";
reg = <0 0x10018000 0 0x90>,
<0 0x11000280 0 0x80>;
interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
clock-div = <1>;
clocks = <&infrasys CLK_INFRA_IIC_AO>,
<&perisys CLK_PERI_AP_DMA>;
clock-names = "main", "dma";
status = "disabled";
};
dramc: dramc@10104000 {
compatible = "mediatek,common-dramc";
reg = <0 0x10104000 0 0x2000>, /* DRAMC AO CHA */
<0 0x10114000 0 0x2000>, /* DRAMC AO CHB */
<0 0x10106000 0 0x1000>, /* DRAMC NAO CHA */
<0 0x10116000 0 0x1000>, /* DRAMC NAO CHB */
<0 0x10100000 0 0x2000>, /* DDRPHY AO CHA */
<0 0x10110000 0 0x2000>, /* DDRPHY AO CHB */
<0 0x10108000 0 0x1000>, /* DDRPHY NAO CHA */
<0 0x10118000 0 0x1000>, /* DDRPHY NAO CHB */
<0 0x10006000 0 0x1000>; /* SLEEP BASE */
mr4_version = <1>;
mr4_rg = <0x0090 0x0000ffff 0>;
fmeter_version = <1>;
fmeter_sub_version = <1>;
crystal_freq = <52>;
pll_id = <0x0510 0x80000000 31>;
shu_lv = <0x00e4 0x00000006 1>;
shu_of = <0x500>;
sdmpcw = <0x0d9c 0xffff0000 16>,
<0x0d94 0xffff0000 16>;
prediv = <0x0da8 0x000c0000 18>,
<0x0da0 0x000c0000 18>;
posdiv = <0x0da8 0x00000007 0>,
<0x0da0 0x00000007 0>;
ckdiv4 = <0x0d18 0x08000000 27>,
<0x0d18 0x08000000 27>;
pll_md = <0x0d80 0x00000010 4>, /* semi open */
<0x0d80 0x00000010 4>;
cldiv2 = <0x0d90 0x000000000 0>, /* dummy */
<0x0d90 0x000000000 0>;
fbksel = <0x0d90 0x000000000 0>, /* dummy */
<0x0d90 0x000000000 0>;
dqopen = <0x0d90 0x000000000 0>, /* dummy */
<0x0d90 0x000000000 0>;
};
emichn: emichn@10107000 {
compatible = "mediatek,common-emichn";
reg = <0 0x10107000 0 0x1000>,
<0 0x10117000 0 0x1000>;
};
emicen: emicen@10203000 {
compatible = "mediatek,common-emicen";
reg = <0 0x10203000 0 0x1000>;
mediatek,emi-reg = <&emichn>;
};
iommu: m4u@10205000 {
compatible = "mediatek,mt8696-m4u";
reg = <0 0x10205000 0 0x2000>;
mediatek,larbs = <&larb0 &larb1 &larb3 &larb4
&larb5 &larb6 &larb7 &larb8>;
interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&infrasys CLK_INFRA_M4U>,
<&perisys CLK_PERI_MM_APB>;
clock-names = "bclk", "apb";
#iommu-cells = <1>;
};
systracker: systracker@10208000 {
compatible = "mediatek,bus_dbg-v2";
reg = <0 0x10208000 0 0x1000>,
<0 0x10001000 0 0x1000>;
mediatek,bus_dbg_con_offset = <0x2fc>;
interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_LOW>;
};
iommu_sec: m4u@1020e000 {
compatible = "mediatek,secure_m4u";
mediatek,main-bank = <&iommu>;
};
ipsys: syscon@10218000 {
compatible = "mediatek,mt8696-nna", "syscon";
reg = <0 0x10218000 0 0x1000>;
#clock-cells = <1>;
};
emimpu@10226000 {
compatible = "mediatek,common-emimpu";
reg = <0 0x10226000 0 0x1000>;
mediatek,emi-reg = <&emicen>;
interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
region-cnt = <32>;
domain-cnt = <16>;
addr-align = <16>;
dram-base = <0 0x40000000>;
dump = <0x1f0 0x1f8 0x1fc>;
clear = <0x160 0xffffffff 16>,
<0x200 0x00000003 16>,
<0x1f0 0x80000000 1>;
clear-md = <0x1fc 0x80000000 1>;
ctrl-intf = <1>;
slverr = <0>;
};
gce_mbox: gce_mbox@10228000 {
compatible = "mediatek,mailbox-gce";
reg = <0 0x10228000 0 0x4000>;
interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
default_tokens =
/bits/ 16 <CMDQ_SYNC_TOKEN_GPR_SET_0>,
/bits/ 16 <CMDQ_SYNC_TOKEN_GPR_SET_1>,
/bits/ 16 <CMDQ_SYNC_TOKEN_GPR_SET_2>,
/bits/ 16 <CMDQ_SYNC_TOKEN_GPR_SET_3>,
/bits/ 16 <CMDQ_SYNC_TOKEN_GPR_SET_4>;
#mbox-cells = <3>;
#gce-event-cells = <1>;
#gce-subsys-cells = <2>;
clocks = <&infrasys CLK_INFRA_GCE>;
clock-names = "gce";
};
ice: ice_debug {
compatible = "mediatek,mt8696-ice_debug",
"mediatek,mt2701-ice_debug";
clocks = <&infrasys CLK_INFRA_DBGCLK>;
clock-names = "ice_dbg";
};
auxadc: adc@11001000 {
compatible = "mediatek,mt8696-auxadc",
"mediatek,mt6765-auxadc";
reg = <0 0x11001000 0 0x1000>;
clocks = <&perisys CLK_PERI_AUXADC>;
clock-names = "main";
#io-channel-cells = <1>;
/* Auxadc efuse calibration */
/* 1. Auxadc cali on/off bit shift */
mediatek,cali-en-bit = <29>;
/* 2. Auxadc cali ge bits shift */
mediatek,cali-ge-bit = <0>;
/* 3. Auxadc cali oe bits shift */
mediatek,cali-oe-bit = <10>;
/* 4. Auxadc cali efuse index */
mediatek,cali-efuse-index = <61>;
status = "disabled";
};
uart0: serial@11002000 {
compatible = "mediatek,mt8696-uart",
"mediatek,mt6577-uart";
reg = <0 0x11002000 0 0x1000>;
interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk26m>, <&perisys CLK_PERI_UART0>;
clock-names = "baud", "bus";
status = "disabled";
};
uart1: serial@11002400 {
compatible = "mediatek,mt8696-uart",
"mediatek,mt6577-uart";
reg = <0 0x11002400 0 0x1000>;
interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk26m>, <&perisys CLK_PERI_UART1>;
clock-names = "baud", "bus";
status = "disabled";
};
pwm1: pwm@10048000 {
compatible = "mediatek,mt8696-pwm_ao";
reg = <0 0x10048000 0 0x1000>;
#pwm-cells = <2>;
clocks = <&topckgen CLK_TOP_PWMINFRA_SEL>,
<&infrasys CLK_INFRA_PWMAO>,
<&infrasys CLK_INFRA_PWM0_AO>,
<&infrasys CLK_INFRA_PWM1_AO>;
clock-names = "top", "main", "pwm1", "pwm2";
status = "disabled";
};
uart2: serial@10049000 {
compatible = "mediatek,mt8696-uart",
"mediatek,mt6577-uart";
reg = <0 0x10049000 0 0x1000>;
interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk26m>, <&infrasys CLK_INFRA_UART_AO>;
clock-names = "baud", "bus";
status = "disabled";
};
pwm0: pwm@11006000 {
compatible = "mediatek,mt8696-pwm";
reg = <0 0x11006000 0 0x1000>;
#pwm-cells = <2>;
clocks = <&topckgen CLK_TOP_PWMINFRA_SEL>,
<&perisys CLK_PERI_PWM>,
<&perisys CLK_PERI_PWM0>,
<&perisys CLK_PERI_PWM1>,
<&perisys CLK_PERI_PWM2>,
<&perisys CLK_PERI_PWM3>,
<&perisys CLK_PERI_PWM4>,
<&perisys CLK_PERI_PWM5>;
clock-names = "top", "main", "pwm1", "pwm2",
"pwm3", "pwm4", "pwm5", "pwm6";
status = "disabled";
};
i2c0: i2c@11007000 {
compatible = "mediatek,mt8696-i2c";
reg = <0 0x11007000 0 0x90>,
<0 0x11000080 0 0x80>;
interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
clock-div = <1>;
clocks = <&perisys CLK_PERI_I2C0>,
<&perisys CLK_PERI_AP_DMA>;
clock-names = "main", "dma";
status = "disabled";
};
i2c1: i2c@11008000 {
compatible = "mediatek,mt8696-i2c";
reg = <0 0x11008000 0 0x90>,
<0 0x11000100 0 0x80>;
interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
clock-div = <1>;
clocks = <&perisys CLK_PERI_I2C0>,
<&perisys CLK_PERI_AP_DMA>;
clock-names = "main", "dma";
status = "disabled";
};
i2c2: i2c@11009000 {
compatible = "mediatek,mt8696-i2c";
reg = <0 0x11009000 0 0x90>,
<0 0x11000180 0 0x80>;
interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
clock-div = <1>;
clocks = <&perisys CLK_PERI_I2C0>,
<&perisys CLK_PERI_AP_DMA>;
clock-names = "main", "dma";
status = "disabled";
};
spi0: spi@1100a000 {
compatible = "mediatek,ipm-spi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0 0x1100a000 0 0x1000>;
interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
<&topckgen CLK_TOP_SPI_SEL>,
<&perisys CLK_PERI_SPI0>;
clock-names = "parent-clk", "sel-clk", "spi-clk";
status = "disabled";
};
eem_fsm: eem_fsm@1100b000 {
compatible = "mediatek,eem_fsm";
reg = <0 0x1100b000 0 0x1000>;
eem-status = <1>;
sn-status = <0>;
eem-initmon-little = <0xff>;
eem-initmon-cci = <0xff>;
eem-clamp-little = <0>;
eem-clamp-cci = <0>;
eem-offset-little = <0xff>;
eem-offset-cci = <0xff>;
};
thermal: thermal@1100b800 {
compatible = "mediatek,mt8696-thermal";
reg = <0 0x1100b800 0 0x800>;
interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&perisys CLK_PERI_THERM>,
<&perisys CLK_PERI_AUXADC>;
clock-names = "therm", "auxadc";
mediatek,auxadc = <&auxadc>;
mediatek,apmixedsys = <&apmixedsys>;
mediatek,tsconfbase = <&apmixedsys>;
mediatek,therm-rst = <&perisys 0x120 0x00200000
0x124 0x00200000
0x128 0x00200000>;
/*
* if have two reset bank, please add node
* eg <&infracfg_ao 0x120 0x1 0x124 0x1 0x128 0x1>,
* <&apmixedsys 0x180 0x1 0x184 0x1 0x188 0x1>
*/
therm-rst-name = "thermrst1";
mediatek,hw-reset-temp = <117000>;
/*nvmem-cells = <&thermal_calibration>;*/
nvmem-cell-names = "efuse-data";
calibration-map = <0 29 29>,/*cali_en*/
<0 9 0>,/*adc_ge*/
<2 5 0>,/*degc_cali*/
<0 30 30>,/*slope_sign*/
<2 11 6>,/*slope*/
<0 31 31>;/*id*/
calibration-map-name = "cali_en", "adc_ge",
"degc_cali", "slope_sign",
"slope", "id";
calibration-map-vts = <
1 8 0 /*vts1*/
1 17 9 /*vts2*/
1 26 18 /*vts3*/
3 8 0 /*vts4*/
3 17 9 /*vts5*/
3 26 18 /*vts6*/
>;
#thermal-sensor-cells = <1>;
status = "okay";
};
nandc: nfi@1100e000 {
compatible = "mediatek,mt8696-nfc";
reg = <0 0x1100e000 0 0x1000>,
<0 0x1100f000 0 0x1000>;
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&perisys CLK_PERI_NFI>,
<&topckgen CLK_TOP_NFI2X_SEL>,
<&topckgen CLK_TOP_UNIVPLL1_D8>;
clock-names = "nfi_clk",
"nfi2x_sel",
"nfi2x_clk_parent";
status = "disabled";
};
i2c3: i2c@11010000 {
compatible = "mediatek,mt8696-i2c";
reg = <0 0x11010000 0 0x90>,
<0 0x11000200 0 0x80>;
interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
clock-div = <1>;
clocks = <&perisys CLK_PERI_I2C0>,
<&perisys CLK_PERI_AP_DMA>;
clock-names = "main", "dma";
status = "disabled";
};
i2c5: i2c@11011000 {
compatible = "mediatek,mt8696-i2c";
reg = <0 0x11011000 0 0x90>,
<0 0x11000300 0 0x80>;
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
clock-div = <1>;
clocks = <&perisys CLK_PERI_I2C0>,
<&perisys CLK_PERI_AP_DMA>;
clock-names = "main", "dma";
status = "disabled";
};
spi2: spi@11015000 {
compatible = "mediatek,ipm-spi";
#address-cells = <1>;
#size-cells = <0>;
reg = <0 0x11015000 0 0x1000>;
interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_UNIVPLL2_D4>,
<&topckgen CLK_TOP_SPI_SEL>,
<&perisys CLK_PERI_SPI2>;
clock-names = "parent-clk", "sel-clk", "spi-clk";
status = "disabled";
};
ether: syscon@1101a000 {
compatible = "mediatek,mt8696-ether", "syscon";
reg = <0 0x1101a000 0 0x1000>;
#clock-cells = <1>;
};
ethernet: ethernet@1101a000 {
compatible = "mediatek,mt8696-eth";
reg = <0 0x1101a000 0 0x380>;
mediatek,topckgen =<&topckgen>;
interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
clock-names = "core",
"reg",
"trans",
"ether_axi",
"ether_apb",
"ether_rx",
"ether_tx",
"ether_rx_ext",
"ether_tx_ext",
"ether_mac",
"ether_nclk";
clocks = <&perisys CLK_PERI_GMAC>,
<&perisys CLK_PERI_GMAC_PCLK>,
<&topckgen CLK_TOP_ETH_250MSEL>,
<&ether CLK_ETH_AXI_MCLKEN>,
<&ether CLK_ETH_APB_PCLKEN>,
<&ether CLK_ETH_RX_I_RMIIEN>,
<&ether CLK_ETH_TX_I_RMIIEN>,
<&ether CLK_ETH_RX_IEN>,
<&ether CLK_ETH_TX_IEN>,
<&ether CLK_ETH_MAC_EXTEN>,
<&ether CLK_ETH_NCLK_IEN>;
power-domains = <&scpsys MT8696_POWER_DOMAIN_ETHER_PCIE>;
status = "disabled";
};
ssusb: usb@11201000 {
compatible = "mediatek,mt8696-mtu3",
"mediatek,mtu3";
reg = <0 0x11201000 0 0x2e00>,
<0 0x11203e00 0 0x0100>;
reg-names = "mac", "ippc";
interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&scpsys MT8696_POWER_DOMAIN_SSUSB>;
phys = <&u2port0 PHY_TYPE_USB2>;
clocks = <&perisys CLK_PERI_USB0>,
<&topckgen CLK_TOP_SSUSB_TOP>,
<&topckgen CLK_TOP_USB30_SEL>;
clock-names = "sys_ck", "ref_ck", "dma_ck";
#address-cells = <2>;
#size-cells = <2>;
ranges;
status = "disabled";
usb_host0: xhci@11200000 {
compatible = "mediatek,mt8696-xhci",
"mediatek,mtk-xhci";
reg = <0 0x11200000 0 0x1000>,
<0 0x11203e00 0 0x0100>;
reg-names = "mac", "ippc";
interrupts-extended = <&pio 225 IRQ_TYPE_LEVEL_LOW 165 0>,
<&gic GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "wakeup", "host";
phys = <&u2port0 PHY_TYPE_USB2>,
<&u2port1 PHY_TYPE_USB2>,
<&u2port2 PHY_TYPE_USB2>,
<&u3port0 PHY_TYPE_USB3>;
clocks = <&perisys CLK_PERI_USB0>,
<&topckgen CLK_TOP_SSUSB_TOP>,
<&topckgen CLK_TOP_USB30_SEL>;
clock-names = "sys_ck", "ref_ck", "xhci_ck";
wakeup-source;
mediatek,syscon-wakeup = <&perisys 0x510 3>;
runtime-forbid;
status = "okay";
};
};
afe32: audio-controller@11220000 {
compatible = "mediatek,mt8532-afe-pcm";
reg = <0 0x11220000 0 0x6000>,
<0 0x11210000 0 0x10000>;
interrupts = <GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_AUDIO_26MSEL>,
<&topckgen CLK_TOP_AUDIO_SEL>,
<&topckgen CLK_TOP_AUD_INTBUSSEL>,
<&infrasys CLK_INFRA_IPSYS>,
<&topckgen CLK_TOP_A1SYSHP_SEL>,
<&topckgen CLK_TOP_INTDIR_SEL>,
<&topckgen CLK_TOP_A2SYSHP_SEL>,
<&topckgen CLK_TOP_A3SYSHP_SEL>,
<&topckgen CLK_TOP_A4SYSHP_SEL>,
<&topckgen CLK_TOP_APLL3_D4>,
<&topckgen CLK_TOP_APLL4_D4>,
<&topckgen CLK_TOP_APLL5_D4>,
<&topckgen CLK_TOP_HDMIRX_APLL_D6>,
<&topckgen CLK_TOP_APLL_SEL>,
<&topckgen CLK_TOP_APLL2_SEL>,
<&topckgen CLK_TOP_APLL3_SEL>,
<&topckgen CLK_TOP_APLL4_SEL>,
<&topckgen CLK_TOP_APLL5_SEL>,
<&topckgen CLK_TOP_APLL1_D8>,
<&topckgen CLK_TOP_APLL2_D8>,
<&topckgen CLK_TOP_APLL3_D8>,
<&topckgen CLK_TOP_APLL4_D8>,
<&topckgen CLK_TOP_APLL5_D8>,
<&topckgen CLK_TOP_ASML_SEL>,
<&topckgen CLK_TOP_ASMM_SEL>,
<&topckgen CLK_TOP_ASMH_SEL>,
<&topckgen CLK_TOP_APLL12_DIV4>,
<&topckgen CLK_TOP_APLL12_DIV0>,
<&topckgen CLK_TOP_APLL12_DIV1>,
<&topckgen CLK_TOP_APLL12_DIV2>,
<&topckgen CLK_TOP_APLL12_DIV3>,
<&topckgen CLK_TOP_AUD_IEC>,
<&topckgen CLK_TOP_I2SI1_M>,
<&topckgen CLK_TOP_I2SI2_M>,
<&topckgen CLK_TOP_I2SO1_M>,
<&topckgen CLK_TOP_I2SO2_M>,
<&topckgen CLK_TOP_I2SI1_SEL>,
<&topckgen CLK_TOP_I2SI2_SEL>,
<&topckgen CLK_TOP_I2SO1_SEL>,
<&topckgen CLK_TOP_I2SO2_SEL>,
<&apmixedsys CLK_APMIXED_APLL1>,
<&apmixedsys CLK_APMIXED_APLL2>,
<&apmixedsys CLK_APMIXED_APLL3>,
<&apmixedsys CLK_APMIXED_APLL4>,
<&apmixedsys CLK_APMIXED_APLL5>,
<&apmixedsys CLK_APMIXED_HDMIRX_APLL>;
clock-names = "audio_26msel",
"audio_sel",
"aud_intbussel",
"infra_ipsys",
"a1syshp_sel",
"intdir_sel",
"a2syshp_sel",
"a3syshp_sel",
"a4syshp_sel",
"apll3_d4",
"apll4_d4",
"apll5_d4",
"hdmirx_apll_d6",
"apll_sel",
"apll2_sel",
"apll3_sel",
"apll4_sel",
"apll5_sel",
"apll1_d8",
"apll2_d8",
"apll3_d8",
"apll4_d8",
"apll5_d8",
"asml_sel",
"asmm_sel",
"asmh_sel",
"apll12_div4",
"apll12_div0",
"apll12_div1",
"apll12_div2",
"apll12_div3",
"hf_faud_iec_ck",
"hf_fi2si1_m_ck",
"hf_fi2si2_m_ck",
"hf_fi2so1_m_ck",
"hf_fi2so2_m_ck",
"i2si1_sel",
"i2si2_sel",
"i2so1_sel",
"i2so2_sel",
"apll1",
"apll2",
"apll3",
"apll4",
"apll5",
"hdmirx_apll";
assigned-clocks =
<&topckgen CLK_TOP_APLL_SEL>,
<&topckgen CLK_TOP_APLL2_SEL>,
<&topckgen CLK_TOP_APLL3_SEL>,
<&topckgen CLK_TOP_APLL4_SEL>,
<&topckgen CLK_TOP_APLL5_SEL>,
<&topckgen CLK_TOP_ASML_SEL>,
<&topckgen CLK_TOP_ASMM_SEL>,
<&topckgen CLK_TOP_ASMH_SEL>;
assigned-clock-parents =
<&topckgen CLK_TOP_APLL1_D8>,
<&topckgen CLK_TOP_APLL2_D8>,
<&topckgen CLK_TOP_APLL3_D8>,
<&topckgen CLK_TOP_APLL4_D8>,
<&topckgen CLK_TOP_APLL5_D8>,
<&topckgen CLK_TOP_UNIVPLL2_D4>,
<&topckgen CLK_TOP_UNIVPLL2_D4>,
<&topckgen CLK_TOP_UNIVPLL2_D4>;
mediatek,topckgen-regmap = <&topckgen>;
mediatek,scpsys-regmap = <&scpsys>;
mediatek,apmixedsys-regmap = <&apmixedsys>;
power-domains = <&scpsys MT8696_POWER_DOMAIN_AUDIO>;
status = "disable";
};
afe: audio-controller@11228000 {
compatible = "mediatek,mt8696-afe-pcm";
reg = <0 0x11228000 0 0x4000>;
interrupts = <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&apmixedsys CLK_APMIXED_APLL1>,
<&apmixedsys CLK_APMIXED_APLL2>,
<&infrasys CLK_INFRA_AUDIO>,
<&topckgen CLK_TOP_APLL1_D2>,
<&topckgen CLK_TOP_APLL1_D4>,
<&topckgen CLK_TOP_APLL1_D8>,
<&topckgen CLK_TOP_APLL1_D16>,
<&topckgen CLK_TOP_APLL2_D2>,
<&topckgen CLK_TOP_APLL2_D4>,
<&topckgen CLK_TOP_APLL2_D8>,
<&topckgen CLK_TOP_APLL2_D16>,
<&topckgen CLK_TOP_AUDIO_SEL>,
<&topckgen CLK_TOP_AUDIO_26MSEL>,
<&topckgen CLK_TOP_AUD_INTBUSSEL>,
<&topckgen CLK_TOP_APLL_SEL>,
<&topckgen CLK_TOP_APLL2_SEL>,
<&topckgen CLK_TOP_A1SYSHP_SEL>,
<&topckgen CLK_TOP_A2SYSHP_SEL>,
<&topckgen CLK_TOP_APLL12_DIV0>,
<&topckgen CLK_TOP_APLL12_DIV2>,
<&topckgen CLK_TOP_APLL12_DIV3>,
<&topckgen CLK_TOP_I2SO1_SEL>,
<&topckgen CLK_TOP_I2SO2_SEL>,
<&topckgen CLK_TOP_I2SI1_SEL>;
clock-names = "apll1",
"apll2",
"infra_audio",
"apll1_d2",
"apll1_d4",
"apll1_d8",
"apll1_d16",
"apll2_d2",
"apll2_d4",
"apll2_d8",
"apll2_d16",
"audio_sel",
"audio_26msel",
"aud_intbussel",
"apll_sel",
"apll2_sel",
"a1syshp_sel",
"a2syshp_sel",
"apll12_div0",
"apll12_div2",
"apll12_div3",
"i2so1_sel",
"i2so2_sel",
"i2si1_sel";
assigned-clocks =
<&topckgen CLK_TOP_APLL_SEL>,
<&topckgen CLK_TOP_APLL2_SEL>,
<&topckgen CLK_TOP_A1SYSHP_SEL>,
<&topckgen CLK_TOP_A2SYSHP_SEL>;
assigned-clock-parents =
<&apmixedsys CLK_APMIXED_APLL1>,
<&apmixedsys CLK_APMIXED_APLL2>,
<&topckgen CLK_TOP_APLL1_D4>,
<&topckgen CLK_TOP_APLL2_D4>;
mediatek,topckgen-regmap = <&topckgen>;
mediatek,scpsys-regmap = <&scpsys>;
status = "disabled";
};
mmc0: mmc@11230000 {
compatible = "mediatek,mt8696-mmc",
"mediatek,mt8183-mmc";
reg = <0 0x11230000 0 0x1000>,
<0 0x11E00000 0 0x1000>;
interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>,
<&perisys CLK_PERI_MSDC0_H_EN>,
<&perisys CLK_PERI_MSDC0_EN>,
<&perisys CLK_PERI_MSDC30_0>;
clock-names = "source", "hclk", "source_cg", "bus_clk";
status = "disabled";
};
mmc1: mmc@11240000 {
compatible = "mediatek,mt8696-mmc",
"mediatek,mt8183-mmc";
reg = <0 0x11240000 0 0x1000>,
<0 0x11D10000 0 0x1000>;
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>,
<&perisys CLK_PERI_MSDC30_1>,
<&perisys CLK_PERI_MSDC1_EN>;
clock-names = "source", "hclk", "source_cg";
status = "disabled";
};
mmc2: sdio@11250000 {
compatible = "mediatek,mt8696-sdio",
"mediatek,mt8183-mmc";
reg = <0 0x11250000 0 0x1000>,
<0 0x11c00000 0 0x1000>;
interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&topckgen CLK_TOP_MSDC30_2_SEL>,
<&perisys CLK_PERI_MSDC2_H_EN>,
<&perisys CLK_PERI_MSDC2_EN>,
<&perisys CLK_PERI_MSDC30_2>;
clock-names = "source", "hclk", "source_cg", "bus_clk";
status = "disabled";
};
u3phy0: usb-phy@11c20000 {
compatible = "mediatek,mt8696",
"mediatek,generic-tphy-v2";
#address-cells = <2>;
#size-cells = <2>;
ranges;
status = "okay";
u2port0: usb-phy@11c20000 {
reg = <0 0x11c20000 0 0x700>;
clocks = <&topckgen CLK_TOP_SSUSB_U2_PHY>;
clock-names = "ref", "da_ref";
#phy-cells = <1>;
mediatek,discth = <0x8>;
auto-load-dis = <6>;
auto-load-valid = <60 5 1>;
intr = <66 10 5>;
status = "okay";
};
u3port0: usb-phy@11c20700 {
reg = <0 0x11c20700 0 0x900>;
clocks = <&topckgen CLK_TOP_SSUSB_PHY>;
clock-names = "ref";
#phy-cells = <1>;
auto-load-dis = <12>;
auto-load-valid = <60 9 1>;
tx-imp = <63 22 5>;
rx-imp = <63 27 5>;
intr = <64 0 6>;
status = "disabled";
};
u2port1: usb-phy@11c21000 {
reg = <0 0x11c21000 0 0x700>;
clocks = <&topckgen CLK_TOP_SSUSB_U2_PHY>;
clock-names = "ref";
#phy-cells = <1>;
mediatek,discth = <0x8>;
auto-load-dis = <28>;
auto-load-valid = <60 6 1>;
intr = <66 0 5>;
status = "disabled";
};
u2port2: usb-phy@11c22000 {
reg = <0 0x11c22000 0 0x700>;
clocks = <&topckgen CLK_TOP_SSUSB_U2_PHY>;
clock-names = "ref";
#phy-cells = <1>;
mediatek,discth = <0x8>;
auto-load-dis = <29>;
auto-load-valid = <60 7 1>;
intr = <66 5 5>;
status = "disabled";
};
};
syscfg_pctl_0: syscfg_pctl_0@11c30000 {
compatible = "mediatek,pctl-0-syscfg", "syscon";
reg = <0 0x11c30000 0 0x1000>;
};
syscfg_pctl_1: syscfg_pctl_1@11d00000 {
compatible = "mediatek,pctl-1-syscfg", "syscon";
reg = <0 0x11d00000 0 0x1000>;
};
syscfg_pctl_2: syscfg_pctl_2@11d20000 {
compatible = "mediatek,pctl-2-syscfg", "syscon";
reg = <0 0x11d20000 0 0x1000>;
};
syscfg_pctl_3: syscfg_pctl_3@11e10000 {
compatible = "mediatek,pctl-3-syscfg", "syscon";
reg = <0 0x11e10000 0 0x1000>;
};
syscfg_pctl_4: syscfg_pctl_4@11f40000 {
compatible = "mediatek,pctl-4-syscfg", "syscon";
reg = <0 0x11f40000 0 0x1000>;
};
clovelly: gpu@13000000 {
compatible = "mediatek,mt8696-clovelly";
reg = <0 0x13000000 0 0x100000>;
interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "RGX";
clock-frequency = <650000000>;
#cooling-cells = <2>;
};
mfg: mfg@13fbf000 {
compatible = "mediatek,mt8696-mfg";
reg = <0 0x13fbf000 0 0x1000>;
clocks = <&topckgen CLK_TOP_MFG_SEL>,
<&apmixedsys CLK_APMIXED_MMPLL>,
<&topckgen CLK_TOP_UNIVPLL1_D2>,
<&topckgen CLK_TOP_UNIVPLL2_D2>,
<&topckgen CLK_TOP_UNIVPLL1_D4>;
clock-names = "mfg_sel",
"pll",
"univpll624m",
"univpll416m",
"univpll312m";
};
mfgcfg: syscon@13fbf000 {
compatible = "mediatek,mt8696-mfgcfg", "syscon";
reg = <0 0x13fbf000 0 0x1000>;
#clock-cells = <1>;
};
larb8: larb@14000000 {
compatible = "mediatek,mt8696-smi-larb";
reg = <0 0x14000000 0 0x1000>;
mediatek,smi = <&smi_common>;
mediatek,larb-id = <8>;
clocks = <&mmsys CLK_MMCG2_DRAM_L>,
<&dispsys CLK_IMG_DRAMC_L8>;
clock-names = "apb", "smi";
power-domains =
<&scpsys MT8696_POWER_DOMAIN_DISP_MAIN>;
};
mmsys: syscon@14000000 {
compatible = "mediatek,mt8696-mmsys", "syscon";
reg = <0 0x14000000 0 0x1000>;
#clock-cells = <1>;
};
vq: vq@14000000 {
compatible = "mediatek,mt8696-vq";
reg = <0 0x14000000 0 0x1000>, /*mmsys_config*/
<0 0x14001500 0 0x100>, /*vdout_sys*/
<0 0x15000000 0 0x100>, /*disp_top*/
<0 0x1500a000 0 0x1000>, /*nr*/
<0 0x1500e000 0 0x1000>, /*dispfmt,vdo*/
<0 0x1500f000 0 0x100>; /*wch*/
power-domains =
<&scpsys MT8696_POWER_DOMAIN_DISP_COMMON>;
clocks = <&dispsys CLK_IMG_NR>,
<&topckgen CLK_TOP_NR_SEL>,
<&topckgen CLK_TOP_UNIVPLL2_D4>,
<&dispsys CLK_IMG_VDO_DI>,
<&dispsys CLK_IMG_DISPFMT_DI>,
<&dispsys CLK_IMG_WR_CHANNEL>,
<&dispsys CLK_IMG_DRAMC_L8>,
<&topckgen CLK_TOP_DI_SEL>,
<&topckgen CLK_TOP_TVDPLL_D2>,
<&topckgen CLK_TOP_OSDPLL_D3>;
clock-names = "nr",
"nr_sel",
"nr_parent",
"vdo_di",
"dispfmt_di",
"wr_channel",
"dramc_larb8",
"di_sel",
"tvdpll_d2",
"osdpll_d3";
/*wrch_frame_end*/
/*nr*/
/*di_vsync*/
/*di_frame_end*/
/*disp_end*/
/*di_under_run*/
interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 291 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 292 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>;
iommus = <&iommu M4U_PORT_IOMMU_READ>,
<&iommu M4U_PORT_IOMMU_WRITE>;
mediatek,larb = <&larb8>;
};
disp_fmt: disp_fmt@14001000 {
compatible = "mediatek,mt8696-fmt";
reg = <0 0x10000000 0 0x1000>,
<0 0x14001000 0 0x400>,
<0 0x15000000 0 0x100>,
<0 0x15001000 0 0x100>,
<0 0x15008000 0 0x100>;
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
};
disp_vdout: disp_vdout@14001000 {
compatible = "mediatek,mt8696-vdout";
reg = <0 0x14001000 0 0xd00>;
};
disp_videoin: disp_videoin@14002000 {
compatible = "mediatek,mt8696-videoin";
reg = <0 0x14002000 0 0x100>,
<0 0x1400e300 0 0x100>;
};
disp_p2i:disp_p2i@14002700{
compatible = "mediatek,mt8696-p2i";
reg = <0 0x14002700 0 0x100>;
};
disp_osd: disp_osd@14004000 {
compatible = "mediatek,mt8696-osd";
reg = <0 0x14004000 0 0x300>,
<0 0x14003000 0 0x300>,
<0 0x1400cf80 0 0x80>,
<0 0x1400ef80 0 0x80>;
interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
mboxes = <&gce_mbox 4 0xffffffff 1>,
<&gce_mbox 5 0xffffffff 4>;
gce-event-names = "OSD3_FRAME_END_IRQ_B";
gce-events = <&gce_mbox 51>;
};
disp_hdr: disp_hdr@14009000 {
compatible = "mediatek,mt8696-hdr";
reg = <0 0x14009000 0 0x1000>,
<0 0x1400A000 0 0x1000>,
<0 0x1400B000 0 0x400>,
<0 0x15012000 0 0x1000>,
<0 0x15015000 0 0x1000>,
<0 0x15016000 0 0x1000>;
interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
};
larb0: larb@1400c000 {
compatible = "mediatek,mt8696-smi-larb";
reg = <0 0x1400c000 0 0x1000>;
mediatek,smi = <&smi_common>;
mediatek,larb-id = <0>;
clocks = <&mmsys CLK_MMCG1_SMI_L0>,
<&mmsys CLK_MMCG12_SMI_L0>;
clock-names = "apb", "smi";
power-domains = <&scpsys MT8696_POWER_DOMAIN_OSD_UHD>;
};
smi_common: smi@1400d000 {
compatible = "mediatek,mt8696-smi-common";
reg = <0 0x1400d000 0 0x1000>;
mediatek,common-id = <0>;
clocks = <&mmsys CLK_MMCG0_SMI_COM>,
<&mmsys CLK_MMCG0_SMI_COM>;
clock-names = "apb", "smi";
power-domains =
<&scpsys MT8696_POWER_DOMAIN_MMSYS_TOP>;
};
larb4: larb@1400e000 {
compatible = "mediatek,mt8696-smi-larb";
reg = <0 0x1400e000 0 0x1000>;
mediatek,smi = <&smi_common>;
mediatek,larb-id = <4>;
init-power-on;
clocks = <&mmsys CLK_MMCG4_SMI_L4>,
<&mmsys CLK_MMCG4_SMI_L4>;
clock-names = "apb", "smi";
power-domains =
<&scpsys MT8696_POWER_DOMAIN_MMSYS_TOP>;
};
disp_befifo: disp_befifo@1400f000 {
compatible = "mediatek,mt8696-befifo";
reg = <0 0x1400f000 0 0x1000>;
interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
};
disp_fefifo: disp_fefifo@14010000 {
compatible = "mediatek,mt8696-fefifo";
reg = <0 0x14010000 0 0x1000>,
<0 0x14011000 0 0x1000>,
<0 0x15010000 0 0x1000>,
<0 0x15017000 0 0x1000>;
interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
};
disp_adl_ml: disp_adl_ml@14013000 {
compatible = "mediatek,mt8696-adl-ml";
reg = <0 0x14013000 0 0x1000>,
<0 0x15013000 0 0x1000>;
interrupts = <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
};
disp_mix: disp_mix@14014000 {
compatible = "mediatek,mt8696-dispmix";
reg = <0 0x14014000 0 0x200>;
};
dispsys: syscon@15000000 {
compatible = "mediatek,mt8696-disp", "syscon";
reg = <0 0x15000000 0 0x1000>;
#clock-cells = <1>;
};
disp_vdo: disp_vdo@15001000 {
compatible = "mediatek,mt8696-vdo";
reg = <0 0x15001000 0 0x1000>,
<0 0x15008000 0 0x1000>;
#interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
};
larb5: larb@15004000 {
compatible = "mediatek,mt8696-smi-larb";
reg = <0 0x15004000 0 0x1000>;
mediatek,smi = <&smi_common>;
mediatek,larb-id = <5>;
clocks = <&mmsys CLK_MMCG6_SMI_L5>,
<&dispsys CLK_IMG_SMI_L5>;
clock-names = "apb", "smi";
power-domains =
<&scpsys MT8696_POWER_DOMAIN_DISP_MAIN>;
};
larb6: larb@15005000 {
compatible = "mediatek,mt8696-smi-larb";
reg = <0 0x15005000 0 0x1000>;
mediatek,smi = <&smi_common>;
mediatek,larb-id = <6>;
clocks = <&mmsys CLK_MMCG7_SMI_L6>,
<&dispsys CLK_IMG_SMI_L6>;
clock-names = "apb", "smi";
power-domains =
<&scpsys MT8696_POWER_DOMAIN_DISP_MAIN>;
};
disp_r2r: disp_r2r@15006000 {
compatible = "mediatek,mt8696-r2r";
reg = <0 0x15006000 0 0x1000>;
interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
};
irt_dma: irt_dma@1500b000 {
compatible = "mediatek,mt8696-irt";
reg = <0 0x1500b000 0 0x100>, /*irt_dma*/
<0 0x15000000 0 0x100>; /*disp_top*/
power-domains =
<&scpsys MT8696_POWER_DOMAIN_DISP_COMMON>;
clocks = <&dispsys CLK_IMG_IRT_DMA>;
clock-names = "irt_dma";
interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>;
iommus = <&iommu M4U_PORT_IRT_DMA_RW>;
mediatek,larb = <&larb6>;
};
imgresz0: imgresz@1500c000 {
compatible = "mediatek,mt8696-imgresz";
reg = <0 0x1500c000 0 0x400>,
<0 0x1500ce00 0 0x100>;
mediatek,imgreszid = <0>;
power-domains =
<&scpsys MT8696_POWER_DOMAIN_DISP_COMMON>;
clocks = <&dispsys CLK_IMGRSZ>;
clock-names = "imgrz_cg";
mediatek,larb = <&larb5>;
interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
iommus = <&iommu M4U_PORT_IMG_UFO_REQ>,
<&iommu M4U_PORT_IMG_LEN_REQ>,
<&iommu M4U_PORT_IMG_WR_REQ>;
};
imgresz1: imgresz@1500c400 {
compatible = "mediatek,mt8696-imgresz";
reg = <0 0x1500c400 0 0x400>,
<0 0x1500cf00 0 0x100>;
mediatek,imgreszid = <1>;
power-domains =
<&scpsys MT8696_POWER_DOMAIN_DISP_COMMON>;
clocks = <&dispsys CLK_IMGRSZ>;
clock-names = "imgrz_cg";
interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
iommus = <&iommu M4U_PORT_IMG_UFO_REQ_CH2>,
<&iommu M4U_PORT_IMG_LEN_REQ_CH2>,
<&iommu M4U_PORT_IMG_WR_REQ_CH2>;
mediatek,larb = <&larb6>;
};
disp_fg: disp_fg@15011000 {
compatible = "mediatek,mt8696-fg";
reg = <0 0x15011000 0 0x1000>,
<0 0x15014000 0 0x1000>;
};
vcu: vcu@16000000 {
compatible = "mediatek-vcu";
mediatek,vcuid = <0>;
mediatek,vcuname = "vcu";
reg = <0 0x16000000 0 0x40000>,/* VDEC_BASE */
<0 0x18010000 0 0x10000>;/* VENC_BASE */
iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>;
mediatek,mailbox-gce = <&gce_mbox>;
mediatek,enc_gce_th_num = <1>;
mboxes =
<&gce_mbox 6 0 CMDQ_THR_PRIO_1>;
gce-event-names = "venc_eof",
"venc_cmdq_pause_done",
"venc_mb_done",
"venc_sps_done",
"venc_pps_done",
"venc_128B_cnt_done";
gce-events =
<&gce_mbox CMDQ_EVENT_VENC_FRAME_DONE>,
<&gce_mbox CMDQ_EVENT_VENC_PAUSE_DONE>,
<&gce_mbox CMDQ_EVENT_VENC_MB_DONE>,
<&gce_mbox CMDQ_EVENT_VENC_SPS_DONE>,
<&gce_mbox CMDQ_EVENT_VENC_PPS_DONE>,
<&gce_mbox CMDQ_EVENT_VENC_128BYTE_COUNT_DONE>;
};
vdec@16000000 {
compatible = "mediatek,mt8696-vcodec-dec";
mediatek,platform = "platform:mt8696";
mediatek,ipm = <2>;
reg = <0 0x16000000 0 0x1000>,/* VDEC_SYS */
<0 0x16020000 0 0x1000>,/* VDEC_VLD */
<0 0x16025000 0 0x4000>,/* VDEC_MISC */
<0 0x16010000 0 0x7000>,/* VDEC_LAT_MISC */
<0 0x16004000 0 0x1000>;/* VDEC_RACING_CTRL */
reg-names =
"VDEC_SYS",
"VDEC_VLD",
"VDEC_MISC",
"VDEC_LAT_MISC",
"VDEC_RACING_CTRL";
mediatek,larbs = <&larb1 &larb7>;
iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>,/*LARB1*/
<&iommu M4U_PORT_HW_VDEC_UFO_EXT>,
<&iommu M4U_PORT_HW_VDEC_PP_EXT>,
<&iommu M4U_PORT_HW_VDEC_PRED_RD_EXT>,
<&iommu M4U_PORT_HW_VDEC_PRED_WR_EXT>,
<&iommu M4U_PORT_HW_VDEC_PPWRAP_EXT>,
<&iommu M4U_PORT_HW_VDEC_TILE_EXT>,
<&iommu M4U_PORT_HW_VDEC_VLD_EXT>,
<&iommu M4U_PORT_HW_VDEC_VLD2_EXT>,
<&iommu M4U_PORT_HW_VDEC_AVC_MV_EXT>,
<&iommu M4U_PORT_HW_VDEC_LAT_VLD_EXT>,/*LARB7*/
<&iommu M4U_PORT_HW_VDEC_LAT_VLD2_EXT>,
<&iommu M4U_PORT_HW_VDEC_LAT_AVC_MV_EXT>,
<&iommu M4U_PORT_HW_VDEC_LAT_PRED_RD_EXT>,
<&iommu M4U_PORT_HW_VDEC_LAT_TILE_EXT>,
<&iommu M4U_PORT_HW_VDEC_LAT_WDMA_EXT>,
<&iommu M4U_PORT_HW_VDEC_UFO_ENC_EXT>;
mediatek,vcu = <&vcu>;
power-domains =<&scpsys MT8696_POWER_DOMAIN_VDEC_SOC>,
<&scpsys MT8696_POWER_DOMAIN_VDEC_CORE0>;
clocks = <&vdec_gcon CLK_VDECEN>,
<&vdec_soc_gcon CLK_VDSOC_VSEN>,
<&vdec_soc_gcon CLK_VDSOC_LSEN>,
<&topckgen CLK_TOP_VDEC_SLOW_SEL>;
clock-names = "CORE_MT_VDECEN",
"CORE_MT_VDSOC_VSEN",
"LAT_MT_VDSOC_LSEN",
"CORE_MT_TOPCK_SLOW_SELEN"; /*SLOW clk*/
interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
};
vdec_core@16000000 {
compatible = "mediatek,mt8696-vcodec-dec-core0";
power-domains =
<&scpsys MT8696_POWER_DOMAIN_VDEC_CORE0>;
};
venc@18000000 {
compatible = "mediatek,mt8696-vcodec-enc";
mediatek,platform = "platform:mt8696";
mediatek,ipm = <2>;
reg = <0 0x18010000 0 0x2000>;
reg-names = "VENC_SYS";
mediatek,larbs = <&larb3>;
iommus = <&iommu M4U_PORT_VENC_RCPU>,/*LARB3*/
<&iommu M4U_PORT_VENC_REC_FRM>,
<&iommu M4U_PORT_VENC_BSDMA>,
<&iommu M4U_PORT_VENC_SV_COMV>,
<&iommu M4U_PORT_VENC_RD_COMV>,
<&iommu M4U_PORT_VENC_CUR_CHROMA>,
<&iommu M4U_PORT_VENC_REF_CHROMA>,
<&iommu M4U_PORT_VENC_CUR_LUMA>,
<&iommu M4U_PORT_VENC_REF_LUMA>;
interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
mediatek,vcu = <&vcu>;
power-domains = <&scpsys MT8696_POWER_DOMAIN_VENC>;
clocks =
<&venc CLK_VENC_SMI_CON>,
<&venc CLK_VENC_CON>;
clock-names =
"MT_VENC_SMI",
"MT_VENC_CON";
};
larb7: larb@1600d000 {
compatible = "mediatek,mt8696-smi-larb";
reg = <0 0x1600d000 0 0x1000>;
mediatek,smi = <&smi_common>;
mediatek,larb-id = <7>;
clocks = <&mmsys CLK_MMCG8_SMI_L7>,
<&vdec_soc_gcon CLK_VDSOC_L1_SOCEN>;
clock-names = "apb", "smi";
power-domains =
<&scpsys MT8696_POWER_DOMAIN_VDEC_SOC>;
};
vdec_soc_gcon: vdec_soc_gcon@1600f000 {
compatible = "mediatek,vdec_soc_gcon", "syscon";
reg = <0 0x1600f000 0 0x10000>;
#clock-cells = <1>;
};
vdec: vdec@16020000 {
compatible = "mediatek,vdec";
reg = <0 0x16020000 0 0xd000>;
interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
};
larb1: larb@1602e000 {
compatible = "mediatek,mt8696-smi-larb";
reg = <0 0x1602e000 0 0x1000>;
mediatek,smi = <&smi_common>;
mediatek,larb-id = <1>;
clocks = <&mmsys CLK_MMCG5_SMI_L1>,
<&vdec_gcon CLK_VDEC_L1EN>,
<&topckgen CLK_TOP_VDEC_SLOW_SEL>;
clock-names = "apb", "smi", "gals";
power-domains =
<&scpsys MT8696_POWER_DOMAIN_VDEC_CORE0>;
};
vdec_gcon: vdec_gcon@1602f000 {
compatible = "mediatek,vdec_gcon", "syscon";
reg = <0 0x1602f000 0 0x10000>;
#clock-cells = <1>;
};
venc: syscon@18000000 {
compatible = "mediatek,mt8696-vencsys", "syscon";
reg = <0 0x18000000 0 0x1000>;
#clock-cells = <1>;
};
larb3: larb@18002000 {
compatible = "mediatek,mt8696-smi-larb";
reg = <0 0x18002000 0 0x1000>;
mediatek,smi = <&smi_common>;
mediatek,larb-id = <3>;
clocks = <&mmsys CLK_MMCG11_SMI_L3>,
<&venc CLK_VENC_SMI_CON>;
clock-names = "apb", "smi";
power-domains = <&scpsys MT8696_POWER_DOMAIN_VENC>;
};
hdmitx: hdmitx@1a000000 {
compatible = "mediatek,mt8696-hdmitx21";
reg = <0 0x14001800 0 0x100>, /* RGB2HDMI */
<0 0x10014000 0 0x100>, /* CEC */
<0 0x1a000000 0 0x1000>, /* HDMI Tx Digital */
<0 0x11f30000 0 0x100>, /* HDMI Tx Analog */
<0 0x14001000 0 0xd00>; /* vdout */
power-domains = <&scpsys MT8696_POWER_DOMAIN_HDMITX>;
clocks = <&infrasys CLK_INFRA_CEC>,
<&topckgen CLK_TOP_HD_SEL>,
<&topckgen CLK_TOP_SD_SEL>,
<&topckgen CLK_TOP_HDMITX_PIXEL>,
<&topckgen CLK_TOP_HDMITX_PIXEL_D6>,
<&topckgen CLK_TOP_HMT_PX_D3>,
<&topckgen CLK_TOP_HDCP_SEL>,
<&topckgen CLK_TOP_HDCP_24MSEL>,
<&topckgen CLK_TOP_HD20_DACR_SEL>,
<&topckgen CLK_TOP_HD20_HDCP_SEL>,
<&topckgen CLK_TOP_HDMI_APB_SEL>,
<&topckgen CLK_TOP_HDMI_SEL>,
<&mmsys CLK_MMCG23_RGB2HDMI>,
<&mmsys CLK_MMCG0_SD_PPF>,
<&mmsys CLK_MMCG1_P2I>,
<&topckgen CLK_TOP_OSDPLL_D3AB>;
clock-names = "hdmi_cec",
"hd_sel",
"sd_sel",
"txpxlclk",
"txpxlckd6",
"hdmi_pxd3",
"hdmi_hdcp",
"hdmi_hdcp24",
"hd20_dacrsel",
"hd20_hdcpsel",
"hdmi_apbsel",
"hdmi_sel",
"hdmi_rgb2hdmien",
"hdmi_sdppf",
"hdmi_p2i",
"hdmi_osdpll";
interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
status = "okay";
};
earc_rx_codec: earc-receiver@1a001000 {
compatible = "mediatek,earc-rx";
reg = <0 0x1a001000 0 0x1000>, /* EARC RX Digital */
<0 0x11f30000 0 0x100>, /* EARC RX Analog */
<0 0x1a000000 0 0x1000>, /* HDMI Tx Digital */
<0 0x10005000 0 0x2000>, /* EARC Monitor */
<0 0x11220000 0 0x1000>; /* EARC Audio */
clocks = <&topckgen CLK_TOP_HDMI_APB_SEL>;
clock-names = "hdmi_apb_sel";
earcrx-gpios = <&pio 64 0>;
interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
status = "okay";
};
display-pm-mm-top {
compatible = "mediatek,mt8696-disp-clk";
mediatek,pm_type = <0>;
power-domains = <&scpsys MT8696_POWER_DOMAIN_MMSYS_TOP>;
clocks = <&apmixedsys CLK_APMIXED_TVDPLL>,
<&topckgen CLK_TOP_TVDPLL_D2>,
<&apmixedsys CLK_APMIXED_OSDPLL>,
<&topckgen CLK_TOP_OSDPLL_D2>,
<&topckgen CLK_TOP_OSDPLL_D4>,
<&topckgen CLK_TOP_HD_SEL>,
<&topckgen CLK_TOP_SD_SEL>,
<&topckgen CLK_TOP_OSD_SEL>,
<&topckgen CLK_TOP_VDO3_SEL>,
<&topckgen CLK_TOP_VDO4_SEL>,
<&clk26m>,
<&mmsys CLK_MMCG10_VDOUT_MM>,
<&mmsys CLK_MMCG25_DGI>,
<&mmsys CLK_MMCG3_FAKEG>,
<&mmsys CLK_MMCG13_FMTTER>,
<&mmsys CLK_MMCG16_OF>,
<&mmsys CLK_MMCG15_OSD_FBDC>,
<&mmsys CLK_MMCG19_OF_SI2MI>,
<&mmsys CLK_MMCG17_OF_FIFO>,
<&mmsys CLK_MMCG18_OF_HDR>,
<&mmsys CLK_MMCG20_HDR_ADL>,
<&mmsys CLK_MMCG14_DISP_MIX>,
<&mmsys CLK_MMCG22_HDR_VDO>,
<&mmsys CLK_MMCG21_HDR_FIFO>,
<&topckgen CLK_TOP_HDMITX_PIXEL>,
<&topckgen CLK_TOP_HDMITX_PIXEL_D2>;
clock-names = "tvdpll",
"tvdpll_d2",
"osdpll",
"osdpll_d2",
"osdpll_d4",
"hd_sel",
"sd_sel",
"osd_sel",
"vdo3_sel",
"vdo4_sel",
"clk26m",
"vdout_sys",
"dgi",
"fake_eng",
"fmt_tg",
"osd_fhd",
"osd_fbdc",
"osd_fhd_sim2miu",
"fhd_gfx_fe_fifo",
"fhd_hdr_gfx_fe",
"hdr_adl",
"disp_mix",
"hdr_vdo_be",
"hdr_be_fifo",
"hdmi_tx_pixel",
"hdmi_tx_pixel_d2";
};
display-pm-mm-com {
compatible = "mediatek,mt8696-disp-clk";
mediatek,pm_type = <1>;
power-domains =
<&scpsys MT8696_POWER_DOMAIN_MMSYS_COMMON>;
clocks = <&mmsys CLK_MMCG3_HDMI_MD>,
<&mmsys CLK_MMCG5_W2D>,
<&mmsys CLK_MMCG1_P2I>,
<&mmsys CLK_MMCG0_SD_PPF>,
<&mmsys CLK_MMCG4_VIDEO_IN>,
<&mmsys CLK_MMCG2_VM_TOP>;
clock-names = "hdmi_metadata",
"w2d",
"p2i",
"sdppf",
"vdoin",
"vm";
};
display-pm-osd-uhd {
compatible = "mediatek,mt8696-disp-clk";
mediatek,pm_type = <2>;
power-domains = <&scpsys MT8696_POWER_DOMAIN_OSD_UHD>;
clocks = <&mmsys CLK_MMCG7_OU>,
<&mmsys CLK_MMCG8_OU_FIFO>,
<&mmsys CLK_MMCG9_OU_HDR>;
clock-names = "osd_uhd",
"uhd_gfx_fe_fifo",
"uhd_hdr_gfx_fe";
};
display-pm-disp-m {
compatible = "mediatek,mt8696-disp-clk";
mediatek,pm_type = <3>;
power-domains = <&scpsys MT8696_POWER_DOMAIN_DISP_MAIN>;
clocks = <&dispsys CLK_IMG_VDO3>,
<&dispsys CLK_IMG_DISPFMT3>,
<&dispsys CLK_IMG_MVDO_FIFO>,
<&dispsys CLK_IMG_MFILM_GRAIN>,
<&dispsys CLK_IMG_MHDR_VDO_FE>,
<&dispsys CLK_IMG_MVDO_FE_ADL>,
<&dispsys CLK_IMG_R2R>;
clock-names = "vdo3",
"dispfmt3",
"m_vdo_fe_fifo",
"m_film_grain",
"m_hdr_vdo_fe",
"m_vdo_fe_adl",
"r2r";
};
display-pm-disp-s {
compatible = "mediatek,mt8696-disp-clk";
mediatek,pm_type = <4>;
power-domains = <&scpsys MT8696_POWER_DOMAIN_DISP_SUB>;
clocks = <&dispsys CLK_IMG_VDO4>,
<&dispsys CLK_IMG_DISPFMT4>,
<&dispsys CLK_IMG_SVDO_FIFO>,
<&dispsys CLK_IMG_SFILMGRAIN>,
<&dispsys CLK_IMG_SHDR_VDO_FE>;
clock-names = "vdo4",
"dispfmt4",
"s_vdo_fe_fifo",
"s_film_grain",
"s_hdr_vdo_fe";
};
gpio_keys: gpio_keys {
compatible = "gpio-keys";
};
ion: ion {
compatible = "mediatek,ion";
iommus = <&iommu M4U_PORT_IMG_WR_REQ>;
};
mfg_async: mfg_async {
compatible = "mediatek,mt8696-mfg-async";
power-domains = <&scpsys MT8696_POWER_DOMAIN_MFG>;
};
mfg_2d: mfg_2d {
compatible = "mediatek,mt8696-mfg-2d";
power-domains = <&scpsys MT8696_POWER_DOMAIN_MFG2>;
};
mfg_3d: mfg_3d {
compatible = "mediatek,mt8696-mfg-3d";
power-domains = <&scpsys MT8696_POWER_DOMAIN_MFG3>;
};
disp_mgr: disp_mgr {
compatible = "mediatek,mt8696-dispmgr";
iommus = <&iommu M4U_PORT_UHD_OSD_HEADER>,
<&iommu M4U_PORT_UHD_OSD>,
<&iommu M4U_PORT_UHD_HDR_GFX_FE_ADL>,
<&iommu M4U_PORT_DISP_FAKE0>,
<&iommu M4U_PORT_FHD_OSD_HEADER>,
<&iommu M4U_PORT_FHD_OSD>,
<&iommu M4U_PORT_VIDEO_IN_CH0>,
<&iommu M4U_PORT_VIDEO_IN_CH1>,
<&iommu M4U_PORT_VIDEO_IN_CH2>,
<&iommu M4U_PORT_W2D_CH0>,
<&iommu M4U_PORT_W2D_CH1>,
<&iommu M4U_PORT_W2D_CH2>,
<&iommu M4U_PORT_HDR_VDO_BE_ADL>,
<&iommu M4U_PORT_HDR_VDO_BE_ML>,
<&iommu M4U_PORT_DISP_FAKE4>,
<&iommu M4U_PORT_VDO3_UFOD_Y_LENGTH>,
<&iommu M4U_PORT_VDO3_UFOD_C_LENGTH>,
<&iommu M4U_PORT_VDO3_UFOD_Y0>,
<&iommu M4U_PORT_VDO3_UFOD_Y2>,
<&iommu M4U_PORT_VDO3_UFOD_C1>,
<&iommu M4U_PORT_VDO3_UFOD_C3>,
<&iommu M4U_PORT_VDO4_UFOD_C0>,
<&iommu M4U_PORT_VDO4_UFOD_Y1>,
<&iommu M4U_PORT_R2R_Y>,
<&iommu M4U_PORT_IMG_UFO_REQ>,
<&iommu M4U_PORT_IMG_LEN_REQ>,
<&iommu M4U_PORT_IMG_WR_REQ>,
<&iommu M4U_PORT_M_VDO_ADL>,
<&iommu M4U_PORT_M_VDO_ML>,
<&iommu M4U_PORT_DISP_FAKE5>,
<&iommu M4U_PORT_VDO4_UFOD_Y_LENGTH>,
<&iommu M4U_PORT_VDO4_UFOD_C_LENGTH>,
<&iommu M4U_PORT_VDO4_UFOD_Y0>,
<&iommu M4U_PORT_VDO4_UFOD_C1>,
<&iommu M4U_PORT_VDO3_UFOD_Y1>,
<&iommu M4U_PORT_VDO3_UFOD_Y3>,
<&iommu M4U_PORT_VDO3_UFOD_C0>,
<&iommu M4U_PORT_VDO3_UFOD_C2>,
<&iommu M4U_PORT_R2R_C>,
<&iommu M4U_PORT_R2R_CC>,
<&iommu M4U_PORT_IMG_UFO_REQ_CH2>,
<&iommu M4U_PORT_IMG_LEN_REQ_CH2>,
<&iommu M4U_PORT_IMG_WR_REQ_CH2>,
<&iommu M4U_PORT_IRT_DMA_RW>,
<&iommu M4U_PORT_S_VDO_ADL>,
<&iommu M4U_PORT_S_VDO_ML>,
<&iommu M4U_PORT_DISP_FAKE6>;
mediatek,larb = <&larb0>,
<&larb4>,
<&larb5>,
<&larb6>;
mboxes = <&gce_mbox 4 0xffffffff 1>,
<&gce_mbox 5 0xffffffff 4>,
<&gce_mbox 0 0 4>;
};
stc: stc {
compatible = "mediatek,gpt-stc";
};
pwmleds: pwmleds {
compatible = "pwm-leds";
yellow_led {
label = "yellow_led";
pwms = <&pwm1 0 12300>;
pwm-names = "pwm0";
max-brightness = <2047>;
};
white_led {
label = "white_led";
pwms = <&pwm1 1 12300>;
pwm-names = "pwm1";
max-brightness = <2047>;
};
};
};
mtee {
compatible = "mediatek,mtee";
memory-region = <&secure_carveout>;
};
odm: odm {
compatible = "simple-bus";
/* reserved for overlay by odm */
};
optee {
compatible = "linaro,optee-tz";
method = "smc";
gcpu {
clocks = <&topckgen CLK_TOP_GCPU_SEL>;
};
};
clkao: clkao {
compatible = "simple-bus";
};
disable_unused: disable_unused {
compatible = "simple-bus";
};
lastpc: lastpc {
compatible = "mediatek,lastpc";
};
dfd: dfd {
compatible = "mediatek,dfd";
mediatek,enabled = <1>;
mediatek,chain_length = <0x54e8>;
mediatek,rg_dfd_timeout = <0xa0>;
mediatek,check_dfd_support = <1>;
};
dfd_cache: dfd_cache {
compatible = "mediatek,dfd_cache";
enabled = <0>;
rg_dfd_timeout = <0x5dc0>;
};
thermal_zones: thermal-zones {
soc_max {
polling-delay = <500>; /* milliseconds */
polling-delay-passive = <200>; /* milliseconds */
thermal-sensors = <&thermal 255>;
sustainable-power = <1300>;
trips {
threshold: trip-point@0 {
temperature = <68000>;
hysteresis = <2000>;
type = "passive";
};
target: target@1 {
temperature = <85000>;
hysteresis = <2000>;
type = "passive";
};
soc_max_crit: soc-max-crit@0 {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&target>;
cooling-device = <&cpu0
THERMAL_NO_LIMIT
THERMAL_NO_LIMIT>;
contribution = <3072>;
};
map1 {
trip = <&target>;
cooling-device = <&clovelly
THERMAL_NO_LIMIT
THERMAL_NO_LIMIT>;
contribution = <2048>;
};
};
};
cpu-little0 {
polling-delay = <1000>; /* milliseconds */
polling-delay-passive = <1000>; /* milliseconds */
thermal-sensors = <&thermal 0>;
trips {
cpu_little0_crit: cpu-little0-crit@0 {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
};
};
MFG-TEMP {
polling-delay = <1000>; /* milliseconds */
polling-delay-passive = <1000>; /* milliseconds */
thermal-sensors = <&thermal 1>;
trips {
mfg_crit: mfg-crit@0 {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
};
};
MMSYS-TEMP {
polling-delay = <1000>; /* milliseconds */
polling-delay-passive = <1000>; /* milliseconds */
thermal-sensors = <&thermal 2>;
trips {
mmsys_crit: mmsys-crit@0 {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-little1 {
polling-delay = <1000>; /* milliseconds */
polling-delay-passive = <1000>; /* milliseconds */
thermal-sensors = <&thermal 3>;
trips {
cpu_little1_crit: cpu-little1-crit@0 {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-little2 {
polling-delay = <1000>; /* milliseconds */
polling-delay-passive = <1000>; /* milliseconds */
thermal-sensors = <&thermal 4>;
trips {
cpu_little2_crit: cpu-little2-crit@0 {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
};
};
cpu-little3 {
polling-delay = <1000>; /* milliseconds */
polling-delay-passive = <1000>; /* milliseconds */
thermal-sensors = <&thermal 5>;
trips {
cpu_little3_crit: cpu-little3-crit@0 {
temperature = <105000>;
hysteresis = <2000>;
type = "critical";
};
};
};
};
met {
met_emi: met_emi {
compatible = "mediatek,met_emi";
emi-num = <1>;
dram-num = <2>;
dramc-ver = <2>;
/* 0: dram ebg, 1:emi_freq, 2: DRAMC_DCM_CTRL */
/* 3:chn_emi_low_effi 4: SLC */
met-emi-support-list = <0x4>;
cen-emi-reg-base = <0x10203000>;
cen-emi-reg-size = <0x1000>;
chn-emi-reg-base = <0x10107000 0x10117000>;
chn-emi-reg-size = <0xa8c>;
dramc-nao-reg-base = <0x10106000 0x10116000>;
dramc-nao-reg-size = <0x7fc>;
dramc-ao-reg-base = <0x10104000 0x10114000>;
dramc-ao-reg-size = <0x950>;
ddrphy-ao-reg-base = <0x10100000 0x10110000>;
ddrphy-ao-reg-size = <0x391c>;
ddrphy-ao-misc-cg-ctrl0 = <0x284>;
ddrphy-ao-misc-cg-ctrl2 = <0x28c>;
dram-freq-default = <3200>;
ddr-ratio-default = <8>;
dram-type-default = <5>;
apmixedsys-reg-base = <0x1000c000>;
apmixedsys-reg-size = <0x908>;
slc-pmu-reg-base = <0x10342000 0x10343000>;
slc-pmu-reg-size = <0x1000>;
};
met-res-ram {
compatible = "mediatek,met_res_ram";
met-res-ram-sspm {
size = <0x400000>; /* 4M: only reserve on userdebug/eng load */
start = <0x0>; /* start addr of reserved ram*/
};
met-res-ram-mcupm {
size = <0x400000>; /* 4M: only reserve on userdebug/eng load */
start = <0x0>; /* start addr of reserved ram*/
};
met-res-ram-gpueb {
size = <0x400000>; /* 4M: only reserve on userdebug/eng load */
start = <0x0>; /* start addr of reserved ram*/
};
};
mcupm_rts_header:mcupm-rts-header {
node-0 = "MCUPM_MET_UNIT_TEST", "test";
node-1 = "__MCUPM_MET_L3CTL__", "op_policy,ct_portion,nct_portion,\
cpuqos_mode,dnth0,dnth1,upth0,upth1,\
hit0,hit1,hit2,hit3,mis0,mis1,mis2,mis3,\
l3_hit,l3_mis,pmu_cyc_cnt";
node-2 = "__MCUPM_MET_TEST__", "taskId,isrId,dvfs";
};
sspm_rts_header:sspm-rts-header {
node-0 = "SSPM_PTPOD",
"_id,voltage";
node-1 = "SSPM_MET_UNIT_TEST",
"test";
node-2 = "SSPM_QOS_BOUND_STATE",
"ver,apu_num,idx,state,num,event,emibw_mon_total,",
"emibw_mon_cpu,emibw_mon_gpu,emibw_mon_mm,",
"emibw_mon_md,smibw_mon_gpu,smibw_mon_apu,",
"apubw_mon_vpu0,apubw_mon_vpu1,apubw_mon_mdla0,",
"apubw_mon_mdla1,apubw_mon_mdla2,apubw_mon_mdla3,",
"apubw_mon_edma0,apubw_mon_edma1,",
"apulat_mon_vpu0,apulat_mon_vpu1,apulat_mon_mdla0,",
"apulat_mon_mdla1,apulat_mon_mdla2,apulat_mon_mdla3,",
"apulat_mon_edma0,apulat_mon_edma1";
node-3 = "SSPM_CM_MGR_NON_WFX",
"non_wfx_0,non_wfx_1,non_wfx_2,non_wfx_3,",
"non_wfx_4,non_wfx_5,non_wfx_6,non_wfx_7";
node-4 = "SSPM_CM_MGR_LOADING",
"ratio,cps";
node-5 = "SSPM_CM_MGR_POWER",
"c_up_array_0,c_up_array_1,c_up_array_2,c_down_array_0,c_down_array_1,",
"c_down_array_2,c_up_0,c_up_1,c_up_2,c_down_0,c_down_1,c_down_2,c_up,",
"c_down,v_up,v_down,v2f_0,v2f_1,v2f_2";
node-6 = "SSPM_CM_MGR_OPP",
"v_dram_opp,v_dram_opp_cur,c_opp_cur_0,c_opp_cur_1,c_opp_cur_2,d_times_up,",
"d_times_down";
node-7 = "SSPM_CM_MGR_RATIO",
"ratio_0,ratio_1,ratio_2,ratio_3,ratio_4,",
"ratio_5,ratio_6,ratio_7";
node-8 = "SSPM_CM_MGR_BW",
"total_bw";
node-9 = "SSPM_CM_MGR_CP_RATIO",
"up0,up1,up2,up3,up4,up5,down0,down1,down2,down3,down4,down5";
node-10 = "SSPM_CM_MGR_VP_RATIO",
"up0,up1,up2,up3,up4,up5,down0,down1,down2,down3,down4,down5";
node-11 = "SSPM_CM_MGR_DE_TIMES",
"up0,up1,up2,up3,up4,up5,down0,down1,down2,down3,down4,down5,reset";
node-12 = "SSPM_CM_MGR_DSU_DVFS_PWR",
"up_L,up_B,up_BB,up_DSU,cur_L,cur_B,cur_BB,cur_DSU,down_L,down_B,",
"down_BB,down_DSU,total_up,total_cur,total_down";
node-13 = "SSPM_CM_MGR_DSU_DVFS_ACT_STALL_PWR",
"up_L_a,up_B_a,up_BB_a,cur_L_a,cur_B_a,",
"cur_BB_a,down_L_a,down_B_a,down_BB_a,",
"up_L_s,up_B_s,up_BB_s,cur_L_s,cur_B_s,",
"cur_BB_s,down_L_s,down_B_s,down_BB_s";
node-14 = "SSPM_CM_MGR_DSU_DVFS_STALL",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7,l3_bw_val";
node-15 = "SSPM_CM_MGR_DSU_DVFS_ACTIVE",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-16 = "SSPM_CM_MGR_DSU_DVFS_OPP",
"map_opp_50,map_opp_70,final,",
"orig,L3_vote_opp,debounce_up,debounce_down";
node-17 = "SSPM_CM_MGR_DSU_DVFS_THRESHOLD_FLAG",
"up_L,up_B,up_BB,down_L,down_B,down_BB,",
"up_L_flag,up_B_flag,up_BB_flag,",
"down_L_flag,down_B_flag,down_BB_flag";
node-18 = "SSPM_SWPM_CPU__CORE_ACTIVE_RATIO",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-19 = "SSPM_SWPM_CPU__CORE_IDLE_RATIO",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-20 = "SSPM_SWPM_CPU__CORE_OFF_RATIO",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-21 = "SSPM_SWPM_CPU__CORE_STALL_RATIO",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-22 = "SSPM_SWPM_CPU__CORE_PMU_L3DC",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-23 = "SSPM_SWPM_CPU__CORE_PMU_INST_SPEC",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-24 = "SSPM_SWPM_CPU__CORE_PMU_CYCLES",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-25 = "SSPM_SWPM_CPU__CORE_NON_WFX_CTR",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-26 = "SSPM_SWPM_CPU__DSU_STATE_RATIO",
"active,idle,dormant,off";
node-27 = "SSPM_SWPM_CPU__DSU_L3_BW",
"L3_BW";
node-28 = "SSPM_SWPM_CPU__MCUSYS_STATE_RATIO",
"active,idle,off";
node-29 = "SSPM_SWPM_CPU__MCUSYS_EMI_BW",
"cpu_emi_bw";
node-30 = "SSPM_SWPM_CPU__DVFS",
"vproc3,vproc2,vproc1,cpuL_freq,cpuBL_freq,cpuB_freq,cpu_L_opp,",
"cpu_BL_opp,cpu_B_opp,cci_volt,cci_freq,cci_opp";
node-31 = "SSPM_SWPM_CPU__LKG_POWER",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7,dsu";
node-32 = "SSPM_SWPM_CPU__POWER",
"cpu_L,cpu_B,cpu_BB,dsu,mcusys";
node-33 = "SSPM_SWPM_GPU__GPU_STATE_RATIO",
"active,idle,off";
node-34 = "SSPM_SWPM_GPU__LOADING",
"top_loading,stack_loading";
node-35 = "SSPM_SWPM_GPU__DVFS",
"top_freq,stack_freq,vgpu,vcore,mtcmos";
node-36 = "SSPM_SWPM_GPU__URATE",
"alu_fma,alu_cvt,alu_sfu,tex,lsc,l2c,vary,tiler,rast";
node-37 = "SSPM_SWPM_GPU__THERMAL",
"thermal,top_lkg,stack_lkg";
node-38 = "SSPM_SWPM_GPU__COUNTER",
"GPU_ACTIVE,EXEC_CORE_ACTIVE,EXEC_INSTR_FMA,EXEC_INSTR_CVT,EXEC_INSTR_SFU,",
"TEX,VARY_SLOT,L20,L21,L22,L23";
node-39 = "SSPM_SWPM_GPU__POWER",
"gpu";
node-40 = "SSPM_SWPM_CORE__CAM_STATE_RATIO",
"RAW_A_active,RAW_B_active,RAW_C_active,idle,off";
node-41 = "SSPM_SWPM_CORE__IMG_STATE_RATIO",
"P2_active,P2_idle,MFB_active,WPE_active,off";
node-42 = "SSPM_SWPM_CORE__IPE_STATE_RATIO",
"FDVT_active,DVP_active,DVS_active,DV_idle,off";
node-43 = "SSPM_SWPM_CORE__MDP_STATE_RATIO",
"active,off";
node-44 = "SSPM_SWPM_CORE__DISP_STATE_RATIO",
"active,off";
node-45 = "SSPM_SWPM_CORE__ADSP_STATE_RATIO",
"active,off";
node-46 = "SSPM_SWPM_CORE__VENC_STATE_RATIO",
"active,idle,off";
node-47 = "SSPM_SWPM_CORE__VDEC_STATE_RATIO",
"active,idle,off";
node-48 = "SSPM_SWPM_CORE__INFRA_STATE_RATIO",
"dact,cact,idle,dcm";
node-49 = "SSPM_SWPM_CORE__VDO_CODING_TYPE",
"venc,vdec";
node-50 = "SSPM_SWPM_CORE__DVFS",
"vcore,ddr_freq";
node-51 = "SSPM_SWPM_CORE__POWER",
"dramc,infra_top,aphy_vcore";
node-52 = "SSPM_SWPM_CORE__LKG_POWER",
"infra_top,dramc,thermal";
node-53 = "SSPM_SWPM_DRAM__MEM_IDX",
"read_bw_0,read_bw_1,write_bw_0,write_bw_1,",
"srr_pct,ssr_pct,pdir_pct_0,pdir_pct_1,",
"phr_pct_0,phr_pct_1,acc_util_0,acc_util_1,",
"trans_0,trans_1,mr4,ddr_freq";
node-54 = "SSPM_SWPM_DRAM__DVFS",
"ddr_freq";
node-55 = "SSPM_SWPM_DRAM__POWER",
"aphy_vddq_0p6v,aphy_vm_0p75v,aphy_vio_1p2v,dram_vddq_0p6v,",
"dram_vdd2l_0p9v,dram_vdd2h_1p05v,dram_vdd1_1p8v";
node-56 = "SSPM_SWPM_ME__POWER",
"disp,mdp,venc,vdec";
node-57 = "SSPM_SWPM_ME__IDX",
"vdec_fps,venc_fps,disp_fps,disp_resolution";
node-58 = "SSPM_SWPM_VPU__VPU0_STATE_RATIO",
"active,idle,off";
node-59 = "SSPM_SWPM_VPU__VPU1_STATE_RATIO",
"active,idle,off";
node-60 = "__SSPM_GPU_APU_SSC_CNT__",
"N_APU_0_R,N_APU_0_W,N_GPU_0_R,N_GPU_0_W,",
"N_APU_1_R,N_APU_1_W,N_GPU_1_R,",
"N_GPU_1_W,S_APU_0_R,S_APU_0_W,S_GPU_0_R,",
"S_GPU_0_W,S_APU_1_R,S_APU_1_W,",
"S_GPU_1_R,S_GPU_1_W";
node-61 = "SSPM_SLBC_SLOT",
"enable,force,done,buffer_used,f_buffer,cached_used,force_size";
node-62 = "SSPM_SLBC_REF",
"venc,sh_p2,sh_apu,mml,ainr,disp,aov_dc,aov_apu,aisr_apu,",
"aisr_mml,sh_p1,smt,apu,aod,bif";
node-63 = "SSPM_SLBC_BW",
"mm,apu,mm_est";
node-64 = "SSPM_SLBC_PMU",
"hit,miss,apu_r,apu_w,mm_r,mm_w";
node-65 = "SSPM_SLBC_WAY",
"venc,hifi3,sh_p2,sh_apu,mml,ainr,disp,slb,cpu,gpu,slc,left";
node-66 = "SSPM_SWPM_CPU__DSU_PMU",
"dsu_cycles";
node-67 = "SSPM_SWPM_CPU__CORE_TEMP",
"cpu0,cpu1,cpu2,cpu3,cpu4,cpu5,cpu6,cpu7";
node-68 = "SSPM_SWPM_SOC__SMAP",
"i2max,imax";
node-69 = "SSPM_SWPM_CPU__PMU_TIMES",
"idx_cnt,lock,idx_rechk,lock_rechk,valid,off_hint,diff_us";
node-70 = "SSPM_SWPM_CORE__STATE_IDX",
"diff_us,wact_0,wact_1,data_rate,ddr_ratio,emi_freq,",
"bcnt_0,bcnt_1,dcm_ctrl_0,dcm_ctrl_1";
node-71 = "SSPM_SPM_RES__DDREN_REQ",
"mcu,mcupm,disp0,disp1,adsp,ufs,gce,infra,peri,md,scp,sspm,emi";
node-72 = "SSPM_SPM_RES__APSRC_REQ",
"mcu,mcupm,md,scp,sspm";
node-73 = "SSPM_SPM_DBG__PWR_OFF",
"dsu,mcu,gpu,venc,vdec,mdp,disp,cam,img,mmup,mminfra";
node-74 = "SSPM_SPM_DBG__PWR_ACT",
"scp,adsp";
node-75 = "SSPM_SPM_DBG__SYS_STA",
"s0,s1";
};
};
};
#include "mediatek/mt8696-clkao.dtsi"
#include "mediatek/mt8696-disable-unused.dtsi"