summaryrefslogtreecommitdiff
path: root/arch/arm/mach-uniphier
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-uniphier')
-rw-r--r--arch/arm/mach-uniphier/Makefile1
-rw-r--r--arch/arm/mach-uniphier/board_late_init.c3
-rw-r--r--arch/arm/mach-uniphier/init.h1
-rw-r--r--arch/arm/mach-uniphier/pinctrl-glue.c30
-rw-r--r--arch/arm/mach-uniphier/sg-regs.h5
-rw-r--r--arch/arm/mach-uniphier/soc-info.c21
6 files changed, 16 insertions, 45 deletions
diff --git a/arch/arm/mach-uniphier/Makefile b/arch/arm/mach-uniphier/Makefile
index 38b6d904f4..d333b7091d 100644
--- a/arch/arm/mach-uniphier/Makefile
+++ b/arch/arm/mach-uniphier/Makefile
@@ -20,7 +20,6 @@ obj-y += reset.o
endif
obj-$(CONFIG_MICRO_SUPPORT_CARD) += micro-support-card.o
-obj-y += pinctrl-glue.o
obj-$(CONFIG_MMC) += mmc-first-dev.o
obj-y += fdt-fixup.o
diff --git a/arch/arm/mach-uniphier/board_late_init.c b/arch/arm/mach-uniphier/board_late_init.c
index b800e8b8c6..8c5e5bb58f 100644
--- a/arch/arm/mach-uniphier/board_late_init.c
+++ b/arch/arm/mach-uniphier/board_late_init.c
@@ -9,9 +9,7 @@
#include <init.h>
#include <spl.h>
#include <linux/libfdt.h>
-#include <nand.h>
#include <stdio.h>
-#include <linux/io.h>
#include <linux/printk.h>
#include "init.h"
@@ -53,6 +51,7 @@ fail:
static void uniphier_set_env_addr(const char *env, const char *offset_env)
{
+ DECLARE_GLOBAL_DATA_PTR;
unsigned long offset = 0;
const char *str;
char *end;
diff --git a/arch/arm/mach-uniphier/init.h b/arch/arm/mach-uniphier/init.h
index dd978c0208..535c06343d 100644
--- a/arch/arm/mach-uniphier/init.h
+++ b/arch/arm/mach-uniphier/init.h
@@ -73,7 +73,6 @@ void uniphier_pxs3_clk_init(void);
unsigned int uniphier_boot_device_raw(void);
int uniphier_have_internal_stm(void);
int uniphier_boot_from_backend(void);
-int uniphier_pin_init(const char *pinconfig_name);
#ifdef CONFIG_ARM64
void uniphier_mem_map_init(unsigned long dram_base, unsigned long dram_size);
diff --git a/arch/arm/mach-uniphier/pinctrl-glue.c b/arch/arm/mach-uniphier/pinctrl-glue.c
deleted file mode 100644
index 2e07264695..0000000000
--- a/arch/arm/mach-uniphier/pinctrl-glue.c
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2016 Socionext Inc.
- * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
- */
-
-#include <linux/errno.h>
-#include <dm.h>
-#include <dm/pinctrl.h>
-
-#include "init.h"
-
-int uniphier_pin_init(const char *pinconfig_name)
-{
- struct udevice *pctldev, *config;
- int ret;
-
- ret = uclass_first_device(UCLASS_PINCTRL, &pctldev);
- if (ret)
- return ret;
-
- device_foreach_child(config, pctldev) {
- if (strcmp(config->name, pinconfig_name))
- continue;
-
- return pinctrl_generic_set_state(pctldev, config);
- }
-
- return -ENODEV;
-}
diff --git a/arch/arm/mach-uniphier/sg-regs.h b/arch/arm/mach-uniphier/sg-regs.h
index f47d101949..a0fa51a8b7 100644
--- a/arch/arm/mach-uniphier/sg-regs.h
+++ b/arch/arm/mach-uniphier/sg-regs.h
@@ -10,6 +10,8 @@
#ifndef UNIPHIER_SG_REGS_H
#define UNIPHIER_SG_REGS_H
+#include <linux/bitops.h>
+
#ifndef __ASSEMBLY__
#include <linux/compiler.h>
#ifdef CONFIG_ARCH_UNIPHIER_V8_MULTI
@@ -24,6 +26,9 @@ extern void __iomem *sg_base;
/* Revision */
#define SG_REVISION 0x0000
+#define SG_REVISION_TYPE_MASK GENMASK(23, 16)
+#define SG_REVISION_MODEL_MASK GENMASK(10, 8)
+#define SG_REVISION_REV_MASK GENMASK(4, 0)
/* Memory Configuration */
#define SG_MEMCONF 0x0400
diff --git a/arch/arm/mach-uniphier/soc-info.c b/arch/arm/mach-uniphier/soc-info.c
index f021a8cab3..b0221016d1 100644
--- a/arch/arm/mach-uniphier/soc-info.c
+++ b/arch/arm/mach-uniphier/soc-info.c
@@ -4,31 +4,30 @@
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
*/
+#include <linux/bitfield.h>
#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_base + SG_REVISION);
-
- return (revision >> shift) & mask;
-}
-
unsigned int uniphier_get_soc_id(void)
{
- return __uniphier_get_revision_field(0xff, 16);
+ u32 rev = readl(sg_base + SG_REVISION);
+
+ return FIELD_GET(SG_REVISION_TYPE_MASK, rev);
}
unsigned int uniphier_get_soc_model(void)
{
- return __uniphier_get_revision_field(0x7, 8);
+ u32 rev = readl(sg_base + SG_REVISION);
+
+ return FIELD_GET(SG_REVISION_MODEL_MASK, rev);
}
unsigned int uniphier_get_soc_revision(void)
{
- return __uniphier_get_revision_field(0x1f, 0);
+ u32 rev = readl(sg_base + SG_REVISION);
+
+ return FIELD_GET(SG_REVISION_REV_MASK, rev);
}