diff options
author | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2019-03-28 12:07:49 +0100 |
---|---|---|
committer | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2019-03-28 12:12:50 +0100 |
commit | 7482750daa9a6a7e7edf32264cfeb2160d823b08 (patch) | |
tree | 9634af98cf0568fe1b3be508b41929ae5025ce89 | |
parent | 43c6713d468ddae20640cb8483a87a7e9587a62b (diff) | |
download | linux-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/Kconfig | 14 | ||||
-rw-r--r-- | drivers/soc/samsung/Makefile | 9 | ||||
-rw-r--r-- | drivers/soc/samsung/exynos5422-asv.h | 10 | ||||
-rw-r--r-- | drivers/soc/samsung/exynos5433-asv.h | 9 |
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, |