From f4e190e317b860bb15e221a29cbf16976a04e3ca Mon Sep 17 00:00:00 2001
From: Masahiro Yamada <yamada.masahiro@socionext.com>
Date: Fri, 28 Aug 2015 20:13:18 +0900
Subject: [PATCH] ARM: uniphier: enable SPL_OF_CONTROL

Device Tree really improves code maintainability and is now
available for SPL too.

This is the state-of-the-art implementation in U-boot.

The board files (platform data) are no longer needed.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
 arch/arm/Kconfig                             |  1 +
 arch/arm/dts/uniphier-ph1-ld4-ref.dts        |  9 ++++++---
 arch/arm/dts/uniphier-ph1-pro4-ref.dts       |  9 ++++++---
 arch/arm/dts/uniphier-ph1-sld3-ref.dts       |  9 ++++++---
 arch/arm/dts/uniphier-ph1-sld8-ref.dts       |  9 ++++++---
 arch/arm/mach-uniphier/ph1-ld4/Makefile      |  1 -
 arch/arm/mach-uniphier/ph1-ld4/platdevice.c  | 15 ---------------
 arch/arm/mach-uniphier/ph1-pro4/Makefile     |  1 -
 arch/arm/mach-uniphier/ph1-pro4/platdevice.c | 15 ---------------
 arch/arm/mach-uniphier/ph1-sld3/Makefile     |  1 -
 arch/arm/mach-uniphier/ph1-sld3/platdevice.c |  1 -
 arch/arm/mach-uniphier/ph1-sld8/platdevice.c | 15 ---------------
 doc/README.uniphier                          | 10 +++++-----
 include/configs/uniphier.h                   |  2 +-
 14 files changed, 31 insertions(+), 67 deletions(-)
 delete mode 100644 arch/arm/mach-uniphier/ph1-ld4/platdevice.c
 delete mode 100644 arch/arm/mach-uniphier/ph1-pro4/platdevice.c
 delete mode 100644 arch/arm/mach-uniphier/ph1-sld3/platdevice.c
 delete mode 100644 arch/arm/mach-uniphier/ph1-sld8/platdevice.c

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5f3af7773b..cd88df443a 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -816,6 +816,7 @@ config ARCH_UNIPHIER
 	select SUPPORT_SPL
 	select SPL
 	select OF_CONTROL
+	select SPL_OF_CONTROL
 	select DM
 	select SPL_DM
 	select DM_SERIAL
diff --git a/arch/arm/dts/uniphier-ph1-ld4-ref.dts b/arch/arm/dts/uniphier-ph1-ld4-ref.dts
index 25e487ae51..7c36581e6d 100644
--- a/arch/arm/dts/uniphier-ph1-ld4-ref.dts
+++ b/arch/arm/dts/uniphier-ph1-ld4-ref.dts
@@ -1,9 +1,7 @@
 /*
  * Device Tree Source for UniPhier PH1-LD4 Reference Board
  *
- * Copyright (C) 2014-2015 Panasonic Corporation
- * Copyright (C) 2015      Socionext Inc.
- *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ * Copyright (C) 2014-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+	X11
  */
@@ -57,3 +55,8 @@
 &usb1 {
 	status = "okay";
 };
+
+/* for U-boot only */
+&uart0 {
+       u-boot,dm-pre-reloc;
+};
diff --git a/arch/arm/dts/uniphier-ph1-pro4-ref.dts b/arch/arm/dts/uniphier-ph1-pro4-ref.dts
index b4b7f61e5c..fd3e8c63ed 100644
--- a/arch/arm/dts/uniphier-ph1-pro4-ref.dts
+++ b/arch/arm/dts/uniphier-ph1-pro4-ref.dts
@@ -1,9 +1,7 @@
 /*
  * Device Tree Source for UniPhier PH1-Pro4 Reference Board
  *
- * Copyright (C) 2014-2015 Panasonic Corporation
- * Copyright (C) 2015      Socionext Inc.
- *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ * Copyright (C) 2014-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+	X11
  */
@@ -56,3 +54,8 @@
 &usb0 {
 	status = "okay";
 };
+
+/* for U-boot only */
+&uart0 {
+       u-boot,dm-pre-reloc;
+};
diff --git a/arch/arm/dts/uniphier-ph1-sld3-ref.dts b/arch/arm/dts/uniphier-ph1-sld3-ref.dts
index 9dc929671e..2406bfcadb 100644
--- a/arch/arm/dts/uniphier-ph1-sld3-ref.dts
+++ b/arch/arm/dts/uniphier-ph1-sld3-ref.dts
@@ -1,9 +1,7 @@
 /*
  * Device Tree Source for UniPhier PH1-sLD3 Reference Board
  *
- * Copyright (C) 2014-2015 Panasonic Corporation
- * Copyright (C) 2015      Socionext Inc.
- *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ * Copyright (C) 2014-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+	X11
  */
