/*
 * Copyright (c) 2020 MediaTek Inc.
 * Author: Sam.Shih <sam.shih@mediatek.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/phy/phy.h>
#include <dt-bindings/reset/ti-syscon.h>
#include <dt-bindings/clock/mt7986-clk.h>
#include <dt-bindings/thermal/thermal.h>
#include <dt-bindings/pinctrl/mt65xx.h>
#include <dt-bindings/reset/mt7986-resets.h>

/ {
	compatible = "mediatek,mt7986b-rfb";
	interrupt-parent = <&gic>;
	#address-cells = <2>;
	#size-cells = <2>;
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			enable-method = "psci";
			reg = <0x0>;
		};

		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			enable-method = "psci";
			reg = <0x1>;
		};

		cpu2: cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a53";
			enable-method = "psci";
			reg = <0x2>;
		};

		cpu3: cpu@3 {
			device_type = "cpu";
			enable-method = "psci";
			compatible = "arm,cortex-a53";
			reg = <0x3>;
		};
	};

	wed: wed@15010000 {
		compatible = "mediatek,wed";
		wed_num = <2>;
		/* add this property for wed get the pci slot number. */
		pci_slot_map = <0>, <1>;
		reg = <0 0x15010000 0 0x1000>,
		      <0 0x15011000 0 0x1000>;
		interrupt-parent = <&gic>;
		interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
	};

	wed2: wed2@15011000 {
		compatible = "mediatek,wed2";
		wed_num = <2>;
		reg = <0 0x15010000 0 0x1000>,
		      <0 0x15011000 0 0x1000>;
		interrupt-parent = <&gic>;
		interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
	};

	wdma: wdma@15104800 {
		compatible = "mediatek,wed-wdma";
		reg = <0 0x15104800 0 0x400>,
		      <0 0x15104c00 0 0x400>;
	};

	ap2woccif: ap2woccif@151A5000 {
		compatible = "mediatek,ap2woccif";
		reg = <0 0x151A5000 0 0x1000>,
		      <0 0x151AD000 0 0x1000>;
		interrupt-parent = <&gic>;
		interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
        };

	wocpu0_ilm: wocpu0_ilm@151E0000 {
		compatible = "mediatek,wocpu0_ilm";
		reg = <0 0x151E0000 0 0x8000>;
	};

        wocpu1_ilm: wocpu1_ilm@151F0000 {
                compatible = "mediatek,wocpu1_ilm";
                reg = <0 0x151F0000 0 0x8000>;
        };

	wocpu_dlm: wocpu_dlm@151E8000 {
		compatible = "mediatek,wocpu_dlm";
		reg = <0 0x151E8000 0 0x2000>,
		      <0 0x151F8000 0 0x2000>;

		resets = <&ethsysrst 0>;
		reset-names = "wocpu_rst";
	};

	cpu_boot: wocpu_boot@15194000 {
		compatible = "mediatek,wocpu_boot";
		reg = <0 0x15194000 0 0x1000>;
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		/* 512 KiB reserved for ARM Trusted Firmware (BL31 + BL32) */
		secmon_reserved: secmon@43000000 {
			reg = <0 0x43000000 0 0x80000>;
			no-map;
		};

		wmcpu_emi: wmcpu-reserved@4FC00000 {
			compatible = "mediatek,wmcpu-reserved";
			no-map;
			reg = <0 0x4FC00000 0 0x00100000>;
		};

		wocpu0_emi: wocpu0_emi@4FD00000 {
			compatible = "mediatek,wocpu0_emi";
			no-map;
			reg = <0 0x4FD00000 0 0x40000>;
			shared = <0>;
		};

		wocpu1_emi: wocpu1_emi@4FD40000 {
			compatible = "mediatek,wocpu1_emi";
			no-map;
			reg = <0 0x4FD40000 0 0x40000>;
			shared = <0>;
		};

		wocpu_data: wocpu_data@4FD80000 {
			compatible = "mediatek,wocpu_data";
			no-map;
			reg = <0 0x4FD80000 0 0x240000>;
			shared = <1>;
		};
	};

	psci {
		compatible  = "arm,psci-0.2";
		method      = "smc";
	};

	clk40m: oscillator@0 {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <40000000>;
		clock-output-names = "clkxtal";
	};

	system_clk: dummy_system_clk {
		compatible = "fixed-clock";
		clock-frequency = <40000000>;
		#clock-cells = <0>;
	};

	timer {
		compatible = "arm,armv8-timer";
		interrupt-parent = <&gic>;
		clock-frequency = <12986200>;
		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
	};

	infracfg_ao: infracfg_ao@10001000 {
		compatible = "mediatek,mt7986-infracfg_ao", "syscon";
		reg = <0 0x10001000 0 0x68>;
		#clock-cells = <1>;
	};

	infracfg: infracfg@10001040 {
		compatible = "mediatek,mt7986-infracfg", "syscon";
		reg = <0 0x1000106c 0 0x1000>;
		#clock-cells = <1>;
	};

	topckgen: topckgen@1001B000 {
		compatible = "mediatek,mt7986-topckgen", "syscon";
		reg = <0 0x1001B000 0 0x1000>;
		#clock-cells = <1>;
	};

	apmixedsys: apmixedsys@1001E000 {
		compatible = "mediatek,mt7986-apmixedsys", "syscon";
		reg = <0 0x1001E000 0 0x1000>;
		#clock-cells = <1>;
	};

	watchdog: watchdog@1001c000 {
		compatible = "mediatek,mt7986-wdt";
		reg = <0 0x1001c000 0 0x1000>;
		interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
		#reset-cells = <1>;
	};

	gic: interrupt-controller@c000000 {
		compatible = "arm,gic-v3";
		#interrupt-cells = <3>;
		interrupt-parent = <&gic>;
		interrupt-controller;
		reg = <0 0x0c000000 0 0x40000>,  /* GICD */
		      <0 0x0c080000 0 0x200000>; /* GICR */

		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
	};

	pwm: pwm@10048000 {
		compatible = "mediatek,mt7986-pwm";
		reg = <0 0x10048000 0 0x1000>;
		#pwm-cells = <2>;
		interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&infracfg CK_INFRA_PWM>,
			 <&infracfg_ao CK_INFRA_PWM_BSEL>,
			 <&infracfg_ao CK_INFRA_PWM1_CK>,
			 <&infracfg_ao CK_INFRA_PWM2_CK>;
		assigned-clocks = <&topckgen CK_TOP_PWM_SEL>,
				  <&infracfg_ao CK_INFRA_PWM_BSEL>,
				  <&infracfg_ao CK_INFRA_PWM1_SEL>,
				  <&infracfg_ao CK_INFRA_PWM2_SEL>;
		assigned-clock-parents = <&topckgen CK_TOP_CB_M_D4>,
					 <&infracfg CK_INFRA_PWM>,
					 <&infracfg CK_INFRA_PWM>,
					 <&infracfg CK_INFRA_PWM>;
		clock-names = "top", "main", "pwm1", "pwm2";
		status = "disabled";
	};

	uart0: serial@11002000 {
		compatible = "mediatek,mt7986-uart",
			     "mediatek,mt6577-uart";
		reg = <0 0x11002000 0 0x400>;
		interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&infracfg_ao CK_INFRA_UART0_CK>;
		assigned-clocks = <&topckgen CK_TOP_UART_SEL>,
				  <&infracfg_ao CK_INFRA_UART0_SEL>;
		assigned-clock-parents = <&topckgen CK_TOP_CB_CKSQ_40M>,
					 <&infracfg CK_INFRA_UART>;
		status = "disabled";
	};

	uart1: serial@11003000 {
		compatible = "mediatek,mt7986-uart",
			     "mediatek,mt6577-uart";
		reg = <0 0x11003000 0 0x400>;
		interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&infracfg_ao CK_INFRA_UART1_CK>;
		assigned-clocks = <&infracfg_ao CK_INFRA_UART1_SEL>;
		assigned-clock-parents = <&infracfg CK_INFRA_CK_F26M>;
		status = "disabled";
	};

	uart2: serial@11004000 {
		compatible = "mediatek,mt7986-uart",
			     "mediatek,mt6577-uart";
		reg = <0 0x11004000 0 0x400>;
		interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&infracfg_ao CK_INFRA_UART2_CK>;
		assigned-clocks = <&infracfg_ao CK_INFRA_UART2_SEL>;
		assigned-clock-parents = <&infracfg CK_INFRA_CK_F26M>;
		status = "disabled";
	};

        i2c0: i2c@11008000 {
                compatible = "mediatek,mt7986-i2c";
                reg = <0 0x11008000 0 0x90>,
                      <0 0x10217080 0 0x80>;
                interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
                clock-div = <5>;
                clocks = <&infracfg_ao CK_INFRA_I2CO_CK>,
                         <&infracfg_ao CK_INFRA_AP_DMA_CK>;
                clock-names = "main", "dma";
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
        };

	thermal-zones {
		cpu_thermal: cpu-thermal {
			polling-delay-passive = <1000>;
			polling-delay = <1000>;
			thermal-sensors = <&thermal 0>;
		};
	};

	thermal: thermal@1100c800 {
		#thermal-sensor-cells = <1>;
		compatible = "mediatek,mt7986-thermal";
		reg = <0 0x1100c800 0 0x800>;
		interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&infracfg_ao CK_INFRA_THERM_CK>,
			 <&infracfg_ao CK_INFRA_ADC_26M_CK>,
			 <&infracfg_ao CK_INFRA_ADC_FRC_CK>;
		clock-names = "therm", "auxadc", "adc_32k";
		mediatek,auxadc = <&auxadc>;
		mediatek,apmixedsys = <&apmixedsys>;
		nvmem-cells = <&thermal_calibration>;
		nvmem-cell-names = "calibration-data";
	};

	crypto: crypto@10320000 {
		compatible = "inside-secure,safexcel-eip97";
		reg = <0 0x10320000 0 0x40000>;
		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "ring0", "ring1", "ring2", "ring3";
		clocks = <&infracfg_ao CK_INFRA_EIP97_CK>;
		clock-names = "infra_eip97_ck";
		assigned-clocks = <&topckgen CK_TOP_EIP_B_SEL>;
		assigned-clock-parents = <&topckgen CK_TOP_CB_NET2_800M>;
	};

	pio: pinctrl@1001f000 {
		compatible = "mediatek,mt7986-pinctrl";
		reg = <0 0x1001f000 0 0x1000>,
		      <0 0x11c30000 0 0x1000>,
		      <0 0x11c40000 0 0x1000>,
		      <0 0x11e20000 0 0x1000>,
		      <0 0x11e30000 0 0x1000>,
		      <0 0x11f00000 0 0x1000>,
		      <0 0x11f10000 0 0x1000>,
		      <0 0x1000b000 0 0x1000>;
		reg-names = "gpio_base", "iocfg_rt_base", "iocfg_rb_base",
			    "iocfg_lt_base", "iocfg_lb_base", "iocfg_tr_base",
			    "iocfg_tl_base", "eint";
		gpio-controller;
		#gpio-cells = <2>;
		gpio-ranges = <&pio 0 0 100>;
		interrupt-controller;
		interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-parent = <&gic>;
		#interrupt-cells = <2>;
	};

	ethsys: syscon@15000000 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "mediatek,mt7986-ethsys_ck",
                             "syscon";
                reg = <0 0x15000000 0 0x1000>;
                #clock-cells = <1>;
                #reset-cells = <1>;

		ethsysrst: reset-controller {
			compatible = "ti,syscon-reset";
			#reset-cells = <1>;
			ti,reset-bits = <0x34 4 0x34 4 0x34 4 (ASSERT_SET | DEASSERT_CLEAR | STATUS_SET)>;
		};
        };

        eth: ethernet@15100000 {
                compatible = "mediatek,mt7986-eth";
                reg = <0 0x15100000 0 0x80000>;
		interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
			     <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&ethsys CK_ETH_FE_EN>,
                         <&ethsys CK_ETH_GP2_EN>,
                         <&ethsys CK_ETH_GP1_EN>,
                         <&ethsys CK_ETH_WOCPU1_EN>,
                         <&ethsys CK_ETH_WOCPU0_EN>,
                         <&sgmiisys0 CK_SGM0_TX_EN>,
                         <&sgmiisys0 CK_SGM0_RX_EN>,
                         <&sgmiisys0 CK_SGM0_CK0_EN>,
                         <&sgmiisys0 CK_SGM0_CDR_CK0_EN>,
                         <&sgmiisys1 CK_SGM1_TX_EN>,
                         <&sgmiisys1 CK_SGM1_RX_EN>,
                         <&sgmiisys1 CK_SGM1_CK1_EN>,
                         <&sgmiisys1 CK_SGM1_CDR_CK1_EN>;
                clock-names = "fe", "gp2", "gp1", "wocpu1", "wocpu0",
                         "sgmii_tx250m", "sgmii_rx250m",
                         "sgmii_cdr_ref", "sgmii_cdr_fb",
                         "sgmii2_tx250m", "sgmii2_rx250m",
                         "sgmii2_cdr_ref", "sgmii2_cdr_fb";
		assigned-clocks = <&topckgen CK_TOP_NETSYS_2X_SEL>,
				  <&topckgen CK_TOP_SGM_325M_SEL>;
		assigned-clock-parents = <&topckgen CK_TOP_CB_NET2_800M>,
					 <&topckgen CK_TOP_CB_SGM_325M>;
                mediatek,ethsys = <&ethsys>;
		mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>;
                #reset-cells = <1>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
        };

	hnat: hnat@15000000 {
		compatible = "mediatek,mtk-hnat_v4";
		reg = <0 0x15100000 0 0x80000>;
		resets = <&ethsys 0>;
		reset-names = "mtketh";
		status = "disabled";
	};

	sgmiisys0: syscon@10060000 {
		compatible = "mediatek,mt7986-sgmiisys",
				"mediatek,mt7986-sgmiisys_0",
				"syscon";
		reg = <0 0x10060000 0 0x1000>;
		#clock-cells = <1>;
	};

	sgmiisys1: syscon@10070000 {
		compatible = "mediatek,mt7986-sgmiisys",
				 "mediatek,mt7986-sgmiisys_1",
				 "syscon";
		reg = <0 0x10070000 0 0x1000>;
		#clock-cells = <1>;
	};

	snand: snfi@11005000 {
		compatible = "mediatek,mt7986-snand";
		reg = <0 0x11005000 0 0x1000>, <0 0x11006000 0 0x1000>;
		reg-names = "nfi", "ecc";
		interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&infracfg_ao CK_INFRA_SPINFI1_CK>,
			 <&infracfg_ao CK_INFRA_NFI1_CK>,
			 <&infracfg_ao CK_INFRA_NFI_HCK_CK>;
		clock-names = "pad_clk", "nfi_clk", "nfi_hclk";
		assigned-clocks = <&topckgen CK_TOP_SPINFI_SEL>,
			 	  <&topckgen CK_TOP_NFI1X_SEL>;
		assigned-clock-parents = <&topckgen CK_TOP_CB_M_D8>,
					 <&topckgen CK_TOP_CB_M_D8>;
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";
	};

	wbsys: wbsys@18000000 {
		compatible = "mediatek,wbsys",
			     "mediatek,mt7986-wmac";
		resets = <&watchdog MT7986_TOPRGU_CONSYS_RST>;
		reset-names = "consys";
		reg = <0 0x18000000 0 0x1000000>,
		      <0 0x10003000 0 0x1000>,
		      <0 0x11d10000 0 0x1000>;
		interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
					 <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
					 <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
					 <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
		chip_id = <0x7986>;
		memory-region = <&wmcpu_emi>;
	};

	wed_pcie: wed_pcie@10003000 {
		compatible = "mediatek,wed_pcie";
		reg = <0 0x10003000 0 0x10>;
	};

	spi0: spi@1100a000 {
		compatible = "mediatek,ipm-spi-quad";
		reg = <0 0x1100a000 0 0x100>;
		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&topckgen CK_TOP_CB_M_D2>,
			 <&topckgen CK_TOP_SPI_SEL>,
			 <&infracfg_ao CK_INFRA_SPI0_CK>,
			 <&infracfg_ao CK_INFRA_SPI0_HCK_CK>;
		clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
		status = "disabled";
	};

	spi1: spi@1100b000 {
		compatible = "mediatek,ipm-spi-single";
		reg = <0 0x1100b000 0 0x100>;
		interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&topckgen CK_TOP_CB_M_D2>,
			 <&topckgen CK_TOP_SPIM_MST_SEL>,
			 <&infracfg_ao CK_INFRA_SPI1_CK>,
			 <&infracfg_ao CK_INFRA_SPI1_HCK_CK>;
		clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
		status = "disabled";
	};

	mmc0: mmc@11230000 {
		compatible = "mediatek,mt7986-mmc";
		reg = <0 0x11230000 0 0x1000>,
			<0 0x11c20000 0 0x1000>;
		interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&topckgen CK_TOP_EMMC_416M>,
			<&infracfg_ao CK_INFRA_MSDC_HCK_CK>,
			<&infracfg_ao CK_INFRA_MSDC_CK>,
			<&infracfg_ao CK_INFRA_MSDC_66M_CK>,
			<&infracfg_ao CK_INFRA_MSDC_133M_CK>;
		clock-names = "source", "hclk", "source_cg", "sys_cg", "axi_cg";
		assigned-clocks = <&topckgen CK_TOP_EMMC_416M_SEL>,
				  <&topckgen CK_TOP_EMMC_250M_SEL>;
		assigned-clock-parents = <&topckgen CK_TOP_CB_M_416M>,
					 <&topckgen CK_TOP_NET1_D5_D2>;
		status = "disabled";
	};

	auxadc: adc@1100d000 {
		compatible = "mediatek,mt7986-auxadc",
			     "mediatek,mt7622-auxadc";
		reg = <0 0x1100d000 0 0x1000>;
		clocks = <&infracfg_ao CK_INFRA_ADC_26M_CK>,
			 <&infracfg_ao CK_INFRA_ADC_FRC_CK>;
		clock-names = "main", "32k";
		#io-channel-cells = <1>;
		status = "disabled";
	};

	consys: consys@10000000 {
		compatible = "mediatek,mt7986-consys";
		reg = <0 0x10000000 0 0x8600000>;
		memory-region = <&wmcpu_emi>;
	};

	xhci: xhci@11200000 {
		compatible = "mediatek,mt7986-xhci",
			     "mediatek,mtk-xhci";
		reg = <0 0x11200000 0 0x2e00>,
		      <0 0x11203e00 0 0x0100>;
		reg-names = "mac", "ippc";
		interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
		phys = <&u3port0 PHY_TYPE_USB3>,
		       <&u2port1 PHY_TYPE_USB2>;
		clocks = <&system_clk>,
			 <&system_clk>,
			 <&system_clk>,
			 <&system_clk>,
			 <&system_clk>;
		clock-names = "sys_ck",
			      "xhci_ck",
			      "ref_ck",
			      "mcu_ck",
			      "dma_ck";
		#address-cells = <2>;
		#size-cells = <2>;
		status = "okay";
	};

	usbtphy: usb-phy@11e10000 {
		compatible = "mediatek,mt7986",
			     "mediatek,generic-tphy-v2";
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
		status = "okay";

		u2port0: usb-phy@11e10000 {
			reg = <0 0x11e10000 0 0x700>;
			clocks = <&system_clk>;
			clock-names = "ref";
			#phy-cells = <1>;
			auto_load_valid;
			nvmem-cells = <&u2_intr_p0>, <&u2_auto_load_valid_p0>;
			nvmem-cell-names = "intr", "auto_load_valid";
			status = "disabled";
		};

		u3port0: usb-phy@11e10700 {
			reg = <0 0x11e10700 0 0x900>;
			clocks = <&system_clk>;
			clock-names = "ref";
			#phy-cells = <1>;
			auto_load_valid;
			nvmem-cells = <&comb_intr_p0>,
			      <&comb_rx_imp_p0>,
			      <&comb_tx_imp_p0>,
			      <&comb_auto_load_valid>;
			nvmem-cell-names = "intr", "rx_imp", "tx_imp", "auto_load_valid";
			status = "okay";
		};

		u2port1: usb-phy@11e11000 {
			reg = <0 0x11e11000 0 0x700>;
			clocks = <&system_clk>;
			clock-names = "ref";
			#phy-cells = <1>;
			auto_load_valid;
			nvmem-cells = <&u2_intr_p1>, <&u2_auto_load_valid_p1>;
			nvmem-cell-names = "intr", "auto_load_valid";
			status = "okay";
		};
	};

	clkitg: clkitg {
		compatible = "simple-bus";
	};

	trng: trng@1020f000 {
		compatible = "mediatek,mt7986-rng",
			     "mediatek,mt7623-rng";
		reg = <0 0x1020f000 0 0x100>;
		clocks = <&infracfg_ao CK_INFRA_TRNG_CK>;
		clock-names = "rng";
	};

	ice: ice_debug {
		compatible = "mediatek,mt7986-ice_debug",
			"mediatek,mt2701-ice_debug";
		clocks = <&infracfg_ao CK_INFRA_DBG_CK>,
			 <&topckgen CK_TOP_ARM_DB_JTSEL>;
		clock-names = "ice_dbg", "dbg_jtsel";
	};

	efuse: efuse@11d00000 {
		compatible = "mediatek,mt7986-efuse",
			     "mediatek,efuse";
		reg = <0 0x11d00000 0 0x1000>;
		#address-cells = <1>;
		#size-cells = <1>;

		thermal_calibration: calib@274 {
			reg = <0x274 0xc>;
		};

		comb_auto_load_valid: usb3-alv-imp@8da {
			reg = <0x8da 1>;
			bits = <0 1>;
		};

		comb_rx_imp_p0: usb3-rx-imp@8d8 {
			reg = <0x8d8 1>;
			bits = <0 5>;
		};

		comb_tx_imp_p0: usb3-tx-imp@8d8 {
			reg = <0x8d8 2>;
			bits = <5 5>;
		};

		comb_intr_p0: usb3-intr@8d9 {
			reg = <0x8d9 1>;
			bits = <2 6>;
		};

		u2_auto_load_valid_p0: usb2-alv-p0@8e0 {
			reg  = <0x8e0 1>;
			bits = <0 1>;
		};

		u2_intr_p0: usb2-intr-p0@8e0 {
			reg  = <0x8e0 1>;
			bits = <1 5>;
		};

		u2_auto_load_valid_p1: usb2-alv-p1@8e0 {
			reg  = <0x8e0 2>;
			bits = <6 1>;
		};

		u2_intr_p1: usb2-intr-p1@8e0 {
			reg  = <0x8e0 2>;
			bits = <7 5>;
		};
	};	
};

#include "mt7986-clkitg.dtsi"
