/*
 * 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;

		/* 192 KiB reserved for ARM Trusted Firmware (BL31) */
		secmon_reserved: secmon@43000000 {
			reg = <0 0x43000000 0 0x30000>;
			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 = <13000000>;
		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 110 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>;
		#clock-cells = <1>;
		#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 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"