@@ -56,3 +54,8 @@
 &usb1 {
 	status = "okay";
 };
+
+/* for U-boot only */
+&uart0 {
+       u-boot,dm-pre-reloc;
+};
diff --git a/arch/arm/dts/uniphier-ph1-sld8-ref.dts b/arch/arm/dts/uniphier-ph1-sld8-ref.dts
index 2d1359c30e..b7ed27547e 100644
--- a/arch/arm/dts/uniphier-ph1-sld8-ref.dts
+++ b/arch/arm/dts/uniphier-ph1-sld8-ref.dts
@@ -1,9 +1,7 @@
 /*
  * Device Tree Source for UniPhier PH1-sLD8 Reference Board
  *
- * Copyright (C) 2014-2015 Panasonic Corporation
- * Copyright (C) 2015      Socionext Inc.
- *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ * Copyright (C) 2014-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+	X11
  */
@@ -57,3 +55,8 @@
 &usb1 {
 	status = "okay";
 };
+
+/* for U-boot only */
+&uart0 {
+       u-boot,dm-pre-reloc;
+};
diff --git a/arch/arm/mach-uniphier/ph1-ld4/Makefile b/arch/arm/mach-uniphier/ph1-ld4/Makefile
index af815c3260..1410b12cb6 100644
--- a/arch/arm/mach-uniphier/ph1-ld4/Makefile
+++ b/arch/arm/mach-uniphier/ph1-ld4/Makefile
@@ -8,7 +8,6 @@ obj-y += bcu_init.o sg_init.o pll_init.o early_clkrst_init.o \
 	early_pinctrl.o pll_spectrum.o umc_init.o ddrphy_init.o
 obj-$(CONFIG_PFC_MICRO_SUPPORT_CARD) += sbc_init.o
 obj-$(CONFIG_DCC_MICRO_SUPPORT_CARD) += sbc_init_3cs.o
-obj-$(CONFIG_SPL_DM) += platdevice.o
 else
 obj-$(CONFIG_BOARD_EARLY_INIT_F) += pinctrl.o clkrst_init.o
 endif
diff --git a/arch/arm/mach-uniphier/ph1-ld4/platdevice.c b/arch/arm/mach-uniphier/ph1-ld4/platdevice.c
deleted file mode 100644
index c0e62943be..0000000000
--- a/arch/arm/mach-uniphier/ph1-ld4/platdevice.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Copyright (C) 2014-2015 Panasonic Corporation
- *   Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-
-#include <mach/platdevice.h>
-
-#define UART_MASTER_CLK		36864000
-
-SERIAL_DEVICE(0, 0x54006800, UART_MASTER_CLK)
-SERIAL_DEVICE(1, 0x54006900, UART_MASTER_CLK)
-SERIAL_DEVICE(2, 0x54006a00, UART_MASTER_CLK)
-SERIAL_DEVICE(3, 0x54006b00, UART_MASTER_CLK)
diff --git a/arch/arm/mach-uniphier/ph1-pro4/Makefile b/arch/arm/mach-uniphier/ph1-pro4/Makefile
index f6a584e1f0..229f4432ff 100644
--- a/arch/arm/mach-uniphier/ph1-pro4/Makefile
+++ b/arch/arm/mach-uniphier/ph1-pro4/Makefile
@@ -8,7 +8,6 @@ obj-y += sg_init.o pll_init.o early_clkrst_init.o \
 	early_pinctrl.o pll_spectrum.o umc_init.o ddrphy_init.o
 obj-$(CONFIG_PFC_MICRO_SUPPORT_CARD) += sbc_init.o
 obj-$(CONFIG_DCC_MICRO_SUPPORT_CARD) += sbc_init_3cs.o
-obj-$(CONFIG_SPL_DM) += platdevice.o
 else
 obj-$(CONFIG_BOARD_EARLY_INIT_F) += pinctrl.o clkrst_init.o
 endif
