@@ -10,7 +10,7 @@ obj-y += bcu/
else
-obj-$(CONFIG_DISPLAY_CPUINFO) += cpu_info.o
+obj-$(CONFIG_DISPLAY_CPUINFO) += cpu-info.o
obj-y += dram_init.o
obj-y += board_init.o
obj-$(CONFIG_BOARD_LATE_INIT) += board_late_init.o
@@ -22,7 +22,7 @@ obj-y += pinctrl-glue.o
endif
obj-y += boards.o
-obj-y += soc_info.o
+obj-y += soc-info.o
obj-y += boot-mode/
obj-y += clk/
obj-y += dram/
@@ -28,13 +28,13 @@ u32 uniphier_smp_booted[CONFIG_ARMV7_PSCI_NR_CPUS];
static int uniphier_get_nr_cpus(void)
{
- switch (uniphier_get_soc_type()) {
- case SOC_UNIPHIER_SLD3:
- case SOC_UNIPHIER_PRO4:
- case SOC_UNIPHIER_PRO5:
+ switch (uniphier_get_soc_id()) {
+ case UNIPHIER_SLD3_ID:
+ case UNIPHIER_PRO4_ID:
+ case UNIPHIER_PRO5_ID:
return 2;
- case SOC_UNIPHIER_PXS2:
- case SOC_UNIPHIER_LD6B:
+ case UNIPHIER_PXS2_ID:
+ case UNIPHIER_LD6B_ID:
return 4;
default:
return 1;
@@ -80,7 +80,7 @@ static void uniphier_ld20_misc_init(void)
#endif
struct uniphier_initdata {
- enum uniphier_soc_id soc_id;
+ unsigned int soc_id;
bool nand_2cs;
void (*sbc_init)(void);
void (*pll_init)(void);
@@ -91,7 +91,7 @@ struct uniphier_initdata {
static const struct uniphier_initdata uniphier_initdata[] = {
#if defined(CONFIG_ARCH_UNIPHIER_SLD3)
{
- .soc_id = SOC_UNIPHIER_SLD3,
+ .soc_id = UNIPHIER_SLD3_ID,
.nand_2cs = true,
.sbc_init = uniphier_sbc_init_admulti,
.pll_init = uniphier_sld3_pll_init,
@@ -100,7 +100,7 @@ static const struct uniphier_initdata uniphier_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD4)
{
- .soc_id = SOC_UNIPHIER_LD4,
+ .soc_id = UNIPHIER_LD4_ID,
.nand_2cs = true,
.sbc_init = uniphier_ld4_sbc_init,
.pll_init = uniphier_ld4_pll_init,
@@ -109,7 +109,7 @@ static const struct uniphier_initdata uniphier_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PRO4)
{
- .soc_id = SOC_UNIPHIER_PRO4,
+ .soc_id = UNIPHIER_PRO4_ID,
.nand_2cs = false,
.sbc_init = uniphier_sbc_init_savepin,
.pll_init = uniphier_pro4_pll_init,
@@ -118,7 +118,7 @@ static const struct uniphier_initdata uniphier_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_SLD8)
{
- .soc_id = SOC_UNIPHIER_SLD8,
+ .soc_id = UNIPHIER_SLD8_ID,
.nand_2cs = true,
.sbc_init = uniphier_ld4_sbc_init,
.pll_init = uniphier_ld4_pll_init,
@@ -127,7 +127,7 @@ static const struct uniphier_initdata uniphier_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PRO5)
{
- .soc_id = SOC_UNIPHIER_PRO5,
+ .soc_id = UNIPHIER_PRO5_ID,
.nand_2cs = true,
.sbc_init = uniphier_sbc_init_savepin,
.clk_init = uniphier_pro5_clk_init,
@@ -135,7 +135,7 @@ static const struct uniphier_initdata uniphier_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PXS2)
{
- .soc_id = SOC_UNIPHIER_PXS2,
+ .soc_id = UNIPHIER_PXS2_ID,
.nand_2cs = true,
.sbc_init = uniphier_pxs2_sbc_init,
.clk_init = uniphier_pxs2_clk_init,
@@ -143,7 +143,7 @@ static const struct uniphier_initdata uniphier_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD6B)
{
- .soc_id = SOC_UNIPHIER_LD6B,
+ .soc_id = UNIPHIER_LD6B_ID,
.nand_2cs = true,
.sbc_init = uniphier_pxs2_sbc_init,
.clk_init = uniphier_pxs2_clk_init,
@@ -151,7 +151,7 @@ static const struct uniphier_initdata uniphier_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD11)
{
- .soc_id = SOC_UNIPHIER_LD11,
+ .soc_id = UNIPHIER_LD11_ID,
.nand_2cs = false,
.sbc_init = uniphier_ld11_sbc_init,
.pll_init = uniphier_ld11_pll_init,
@@ -161,7 +161,7 @@ static const struct uniphier_initdata uniphier_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD20)
{
- .soc_id = SOC_UNIPHIER_LD20,
+ .soc_id = UNIPHIER_LD20_ID,
.nand_2cs = false,
.sbc_init = uniphier_ld11_sbc_init,
.pll_init = uniphier_ld20_pll_init,
@@ -171,7 +171,7 @@ static const struct uniphier_initdata uniphier_initdata[] = {
};
static const struct uniphier_initdata *uniphier_get_initdata(
- enum uniphier_soc_id soc_id)
+ unsigned int soc_id)
{
int i;
@@ -186,12 +186,12 @@ static const struct uniphier_initdata *uniphier_get_initdata(
int board_init(void)
{
const struct uniphier_initdata *initdata;
- enum uniphier_soc_id soc_id;
+ unsigned int soc_id;
int ret;
led_puts("U0");
- soc_id = uniphier_get_soc_type();
+ soc_id = uniphier_get_soc_id();
initdata = uniphier_get_initdata(soc_id);
if (!initdata) {
pr_err("unsupported board\n");
@@ -57,14 +57,14 @@ u32 uniphier_ld20_boot_device(void)
int boot_mode;
u32 usb_boot_mask;
- switch (uniphier_get_soc_type()) {
+ switch (uniphier_get_soc_id()) {
#if defined(CONFIG_ARCH_UNIPHIER_LD11)
- case SOC_UNIPHIER_LD11:
+ case UNIPHIER_LD11_ID:
usb_boot_mask = 0x00000080;
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD20)
- case SOC_UNIPHIER_LD20:
+ case UNIPHIER_LD20_ID:
usb_boot_mask = 0x00000780;
break;
#endif
@@ -18,30 +18,30 @@ u32 spl_boot_device_raw(void)
if (boot_is_swapped())
return BOOT_DEVICE_NOR;
- switch (uniphier_get_soc_type()) {
+ switch (uniphier_get_soc_id()) {
#if defined(CONFIG_ARCH_UNIPHIER_SLD3)
- case SOC_UNIPHIER_SLD3:
+ case UNIPHIER_SLD3_ID:
return uniphier_sld3_boot_device();
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD4) || defined(CONFIG_ARCH_UNIPHIER_PRO4) || \
defined(CONFIG_ARCH_UNIPHIER_SLD8)
- case SOC_UNIPHIER_LD4:
- case SOC_UNIPHIER_PRO4:
- case SOC_UNIPHIER_SLD8:
+ case UNIPHIER_LD4_ID:
+ case UNIPHIER_PRO4_ID:
+ case UNIPHIER_SLD8_ID:
return uniphier_ld4_boot_device();
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PRO5)
- case SOC_UNIPHIER_PRO5:
+ case UNIPHIER_PRO5_ID:
return uniphier_pro5_boot_device();
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PXS2) || defined(CONFIG_ARCH_UNIPHIER_LD6B)
- case SOC_UNIPHIER_PXS2:
- case SOC_UNIPHIER_LD6B:
+ case UNIPHIER_PXS2_ID:
+ case UNIPHIER_LD6B_ID:
return uniphier_pxs2_boot_device();
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD11) || defined(CONFIG_ARCH_UNIPHIER_LD20)
- case SOC_UNIPHIER_LD11:
- case SOC_UNIPHIER_LD20:
+ case UNIPHIER_LD11_ID:
+ case UNIPHIER_LD20_ID:
return uniphier_ld20_boot_device();
#endif
default:
@@ -55,17 +55,17 @@ u32 spl_boot_device(void)
mode = spl_boot_device_raw();
- switch (uniphier_get_soc_type()) {
+ switch (uniphier_get_soc_id()) {
#if defined(CONFIG_ARCH_UNIPHIER_PXS2) || defined(CONFIG_ARCH_UNIPHIER_LD6B)
- case SOC_UNIPHIER_PXS2:
- case SOC_UNIPHIER_LD6B:
+ case UNIPHIER_PXS2_ID:
+ case UNIPHIER_LD6B_ID:
if (mode == BOOT_DEVICE_USB)
mode = BOOT_DEVICE_NOR;
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD11) || defined(CONFIG_ARCH_UNIPHIER_LD20)
- case SOC_UNIPHIER_LD11:
- case SOC_UNIPHIER_LD20:
+ case UNIPHIER_LD11_ID:
+ case UNIPHIER_LD20_ID:
if (mode == BOOT_DEVICE_MMC1 || mode == BOOT_DEVICE_USB)
mode = BOOT_DEVICE_BOARD;
break;
@@ -14,34 +14,34 @@ static int do_pinmon(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
printf("Boot Swap: %s\n\n", boot_is_swapped() ? "ON" : "OFF");
- switch (uniphier_get_soc_type()) {
+ switch (uniphier_get_soc_id()) {
#if defined(CONFIG_ARCH_UNIPHIER_SLD3)
- case SOC_UNIPHIER_SLD3:
+ case UNIPHIER_SLD3_ID:
uniphier_sld3_boot_mode_show();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD4) || defined(CONFIG_ARCH_UNIPHIER_PRO4) || \
defined(CONFIG_ARCH_UNIPHIER_SLD8)
- case SOC_UNIPHIER_LD4:
- case SOC_UNIPHIER_PRO4:
- case SOC_UNIPHIER_SLD8:
+ case UNIPHIER_LD4_ID:
+ case UNIPHIER_PRO4_ID:
+ case UNIPHIER_SLD8_ID:
uniphier_ld4_boot_mode_show();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PRO5)
- case SOC_UNIPHIER_PRO5:
+ case UNIPHIER_PRO5_ID:
uniphier_pro5_boot_mode_show();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PXS2) || defined(CONFIG_ARCH_UNIPHIER_LD6B)
- case SOC_UNIPHIER_PXS2:
- case SOC_UNIPHIER_LD6B:
+ case UNIPHIER_PXS2_ID:
+ case UNIPHIER_LD6B_ID:
uniphier_pxs2_boot_mode_show();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD11) || defined(CONFIG_ARCH_UNIPHIER_LD20)
- case SOC_UNIPHIER_LD11:
- case SOC_UNIPHIER_LD20:
+ case UNIPHIER_LD11_ID:
+ case UNIPHIER_LD20_ID:
uniphier_ld20_boot_mode_show();
break;
#endif
@@ -40,11 +40,11 @@ int uniphier_rom_get_mmc_funcptr(int (**send_cmd)(u32, u32),
{
const struct uniphier_romfunc_table *table;
- switch (uniphier_get_soc_type()) {
- case SOC_UNIPHIER_LD11:
+ switch (uniphier_get_soc_id()) {
+ case UNIPHIER_LD11_ID:
table = &uniphier_ld11_romfunc_table;
break;
- case SOC_UNIPHIER_LD20:
+ case UNIPHIER_LD20_ID:
table = &uniphier_ld20_romfunc_table;
break;
default:
new file mode 100644
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2013-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <linux/errno.h>
+#include <linux/io.h>
+
+#include "soc-info.h"
+
+int print_cpuinfo(void)
+{
+ unsigned int id, model, rev, required_model = 1, required_rev = 1;
+
+ id = uniphier_get_soc_id();
+ model = uniphier_get_soc_model();
+ rev = uniphier_get_soc_revision();
+
+ puts("CPU: ");
+
+ switch (id) {
+ case UNIPHIER_SLD3_ID:
+ puts("sLD3 (MN2WS0220)");
+ required_model = 2;
+ break;
+ case UNIPHIER_LD4_ID:
+ puts("LD4 (MN2WS0250)");
+ required_rev = 2;
+ break;
+ case UNIPHIER_PRO4_ID:
+ puts("Pro4 (MN2WS0230)");
+ break;
+ case UNIPHIER_SLD8_ID:
+ puts("sLD8 (MN2WS0270)");
+ break;
+ case UNIPHIER_PRO5_ID:
+ puts("Pro5 (MN2WS0300)");
+ break;
+ case UNIPHIER_PXS2_ID:
+ puts("PXs2 (MN2WS0310)");
+ break;
+ case UNIPHIER_LD6B_ID:
+ puts("LD6b (MN2WS0320)");
+ break;
+ case UNIPHIER_LD11_ID:
+ puts("LD11 (SC1405AP1)");
+ break;
+ case UNIPHIER_LD20_ID:
+ puts("LD20 (SC1401AJ1)");
+ break;
+ default:
+ printf("Unknown Processor ID (0x%x)\n", id);
+ return -1;
+ }
+
+ printf(" model %d", model);
+
+ printf(" (rev. %d)\n", rev);
+
+ if (model < required_model) {
+ printf("Sorry, this model is not supported.\n");
+ printf("Required model is %d.", required_model);
+ return -1;
+ } else if (rev < required_rev) {
+ printf("Sorry, this revision is not supported.\n");
+ printf("Required revision is %d.", required_rev);
+ return -1;
+ }
+
+ return 0;
+}
deleted file mode 100644
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2013-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#include <common.h>
-#include <linux/io.h>
-
-#include "sg-regs.h"
-
-int print_cpuinfo(void)
-{
- u32 revision, type, model, rev, required_model = 1, required_rev = 1;
-
- revision = readl(SG_REVISION);
- type = (revision & SG_REVISION_TYPE_MASK) >> SG_REVISION_TYPE_SHIFT;
- model = (revision & SG_REVISION_MODEL_MASK) >> SG_REVISION_MODEL_SHIFT;
- rev = (revision & SG_REVISION_REV_MASK) >> SG_REVISION_REV_SHIFT;
-
- puts("CPU: ");
-
- switch (type) {
- case 0x25:
- puts("PH1-sLD3 (MN2WS0220)");
- required_model = 2;
- break;
- case 0x26:
- puts("PH1-LD4 (MN2WS0250)");
- required_rev = 2;
- break;
- case 0x28:
- puts("PH1-Pro4 (MN2WS0230)");
- break;
- case 0x29:
- puts("PH1-sLD8 (MN2WS0270)");
- break;
- case 0x2A:
- puts("PH1-Pro5 (MN2WS0300)");
- break;
- case 0x2E:
- puts("ProXstream2 (MN2WS0310)");
- break;
- case 0x2F:
- puts("PH1-LD6b (MN2WS0320)");
- break;
- case 0x31:
- puts("PH1-LD11 (SC1405AP1)");
- break;
- case 0x32:
- puts("PH1-LD20 (SC1401AJ1)");
- break;
- default:
- printf("Unknown Processor ID (0x%x)\n", revision);
- return -1;
- }
-
- printf(" model %d", model);
-
- printf(" (rev. %d)\n", rev);
-
- if (model < required_model) {
- printf("Sorry, this model is not supported.\n");
- printf("Required model is %d.", required_model);
- return -1;
- } else if (rev < required_rev) {
- printf("Sorry, this revision is not supported.\n");
- printf("Required revision is %d.", required_rev);
- return -1;
- }
-
- return 0;
-}
@@ -32,45 +32,45 @@ void _debug_uart_init(void)
void __iomem *base = (void __iomem *)CONFIG_DEBUG_UART_BASE;
unsigned int divisor;
- switch (uniphier_get_soc_type()) {
+ switch (uniphier_get_soc_id()) {
#if defined(CONFIG_ARCH_UNIPHIER_SLD3)
- case SOC_UNIPHIER_SLD3:
+ case UNIPHIER_SLD3_ID:
divisor = uniphier_sld3_debug_uart_init();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD4)
- case SOC_UNIPHIER_LD4:
+ case UNIPHIER_LD4_ID:
divisor = uniphier_ld4_debug_uart_init();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PRO4)
- case SOC_UNIPHIER_PRO4:
+ case UNIPHIER_PRO4_ID:
divisor = uniphier_pro4_debug_uart_init();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_SLD8)
- case SOC_UNIPHIER_SLD8:
+ case UNIPHIER_SLD8_ID:
divisor = uniphier_sld8_debug_uart_init();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PRO5)
- case SOC_UNIPHIER_PRO5:
+ case UNIPHIER_PRO5_ID:
divisor = uniphier_pro5_debug_uart_init();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PXS2)
- case SOC_UNIPHIER_PXS2:
+ case UNIPHIER_PXS2_ID:
divisor = uniphier_pxs2_debug_uart_init();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD6B)
- case SOC_UNIPHIER_LD6B:
+ case UNIPHIER_LD6B_ID:
divisor = uniphier_ld6b_debug_uart_init();
break;
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD11) || defined(CONFIG_ARCH_UNIPHIER_LD20)
- case SOC_UNIPHIER_LD11:
- case SOC_UNIPHIER_LD20:
+ case UNIPHIER_LD11_ID:
+ case UNIPHIER_LD20_ID:
divisor = uniphier_ld20_debug_uart_init();
break;
#endif
@@ -245,17 +245,17 @@ static int do_ddr(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
char *cmd = argv[1];
const struct phy_param *phy_param;
- switch (uniphier_get_soc_type()) {
- case SOC_UNIPHIER_LD4:
+ switch (uniphier_get_soc_id()) {
+ case UNIPHIER_LD4_ID:
phy_param = uniphier_ld4_phy_param;
break;
- case SOC_UNIPHIER_PRO4:
+ case UNIPHIER_PRO4_ID:
phy_param = uniphier_pro4_phy_param;
break;
- case SOC_UNIPHIER_SLD8:
+ case UNIPHIER_SLD8_ID:
phy_param = uniphier_sld8_phy_param;
break;
- case SOC_UNIPHIER_LD11:
+ case UNIPHIER_LD11_ID:
phy_param = uniphier_ld11_phy_param;
break;
default:
@@ -97,7 +97,7 @@ int ft_board_setup(void *fdt, bd_t *bd)
const unsigned long rsv_size = 64;
int ch, ret;
- if (uniphier_get_soc_type() != SOC_UNIPHIER_LD20)
+ if (uniphier_get_soc_id() != UNIPHIER_LD20_ID)
return 0;
param = uniphier_get_board_param();
@@ -15,12 +15,6 @@
/* Revision */
#define SG_REVISION (SG_CTRL_BASE | 0x0000)
-#define SG_REVISION_TYPE_SHIFT 16
-#define SG_REVISION_TYPE_MASK (0xff << SG_REVISION_TYPE_SHIFT)
-#define SG_REVISION_MODEL_SHIFT 8
-#define SG_REVISION_MODEL_MASK (0x3 << SG_REVISION_MODEL_SHIFT)
-#define SG_REVISION_REV_SHIFT 0
-#define SG_REVISION_REV_MASK (0x1f << SG_REVISION_REV_SHIFT)
/* Memory Configuration */
#define SG_MEMCONF (SG_CTRL_BASE | 0x0400)
new file mode 100644
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <linux/io.h>
+#include <linux/types.h>
+
+#include "sg-regs.h"
+#include "soc-info.h"
+
+static unsigned int __uniphier_get_revision_field(unsigned int mask,
+ unsigned int shift)
+{
+ u32 revision = readl(SG_REVISION);
+
+ return (revision >> shift) & mask;
+}
+
+unsigned int uniphier_get_soc_id(void)
+{
+ return __uniphier_get_revision_field(0xff, 16);
+}
+
+unsigned int uniphier_get_soc_model(void)
+{
+ return __uniphier_get_revision_field(0x3, 8);
+}
+
+unsigned int uniphier_get_soc_revision(void)
+{
+ return __uniphier_get_revision_field(0x1f, 0);
+}
@@ -4,73 +4,21 @@
* SPDX-License-Identifier: GPL-2.0+
*/
-#ifndef __MACH_SOC_INFO_H__
-#define __MACH_SOC_INFO_H__
-
-enum uniphier_soc_id {
- SOC_UNIPHIER_SLD3,
- SOC_UNIPHIER_LD4,
- SOC_UNIPHIER_PRO4,
- SOC_UNIPHIER_SLD8,
- SOC_UNIPHIER_PRO5,
- SOC_UNIPHIER_PXS2,
- SOC_UNIPHIER_LD6B,
- SOC_UNIPHIER_LD11,
- SOC_UNIPHIER_LD20,
- SOC_UNIPHIER_UNKNOWN,
-};
-
-#define UNIPHIER_NR_ENABLED_SOCS \
- IS_ENABLED(CONFIG_ARCH_UNIPHIER_SLD3) + \
- IS_ENABLED(CONFIG_ARCH_UNIPHIER_LD4) + \
- IS_ENABLED(CONFIG_ARCH_UNIPHIER_PRO4) + \
- IS_ENABLED(CONFIG_ARCH_UNIPHIER_SLD8) + \
- IS_ENABLED(CONFIG_ARCH_UNIPHIER_PRO5) + \
- IS_ENABLED(CONFIG_ARCH_UNIPHIER_PXS2) + \
- IS_ENABLED(CONFIG_ARCH_UNIPHIER_LD6B) + \
- IS_ENABLED(CONFIG_ARCH_UNIPHIER_LD11) + \
- IS_ENABLED(CONFIG_ARCH_UNIPHIER_LD20)
-
-#define UNIPHIER_MULTI_SOC ((UNIPHIER_NR_ENABLED_SOCS) > 1)
-
-#if UNIPHIER_MULTI_SOC
-enum uniphier_soc_id uniphier_get_soc_type(void);
-#else
-static inline enum uniphier_soc_id uniphier_get_soc_type(void)
-{
-#if defined(CONFIG_ARCH_UNIPHIER_SLD3)
- return SOC_UNIPHIER_SLD3;
-#endif
-#if defined(CONFIG_ARCH_UNIPHIER_LD4)
- return SOC_UNIPHIER_LD4;
-#endif
-#if defined(CONFIG_ARCH_UNIPHIER_PRO4)
- return SOC_UNIPHIER_PRO4;
-#endif
-#if defined(CONFIG_ARCH_UNIPHIER_SLD8)
- return SOC_UNIPHIER_SLD8;
-#endif
-#if defined(CONFIG_ARCH_UNIPHIER_PRO5)
- return SOC_UNIPHIER_PRO5;
-#endif
-#if defined(CONFIG_ARCH_UNIPHIER_PXS2)
- return SOC_UNIPHIER_PXS2;
-#endif
-#if defined(CONFIG_ARCH_UNIPHIER_LD6B)
- return SOC_UNIPHIER_LD6B;
-#endif
-#if defined(CONFIG_ARCH_UNIPHIER_LD11)
- return SOC_UNIPHIER_LD11;
-#endif
-#if defined(CONFIG_ARCH_UNIPHIER_LD20)
- return SOC_UNIPHIER_LD20;
-#endif
-
- return SOC_UNIPHIER_UNKNOWN;
-}
-#endif
-
-int uniphier_get_soc_model(void);
-int uniphier_get_soc_revision(void);
-
-#endif /* __MACH_SOC_INFO_H__ */
+#ifndef __UNIPHIER_SOC_INFO_H__
+#define __UNIPHIER_SOC_INFO_H__
+
+#define UNIPHIER_SLD3_ID 0x25
+#define UNIPHIER_LD4_ID 0x26
+#define UNIPHIER_PRO4_ID 0x28
+#define UNIPHIER_SLD8_ID 0x29
+#define UNIPHIER_PRO5_ID 0x2a
+#define UNIPHIER_PXS2_ID 0x2e
+#define UNIPHIER_LD6B_ID 0x2f
+#define UNIPHIER_LD11_ID 0x31
+#define UNIPHIER_LD20_ID 0x32
+
+unsigned int uniphier_get_soc_id(void);
+unsigned int uniphier_get_soc_model(void);
+unsigned int uniphier_get_soc_revision(void);
+
+#endif /* __UNIPHIER_SOC_INFO_H__ */
deleted file mode 100644
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#include <linux/io.h>
-#include <linux/types.h>
-
-#include "sg-regs.h"
-#include "soc-info.h"
-
-#if UNIPHIER_MULTI_SOC
-enum uniphier_soc_id uniphier_get_soc_type(void)
-{
- u32 revision = readl(SG_REVISION);
- enum uniphier_soc_id ret;
-
- switch ((revision & SG_REVISION_TYPE_MASK) >> SG_REVISION_TYPE_SHIFT) {
-#ifdef CONFIG_ARCH_UNIPHIER_SLD3
- case 0x25:
- ret = SOC_UNIPHIER_SLD3;
- break;
-#endif
-#ifdef CONFIG_ARCH_UNIPHIER_LD4
- case 0x26:
- ret = SOC_UNIPHIER_LD4;
- break;
-#endif
-#ifdef CONFIG_ARCH_UNIPHIER_PRO4
- case 0x28:
- ret = SOC_UNIPHIER_PRO4;
- break;
-#endif
-#ifdef CONFIG_ARCH_UNIPHIER_SLD8
- case 0x29:
- ret = SOC_UNIPHIER_SLD8;
- break;
-#endif
-#ifdef CONFIG_ARCH_UNIPHIER_PRO5
- case 0x2A:
- ret = SOC_UNIPHIER_PRO5;
- break;
-#endif
-#ifdef CONFIG_ARCH_UNIPHIER_PXS2
- case 0x2E:
- ret = SOC_UNIPHIER_PXS2;
- break;
-#endif
-#ifdef CONFIG_ARCH_UNIPHIER_LD6B
- case 0x2F:
- ret = SOC_UNIPHIER_LD6B;
- break;
-#endif
-#ifdef CONFIG_ARCH_UNIPHIER_LD11
- case 0x31:
- ret = SOC_UNIPHIER_LD11;
- break;
-#endif
-#ifdef CONFIG_ARCH_UNIPHIER_LD20
- case 0x32:
- ret = SOC_UNIPHIER_LD20;
- break;
-#endif
- default:
- ret = SOC_UNIPHIER_UNKNOWN;
- break;
- }
-
- return ret;
-}
-#endif
-
-int uniphier_get_soc_model(void)
-{
- return (readl(SG_REVISION) & SG_REVISION_MODEL_MASK) >>
- SG_REVISION_MODEL_SHIFT;
-}
-
-int uniphier_get_soc_revision(void)
-{
- return (readl(SG_REVISION) & SG_REVISION_REV_MASK) >>
- SG_REVISION_REV_SHIFT;
-}
@@ -14,7 +14,7 @@
#include "soc-info.h"
struct uniphier_spl_initdata {
- enum uniphier_soc_id soc_id;
+ unsigned int soc_id;
void (*bcu_init)(const struct uniphier_board_data *bd);
void (*early_clk_init)(void);
int (*dpll_init)(const struct uniphier_board_data *bd);
@@ -26,7 +26,7 @@ struct uniphier_spl_initdata {
static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
#if defined(CONFIG_ARCH_UNIPHIER_SLD3)
{
- .soc_id = SOC_UNIPHIER_SLD3,
+ .soc_id = UNIPHIER_SLD3_ID,
.bcu_init = uniphier_sld3_bcu_init,
.early_clk_init = uniphier_sld3_early_clk_init,
.dpll_init = uniphier_sld3_dpll_init,
@@ -37,7 +37,7 @@ static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD4)
{
- .soc_id = SOC_UNIPHIER_LD4,
+ .soc_id = UNIPHIER_LD4_ID,
.bcu_init = uniphier_ld4_bcu_init,
.early_clk_init = uniphier_sld3_early_clk_init,
.dpll_init = uniphier_ld4_dpll_init,
@@ -48,7 +48,7 @@ static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PRO4)
{
- .soc_id = SOC_UNIPHIER_PRO4,
+ .soc_id = UNIPHIER_PRO4_ID,
.early_clk_init = uniphier_sld3_early_clk_init,
.dpll_init = uniphier_pro4_dpll_init,
.memconf_init = uniphier_memconf_2ch_init,
@@ -58,7 +58,7 @@ static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_SLD8)
{
- .soc_id = SOC_UNIPHIER_SLD8,
+ .soc_id = UNIPHIER_SLD8_ID,
.bcu_init = uniphier_ld4_bcu_init,
.early_clk_init = uniphier_sld3_early_clk_init,
.dpll_init = uniphier_sld8_dpll_init,
@@ -69,7 +69,7 @@ static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PRO5)
{
- .soc_id = SOC_UNIPHIER_PRO5,
+ .soc_id = UNIPHIER_PRO5_ID,
.early_clk_init = uniphier_sld3_early_clk_init,
.dpll_init = uniphier_pro5_dpll_init,
.memconf_init = uniphier_memconf_2ch_init,
@@ -79,7 +79,7 @@ static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_PXS2)
{
- .soc_id = SOC_UNIPHIER_PXS2,
+ .soc_id = UNIPHIER_PXS2_ID,
.early_clk_init = uniphier_sld3_early_clk_init,
.dpll_init = uniphier_pxs2_dpll_init,
.memconf_init = uniphier_memconf_3ch_init,
@@ -89,7 +89,7 @@ static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD6B)
{
- .soc_id = SOC_UNIPHIER_LD6B,
+ .soc_id = UNIPHIER_LD6B_ID,
.early_clk_init = uniphier_sld3_early_clk_init,
.dpll_init = uniphier_pxs2_dpll_init,
.memconf_init = uniphier_memconf_3ch_init,
@@ -99,7 +99,7 @@ static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD11)
{
- .soc_id = SOC_UNIPHIER_LD11,
+ .soc_id = UNIPHIER_LD11_ID,
.early_clk_init = uniphier_ld11_early_clk_init,
.dpll_init = uniphier_ld11_dpll_init,
.memconf_init = uniphier_memconf_2ch_init,
@@ -109,7 +109,7 @@ static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
#endif
#if defined(CONFIG_ARCH_UNIPHIER_LD20)
{
- .soc_id = SOC_UNIPHIER_LD20,
+ .soc_id = UNIPHIER_LD20_ID,
.early_clk_init = uniphier_ld11_early_clk_init,
.dpll_init = uniphier_ld20_dpll_init,
.memconf_init = uniphier_memconf_3ch_init,
@@ -120,7 +120,7 @@ static const struct uniphier_spl_initdata uniphier_spl_initdata[] = {
};
static const struct uniphier_spl_initdata *uniphier_get_spl_initdata(
- enum uniphier_soc_id soc_id)
+ unsigned int soc_id)
{
int i;
@@ -136,7 +136,7 @@ void spl_board_init(void)
{
const struct uniphier_board_data *bd;
const struct uniphier_spl_initdata *initdata;
- enum uniphier_soc_id soc_id;
+ unsigned int soc_id;
int ret;
#ifdef CONFIG_DEBUG_UART
@@ -147,7 +147,7 @@ void spl_board_init(void)
if (!bd)
hang();
- soc_id = uniphier_get_soc_type();
+ soc_id = uniphier_get_soc_id();
initdata = uniphier_get_spl_initdata(soc_id);
if (!initdata)
hang();
Currently, uniphier_get_soc_type() converts the SoC ID (this is read from the revision register) to an enum symbol to use it for SoC identification. Come to think of it, there is no need for the conversion in the first place. Using the SoC ID from the register as-is a straightforward way. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> --- arch/arm/mach-uniphier/Makefile | 4 +- arch/arm/mach-uniphier/arm32/psci.c | 12 ++-- arch/arm/mach-uniphier/board_init.c | 26 +++---- arch/arm/mach-uniphier/boot-mode/boot-mode-ld20.c | 6 +- arch/arm/mach-uniphier/boot-mode/boot-mode.c | 30 ++++---- arch/arm/mach-uniphier/boot-mode/cmd_pinmon.c | 20 +++--- arch/arm/mach-uniphier/boot-mode/spl_board.c | 6 +- arch/arm/mach-uniphier/cpu-info.c | 73 +++++++++++++++++++ arch/arm/mach-uniphier/cpu_info.c | 73 ------------------- arch/arm/mach-uniphier/debug-uart/debug-uart.c | 20 +++--- arch/arm/mach-uniphier/dram/cmd_ddrphy.c | 10 +-- arch/arm/mach-uniphier/dram_init.c | 2 +- arch/arm/mach-uniphier/sg-regs.h | 6 -- arch/arm/mach-uniphier/soc-info.c | 34 +++++++++ arch/arm/mach-uniphier/soc-info.h | 88 +++++------------------ arch/arm/mach-uniphier/soc_info.c | 84 ---------------------- arch/arm/mach-uniphier/spl_board_init.c | 26 +++---- 17 files changed, 206 insertions(+), 314 deletions(-) create mode 100644 arch/arm/mach-uniphier/cpu-info.c delete mode 100644 arch/arm/mach-uniphier/cpu_info.c create mode 100644 arch/arm/mach-uniphier/soc-info.c delete mode 100644 arch/arm/mach-uniphier/soc_info.c -- 2.7.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot