PowerPC: keymile: Add support for kmcent2 board

Add basic support for the Hitachi Power Grids kmcent2 board, based
on the NXP QorIQ T1040 SoC.

Signed-off-by: Valentin Longchamp <valentin.longchamp@hitachi-powergrids.com>
Signed-off-by: Rainer Boschung <rainer.boschung@hitachi-powergrids.com>
Signed-off-by: Niel Fourie <lusus@denx.de>
Cc: Holger Brunck <holger.brunck@hitachi-powergrids.com>
Cc: Heiko Schocher <hs@denx.de>
Reviewed-by: Stefan Roese <sr@denx.de>
[Fixed blank line at EOF errors]
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig
index 54c7fd9..c1a3770 100644
--- a/arch/powerpc/cpu/mpc85xx/Kconfig
+++ b/arch/powerpc/cpu/mpc85xx/Kconfig
@@ -256,6 +256,10 @@
 	bool "Support kmp204x"
 	select VENDOR_KM
 
+config TARGET_KMCENT2
+	bool "Support kmcent2"
+	select VENDOR_KM
+
 config TARGET_XPEDITE520X
 	bool "Support xpedite520x"
 	select ARCH_MPC8548
diff --git a/arch/powerpc/dts/Makefile b/arch/powerpc/dts/Makefile
index 266d345..3ecda36 100644
--- a/arch/powerpc/dts/Makefile
+++ b/arch/powerpc/dts/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0+
 
+dtb-$(CONFIG_TARGET_KMCENT2) += kmcent2.dtb
 dtb-$(CONFIG_TARGET_KMCOGE5NE) += kmcoge5ne.dtb
 dtb-$(CONFIG_TARGET_KMETER1) += kmeter1.dtb
 dtb-$(CONFIG_TARGET_KMOPTI2) += kmopti2.dtb
diff --git a/arch/powerpc/dts/kmcent2-u-boot.dtsi b/arch/powerpc/dts/kmcent2-u-boot.dtsi
new file mode 100644
index 0000000..ab76a9f
--- /dev/null
+++ b/arch/powerpc/dts/kmcent2-u-boot.dtsi
@@ -0,0 +1,97 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * (C) Copyright 2021  Niel Fourie <lusus@denx.de>
+ */
+
+#include <config.h>
+
+/ {
+
+	aliases {
+		spi0 = "/soc@ffe000000/spi@110000";
+		i2c0 = "/soc@ffe000000/i2c@118000";
+		i2c1 = "/soc@ffe000000/i2c@118000/mux@70/i2c@0";
+		i2c2 = "/soc@ffe000000/i2c@118000/mux@70/i2c@1";
+		i2c3 = "/soc@ffe000000/i2c@118000/mux@70/i2c@7";
+		i2c4 = "/soc@ffe000000/i2c@118100";
+		/delete-property/ pci1;
+		/delete-property/ pci2;
+		/delete-property/ pci3;
+	};
+
+	chosen {
+		stdout-path = "/soc@ffe000000/serial@11c500";
+	};
+
+	soc@ffe000000 {
+		u-boot,dm-pre-reloc;
+		spi@110000 {
+			/* This documents where km_fpgacfg should be appear */
+			fpga@0 {
+				compatible = "keymile,fpga-conf";
+				reg = <0>;
+				spi-max-frequency = <25000000>;
+			};
+		};
+
+		sdhc@114000 {
+			status = "okay";
+		};
+
+		i2c@118000 {
+			u-boot,dm-pre-reloc;
+			mux@70 {
+				i2c@1 { /* IVM bus */
+					reg = <1>;
+					#address-cells = <1>;
+					#size-cells = <0>;
+				};
+			};
+		};
+
+		serial@11c500 {
+			u-boot,dm-pre-reloc;
+			clock-frequency = <200000000>;
+		};
+
+		fman@400000 {
+			ethernet@e0000 {
+				phy-connection-type = "sgmii";
+			};
+
+			ethernet@e2000 {
+				phy-connection-type = "sgmii";
+			};
+
+			ethernet@e8000 {
+				phy-connection-type = "rgmii-id";
+			};
+		};
+
+	};
+
+	pcie@ffe240000 {
+		compatible = "fsl,pcie-t104x";
+		law_trgt_if = <0>;
+	};
+
+	binman {
+		filename = "u-boot-with-dtb.bin";
+		skip-at-start = <CONFIG_SYS_TEXT_BASE>;
+		sort-by-offset;
+		pad-byte = <0xff>;
+		size = <CONFIG_SYS_MONITOR_LEN>;
+
+		u-boot-with-ucode-ptr {
+			offset = <CONFIG_SYS_TEXT_BASE>;
+			optional-ucode;
+		};
+
+		u-boot-dtb-with-ucode {
+			align = <256>;
+		};
+		powerpc-mpc85xx-bootpg-resetvec {
+			offset = <(CONFIG_RESET_VECTOR_ADDRESS - 0xffc)>;
+		};
+	};
+};