diff options
Diffstat (limited to 'arch/arm/mach-uniphier')
-rw-r--r-- | arch/arm/mach-uniphier/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-uniphier/board_late_init.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-uniphier/init.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-uniphier/pinctrl-glue.c | 30 | ||||
-rw-r--r-- | arch/arm/mach-uniphier/sg-regs.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-uniphier/soc-info.c | 21 |
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); } |