// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2019 Jagan Teki <jagan@amarulasolutions.com>
 */
#define USB_CLASS_HUB			9

#include "rockchip-u-boot.dtsi"

/ {
	aliases {
		mmc0 = &sdhci;
		mmc1 = &sdmmc;
		pci0 = &pcie0;
		spi1 = &spi1;
	};

	cic: syscon@ff620000 {
		u-boot,dm-pre-reloc;
		compatible = "rockchip,rk3399-cic", "syscon";
		reg = <0x0 0xff620000 0x0 0x100>;
	};

	dfi: dfi@ff630000 {
		u-boot,dm-pre-reloc;
		reg = <0x00 0xff630000 0x00 0x4000>;
		compatible = "rockchip,rk3399-dfi";
		rockchip,pmu = <&pmugrf>;
		clocks = <&cru PCLK_DDR_MON>;
		clock-names = "pclk_ddr_mon";
	};

	rng: rng@ff8b8000 {
		compatible = "rockchip,cryptov1-rng";
		reg = <0x0 0xff8b8000 0x0 0x1000>;
		status = "okay";
	};

	dmc: dmc {
		u-boot,dm-pre-reloc;
		compatible = "rockchip,rk3399-dmc";
		devfreq-events = <&dfi>;
		interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH 0>;
		clocks = <&cru SCLK_DDRCLK>;
		clock-names = "dmc_clk";
		reg = <0x0 0xffa80000 0x0 0x0800
		       0x0 0xffa80800 0x0 0x1800
		       0x0 0xffa82000 0x0 0x2000
		       0x0 0xffa84000 0x0 0x1000
		       0x0 0xffa88000 0x0 0x0800
		       0x0 0xffa88800 0x0 0x1800
		       0x0 0xffa8a000 0x0 0x2000
		       0x0 0xffa8c000 0x0 0x1000>;
	};

	pmusgrf: syscon@ff330000 {
		u-boot,dm-pre-reloc;
		compatible = "rockchip,rk3399-pmusgrf", "syscon";
		reg = <0x0 0xff330000 0x0 0xe3d4>;
	};

};

#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM)
&binman {
	multiple-images;
	rom {
		filename = "u-boot.rom";
		size = <0x400000>;
		pad-byte = <0xff>;

		mkimage {
			args = "-n rk3399 -T rkspi";
			u-boot-spl {
			};
		};
		u-boot-img {
			offset = <0x40000>;
		};
		u-boot {
			offset = <0x300000>;
		};
		fdtmap {
		};
	};
};
#endif /* CONFIG_ROCKCHIP_SPI_IMAGE && CONFIG_HAS_ROM */

&cru {
	u-boot,dm-pre-reloc;
};

&emmc_phy {
	u-boot,dm-pre-reloc;
};

&grf {
	u-boot,dm-pre-reloc;
};

&pinctrl {
	u-boot,dm-pre-reloc;
};

&pmu {
	u-boot,dm-pre-reloc;
};

&pmugrf {
	u-boot,dm-pre-reloc;
};

&pmu {
	u-boot,dm-pre-reloc;
};

&pmucru {
	u-boot,dm-pre-reloc;
};

&sdhci {
	max-frequency = <200000000>;
	u-boot,dm-pre-reloc;
};

&sdmmc {
	u-boot,dm-pre-reloc;

	/* mmc to sram can't do dma, prevent aborts transferring TF-A parts */
	u-boot,spl-fifo-mode;
};

&spi1 {
	u-boot,dm-pre-reloc;
};

&uart0 {
	u-boot,dm-pre-reloc;
};

&uart2 {
	u-boot,dm-pre-reloc;
};

&vopb {
	u-boot,dm-pre-reloc;
};

&vopl {
	u-boot,dm-pre-reloc;
};
