summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2019-03-28 12:07:49 +0100
committerSylwester Nawrocki <s.nawrocki@samsung.com>2019-03-28 12:12:50 +0100
commit7482750daa9a6a7e7edf32264cfeb2160d823b08 (patch)
tree9634af98cf0568fe1b3be508b41929ae5025ce89
parent43c6713d468ddae20640cb8483a87a7e9587a62b (diff)
downloadlinux-exynos-7482750daa9a6a7e7edf32264cfeb2160d823b08.tar.gz
linux-exynos-7482750daa9a6a7e7edf32264cfeb2160d823b08.tar.bz2
linux-exynos-7482750daa9a6a7e7edf32264cfeb2160d823b08.zip
soc: samsung: Split ASV drivers into ARM and ARM64 partssubmit/tizen/20190329.020226accepted/tizen/unified/20190330.030053
This fixes build error with tizen_odroid_defconfig related to missing MTD symbols required by exynos5433-asv.c driver. The Exynos5433 ASV driver has dependency on MTD, to avoid inheriting this dependency by the Exynos5422 ASV driver split Exynos ASV drivers into ARM and ARM64 parts, similarly as it is done for the PMU. This also has an advantage that we don't need to include ARM ASV drivers on ARM64 SoCs and we can build only ARM ASV drivers for ARM SoCs. Change-Id: I3d647b784f936dcb535632e4ee15a7d571d7a131 Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
-rw-r--r--drivers/soc/samsung/Kconfig14
-rw-r--r--drivers/soc/samsung/Makefile9
-rw-r--r--drivers/soc/samsung/exynos5422-asv.h10
-rw-r--r--drivers/soc/samsung/exynos5433-asv.h9
4 files changed, 37 insertions, 5 deletions
diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig
index ae4dc02d84a5..63fb6456db38 100644
--- a/drivers/soc/samsung/Kconfig
+++ b/drivers/soc/samsung/Kconfig
@@ -8,8 +8,20 @@ if SOC_SAMSUNG
config EXYNOS_ASV
bool "Exynos Adaptive Supply Voltage support" if COMPILE_TEST
- depends on ARCH_EXYNOS || COMPILE_TEST
+ depends on ARCH_EXYNOS || ((ARM || ARM64) && COMPILE_TEST)
depends on EXYNOS_CHIPID
+ select EXYNOS_ASV_ARM if ARM && ARCH_EXYNOS
+ select EXYNOS_ASV_ARM64 if ARM64 && ARCH_EXYNOS && MTD
+
+# There is no need to enable these drivers for ARMv8
+config EXYNOS_ASV_ARM
+ bool "Exynos ASV ARMv7-specific driver extensions" if COMPILE_TEST
+ depends on EXYNOS_ASV
+
+# There is no need to enable these drivers for ARMv7
+config EXYNOS_ASV_ARM64
+ bool "Exynos ASV ARMv8-specific driver extensions" if COMPILE_TEST
+ depends on EXYNOS_ASV
config EXYNOS_CHIPID
bool "Exynos Chipid controller driver" if COMPILE_TEST
diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile
index 0b50e0ef7d62..51927cfb2019 100644
--- a/drivers/soc/samsung/Makefile
+++ b/drivers/soc/samsung/Makefile
@@ -1,9 +1,10 @@
-obj-$(CONFIG_EXYNOS_CHIPID) += exynos-chipid.o
-obj-$(CONFIG_EXYNOS_PMU) += exynos-pmu.o exynos-sysram.o
+obj-$(CONFIG_EXYNOS_ASV) += exynos-asv.o
+obj-$(CONFIG_EXYNOS_ASV_ARM) += exynos5422-asv.o
+obj-$(CONFIG_EXYNOS_ASV_ARM64) += exynos5433-asv.o
-obj-$(CONFIG_EXYNOS_ASV) += exynos-asv.o exynos5422-asv.o \
- exynos5433-asv.o
+obj-$(CONFIG_EXYNOS_CHIPID) += exynos-chipid.o
+obj-$(CONFIG_EXYNOS_PMU) += exynos-pmu.o exynos-sysram.o
obj-$(CONFIG_EXYNOS_PMU_ARM_DRIVERS) += exynos3250-pmu.o exynos4-pmu.o \
exynos5250-pmu.o exynos5420-pmu.o
obj-$(CONFIG_EXYNOS_PMU_ARM64_DRIVERS) += exynos-pm.o exynos5433-pmu.o
diff --git a/drivers/soc/samsung/exynos5422-asv.h b/drivers/soc/samsung/exynos5422-asv.h
index 9d994c5d0de4..b6d81b29d01d 100644
--- a/drivers/soc/samsung/exynos5422-asv.h
+++ b/drivers/soc/samsung/exynos5422-asv.h
@@ -9,7 +9,17 @@
#ifndef __EXYNOS5422_ASV_H
#define __EXYNOS5422_ASV_H
+#include <linux/errno.h>
+
struct exynos_asv;
+
+#ifdef CONFIG_EXYNOS_ASV_ARM
int exynos5422_asv_init(struct exynos_asv *asv);
+#else
+static inline int exynos5422_asv_init(struct exynos_asv *asv)
+{
+ return -ENOTSUPP;
+}
+#endif
#endif /* __EXYNOS5422_ASV_H */
diff --git a/drivers/soc/samsung/exynos5433-asv.h b/drivers/soc/samsung/exynos5433-asv.h
index e7df107dc48d..6e1840597366 100644
--- a/drivers/soc/samsung/exynos5433-asv.h
+++ b/drivers/soc/samsung/exynos5433-asv.h
@@ -13,9 +13,18 @@
#ifndef EXYNOS5433_ASV_H__
#define EXYNOS5433_ASV_H__
+#include <linux/errno.h>
+
struct exynos_asv;
+#ifdef CONFIG_EXYNOS_ASV_ARM64
int exynos5433_asv_init(struct exynos_asv *asv);
+#else
+static inline int exynos5433_asv_init(struct exynos_asv *asv)
+{
+ return -ENOTSUPP;
+}
+#endif
enum sysc_dvfs_level {
SYSC_DVFS_L0 = 0,