diff --git a/arch/arm/mach-uniphier/ph1-pro4/platdevice.c b/arch/arm/mach-uniphier/ph1-pro4/platdevice.c
deleted file mode 100644
index 7440ceddff..0000000000
--- a/arch/arm/mach-uniphier/ph1-pro4/platdevice.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Copyright (C) 2014-2015 Panasonic Corporation
- *   Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-
-#include <mach/platdevice.h>
-
-#define UART_MASTER_CLK		73728000
-
-SERIAL_DEVICE(0, 0x54006800, UART_MASTER_CLK)
-SERIAL_DEVICE(1, 0x54006900, UART_MASTER_CLK)
-SERIAL_DEVICE(2, 0x54006a00, UART_MASTER_CLK)
-SERIAL_DEVICE(3, 0x54006b00, UART_MASTER_CLK)
diff --git a/arch/arm/mach-uniphier/ph1-sld3/Makefile b/arch/arm/mach-uniphier/ph1-sld3/Makefile
index f3f7ad4fe0..aff5d640d6 100644
--- a/arch/arm/mach-uniphier/ph1-sld3/Makefile
+++ b/arch/arm/mach-uniphier/ph1-sld3/Makefile
@@ -8,7 +8,6 @@ obj-y += bcu_init.o memconf.o sg_init.o pll_init.o early_clkrst_init.o \
 	early_pinctrl.o pll_spectrum.o umc_init.o
 obj-$(CONFIG_PFC_MICRO_SUPPORT_CARD) += sbc_init.o
 obj-$(CONFIG_DCC_MICRO_SUPPORT_CARD) += sbc_init_3cs.o
-obj-$(CONFIG_SPL_DM) += platdevice.o
 else
 obj-$(CONFIG_BOARD_EARLY_INIT_F) += pinctrl.o clkrst_init.o
 endif
diff --git a/arch/arm/mach-uniphier/ph1-sld3/platdevice.c b/arch/arm/mach-uniphier/ph1-sld3/platdevice.c
deleted file mode 100644
index 652106712f..0000000000
--- a/arch/arm/mach-uniphier/ph1-sld3/platdevice.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../ph1-ld4/platdevice.c"
diff --git a/arch/arm/mach-uniphier/ph1-sld8/platdevice.c b/arch/arm/mach-uniphier/ph1-sld8/platdevice.c
deleted file mode 100644
index aa334a1ca4..0000000000
--- a/arch/arm/mach-uniphier/ph1-sld8/platdevice.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Copyright (C) 2014-2015 Panasonic Corporation
- *   Author: Masahiro Yamada <yamada.m@jp.panasonic.com>
- *
- * SPDX-License-Identifier:	GPL-2.0+
- */
-
-#include <mach/platdevice.h>
-
-#define UART_MASTER_CLK		80000000
-
-SERIAL_DEVICE(0, 0x54006800, UART_MASTER_CLK)
-SERIAL_DEVICE(1, 0x54006900, UART_MASTER_CLK)
-SERIAL_DEVICE(2, 0x54006a00, UART_MASTER_CLK)
-SERIAL_DEVICE(3, 0x54006b00, UART_MASTER_CLK)
diff --git a/doc/README.uniphier b/doc/README.uniphier
index 52d681b57a..e936f40254 100644
--- a/doc/README.uniphier
+++ b/doc/README.uniphier
@@ -52,12 +52,12 @@ Burn U-Boot images to NAND
 --------------------------
 
 Write two files to the NAND device as follows:
- - spl/u-boot-spl.bin at the offset address 0x00000000
- - u-boot-dtb.img     at the offset address 0x00010000
+ - spl/u-boot-spl-dtb.bin at the offset address 0x00000000
+ - u-boot-dtb.img         at the offset address 0x00010000
 
 If a TFTP server is available, the images can be easily updated.
-Just copy the u-boot-spl.bin and u-boot-dtb.img to the TFTP public directory,
-and then run the following command at the U-Boot command line:
+Just copy the u-boot-spl-dtb.bin and u-boot-dtb.img to the TFTP public
+directory, and then run the following command at the U-Boot command line:
 
   => run nandupdate
 
@@ -129,4 +129,4 @@ newer SoCs.  Even if it is, EA[25] is not connected on most of the boards.
 
 --
 Masahiro Yamada <yamada.masahiro@socionext.com>
-Jul. 2015
+Aug. 2015
diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h
index b0a7daa2bf..d59564bafd 100644
--- a/include/configs/uniphier.h
+++ b/include/configs/uniphier.h
@@ -288,7 +288,7 @@
 	"netdev=eth0\0"						\
 	"verify=n\0"						\
 	"nandupdate=nand erase 0 0x00100000 &&"			\
-		"tftpboot u-boot-spl.bin &&"			\
+		"tftpboot u-boot-spl-dtb.bin &&"		\
 		"nand write $loadaddr 0 0x00010000 &&"		\
 		"tftpboot u-boot-dtb.img &&"			\
 		"nand write $loadaddr 0x00010000 0x000f0000\0"	\
-- 
2.39.5