ARM: UniPhier: move UART pin settings to SPL
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Sun, 22 Mar 2015 15:07:23 +0000 (00:07 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Mon, 23 Mar 2015 15:15:28 +0000 (00:15 +0900)
The UniPhier platform is going to enable Driver Model and UART
support on SPL.  Move UART pin settings to early_pin_init(),
which is called from SPL.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
arch/arm/mach-uniphier/ph1-ld4/Makefile
arch/arm/mach-uniphier/ph1-ld4/early_pinctrl.c [new file with mode: 0644]
arch/arm/mach-uniphier/ph1-ld4/pinctrl.c
arch/arm/mach-uniphier/ph1-pro4/Makefile
arch/arm/mach-uniphier/ph1-pro4/early_pinctrl.c [new file with mode: 0644]
arch/arm/mach-uniphier/ph1-pro4/pinctrl.c
arch/arm/mach-uniphier/ph1-sld8/early_pinctrl.c [new file with mode: 0644]
arch/arm/mach-uniphier/ph1-sld8/pinctrl.c
arch/arm/mach-uniphier/spl.c

index fa36419271683fadf698ed47e51565bba1099f6f..af815c32606ae3ed8958e166efdad215a27d2add 100644 (file)
@@ -5,7 +5,7 @@
 ifdef CONFIG_SPL_BUILD
 obj-$(CONFIG_DEBUG_LL) += lowlevel_debug.o
 obj-y += bcu_init.o sg_init.o pll_init.o early_clkrst_init.o \
-       pll_spectrum.o umc_init.o ddrphy_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
diff --git a/arch/arm/mach-uniphier/ph1-ld4/early_pinctrl.c b/arch/arm/mach-uniphier/ph1-ld4/early_pinctrl.c
new file mode 100644 (file)
index 0000000..e5e86bb
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2011-2015 Panasonic Corporation
+ * Copyright (C) 2015      Socionext Inc.
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <mach/sg-regs.h>
+
+void early_pin_init(void)
+{
+       /* Comment format:    PAD Name -> Function Name */
+
+#ifdef CONFIG_UNIPHIER_SERIAL
+       sg_set_pinsel(85, 1);   /* HSDOUT3 -> RXD0 */
+       sg_set_pinsel(88, 1);   /* HDDOUT6 -> TXD0 */
+
+       sg_set_pinsel(69, 23);  /* PCIOWR -> TXD1 */
+       sg_set_pinsel(70, 23);  /* PCIORD -> RXD1 */
+
+       sg_set_pinsel(128, 13); /* XIRQ6 -> TXD2 */
+       sg_set_pinsel(129, 13); /* XIRQ7 -> RXD2 */
+
+       sg_set_pinsel(110, 1);  /* SBO0 -> TXD3 */
+       sg_set_pinsel(111, 1);  /* SBI0 -> RXD3 */
+#endif
+}
index 15d81ebb3db7644f08236ad78211ff089902beee..3074d0a8d243410a659ae125fe9d30cc0ea00fad 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Copyright (C) 2011-2014 Panasonic Corporation
+ * Copyright (C) 2011-2015 Panasonic Corporation
+ * Copyright (C) 2015      Socionext Inc.
  *
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
-#include <common.h>
 #include <asm/io.h>
 #include <mach/sg-regs.h>
 
@@ -14,20 +14,6 @@ void pin_init(void)
 
        /* Comment format:    PAD Name -> Function Name */
 
-#ifdef CONFIG_UNIPHIER_SERIAL
-       sg_set_pinsel(85, 1);   /* HSDOUT3 -> RXD0 */
-       sg_set_pinsel(88, 1);   /* HDDOUT6 -> TXD0 */
-
-       sg_set_pinsel(69, 23);  /* PCIOWR -> TXD1 */
-       sg_set_pinsel(70, 23);  /* PCIORD -> RXD1 */
-
-       sg_set_pinsel(128, 13); /* XIRQ6 -> TXD2 */
-       sg_set_pinsel(129, 13); /* XIRQ7 -> RXD2 */
-
-       sg_set_pinsel(110, 1);  /* SBO0 -> TXD3 */
-       sg_set_pinsel(111, 1);  /* SBI0 -> RXD3 */
-#endif
-
 #ifdef CONFIG_NAND_DENALI
        sg_set_pinsel(158, 0);  /* XNFRE -> XNFRE_GB */
        sg_set_pinsel(159, 0);  /* XNFWE -> XNFWE_GB */
index ac27d9b16468a411a3ef06997c6e78358e1a46ab..f6a584e1f017a19b62ab46fee2c3d8d2a426e229 100644 (file)
@@ -5,7 +5,7 @@
 ifdef CONFIG_SPL_BUILD
 obj-$(CONFIG_DEBUG_LL) += lowlevel_debug.o
 obj-y += sg_init.o pll_init.o early_clkrst_init.o \
-       pll_spectrum.o umc_init.o ddrphy_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
diff --git a/arch/arm/mach-uniphier/ph1-pro4/early_pinctrl.c b/arch/arm/mach-uniphier/ph1-pro4/early_pinctrl.c
new file mode 100644 (file)
index 0000000..85bb6a0
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2011-2015 Panasonic Corporation
+ * Copyright (C) 2015      Socionext Inc.
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <asm/io.h>
+#include <mach/sg-regs.h>
+
+void early_pin_init(void)
+{
+       /* Comment format:    PAD Name -> Function Name */
+
+#ifdef CONFIG_UNIPHIER_SERIAL
+       sg_set_pinsel(127, 0);  /* RXD0 -> RXD0 */
+       sg_set_pinsel(128, 0);  /* TXD0 -> TXD0 */
+       sg_set_pinsel(129, 0);  /* RXD1 -> RXD1 */
+       sg_set_pinsel(130, 0);  /* TXD1 -> TXD1 */
+       sg_set_pinsel(131, 0);  /* RXD2 -> RXD2 */
+       sg_set_pinsel(132, 0);  /* TXD2 -> TXD2 */
+       sg_set_pinsel(88, 2);   /* CH6CLK -> RXD3 */
+       sg_set_pinsel(89, 2);   /* CH6VAL -> TXD3 */
+#endif
+
+       writel(1, SG_LOADPINCTRL);
+}
index f382ef48421a43dcdae4cc29832c67f0e1520c54..4df9098ef07fd694cde3234cd341fea071ad248c 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Copyright (C) 2011-2014 Panasonic Corporation
+ * Copyright (C) 2011-2015 Panasonic Corporation
+ * Copyright (C) 2015      Socionext Inc.
  *
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
-#include <common.h>
 #include <asm/io.h>
 #include <mach/sg-regs.h>
 
@@ -12,17 +12,6 @@ void pin_init(void)
 {
        /* Comment format:    PAD Name -> Function Name */
 
-#ifdef CONFIG_UNIPHIER_SERIAL
-       sg_set_pinsel(127, 0);  /* RXD0 -> RXD0 */
-       sg_set_pinsel(128, 0);  /* TXD0 -> TXD0 */
-       sg_set_pinsel(129, 0);  /* RXD1 -> RXD1 */
-       sg_set_pinsel(130, 0);  /* TXD1 -> TXD1 */
-       sg_set_pinsel(131, 0);  /* RXD2 -> RXD2 */
-       sg_set_pinsel(132, 0);  /* TXD2 -> TXD2 */
-       sg_set_pinsel(88, 2);   /* CH6CLK -> RXD3 */
-       sg_set_pinsel(89, 2);   /* CH6VAL -> TXD3 */
-#endif
-
 #ifdef CONFIG_NAND_DENALI
        sg_set_pinsel(40, 0);   /* NFD0   -> NFD0 */
        sg_set_pinsel(41, 0);   /* NFD1   -> NFD1 */
diff --git a/arch/arm/mach-uniphier/ph1-sld8/early_pinctrl.c b/arch/arm/mach-uniphier/ph1-sld8/early_pinctrl.c
new file mode 100644 (file)
index 0000000..28cc429
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2011-2015 Panasonic Corporation
+ * Copyright (C) 2015      Socionext Inc.
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <mach/sg-regs.h>
+
+void early_pin_init(void)
+{
+       /* Comment format:    PAD Name -> Function Name */
+
+#ifdef CONFIG_UNIPHIER_SERIAL
+       sg_set_pinsel(70, 3);   /* HDDOUT0 -> TXD0 */
+       sg_set_pinsel(71, 3);   /* HSDOUT1 -> RXD0 */
+
+       sg_set_pinsel(114, 0);  /* TXD1 -> TXD1 */
+       sg_set_pinsel(115, 0);  /* RXD1 -> RXD1 */
+
+       sg_set_pinsel(112, 1);  /* SBO1 -> TXD2 */
+       sg_set_pinsel(113, 1);  /* SBI1 -> RXD2 */
+
+       sg_set_pinsel(110, 1);  /* SBO0 -> TXD3 */
+       sg_set_pinsel(111, 1);  /* SBI0 -> RXD3 */
+#endif
+}
index 4c494ffa40e7e08bf1d5d4dcde264f264cac8ef7..57a80930482b0900aa70196f9102d47c4c9af905 100644 (file)
@@ -1,10 +1,10 @@
 /*
- * Copyright (C) 2011-2014 Panasonic Corporation
+ * Copyright (C) 2011-2015 Panasonic Corporation
+ * Copyright (C) 2015      Socionext Inc.
  *
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
-#include <common.h>
 #include <asm/io.h>
 #include <mach/sg-regs.h>
 
@@ -12,20 +12,6 @@ void pin_init(void)
 {
        /* Comment format:    PAD Name -> Function Name */
 
-#ifdef CONFIG_UNIPHIER_SERIAL
-       sg_set_pinsel(70, 3);   /* HDDOUT0 -> TXD0 */
-       sg_set_pinsel(71, 3);   /* HSDOUT1 -> RXD0 */
-
-       sg_set_pinsel(114, 0);  /* TXD1 -> TXD1 */
-       sg_set_pinsel(115, 0);  /* RXD1 -> RXD1 */
-
-       sg_set_pinsel(112, 1);  /* SBO1 -> TXD2 */
-       sg_set_pinsel(113, 1);  /* SBI1 -> RXD2 */
-
-       sg_set_pinsel(110, 1);  /* SBO0 -> TXD3 */
-       sg_set_pinsel(111, 1);  /* SBI0 -> RXD3 */
-#endif
-
 #ifdef CONFIG_SYS_I2C_UNIPHIER
        {
                u32 tmp;
index c3d90d03d09f44194f5eb40b0089f178a01ab087..a0d0f040a842f470bb25d90117680b717da00210 100644 (file)
@@ -20,6 +20,7 @@ void pll_init(void);
 void pin_init(void);
 void memconf_init(void);
 void early_clkrst_init(void);
+void early_pin_init(void);
 int umc_init(void);
 void enable_dpll_ssc(void);
 
@@ -47,6 +48,10 @@ void spl_board_init(void)
 
        led_write(L, 2, , );
 
+       early_pin_init();
+
+       led_write(L, 3, , );
+
        {
                int res;
 
@@ -56,9 +61,9 @@ void spl_board_init(void)
                                ;
                }
        }
-       led_write(L, 3, , );
+       led_write(L, 4, , );
 
        enable_dpll_ssc();
 
-       led_write(L, 4, , );
+       led_write(L, 5, , );
 }