]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drivers: soc: Add support for Exynos PMU driver
authorPankaj Dubey <pankaj.dubey@samsung.com>
Fri, 18 Dec 2015 03:32:16 +0000 (09:02 +0530)
committerKrzysztof Kozlowski <k.kozlowski@samsung.com>
Thu, 25 Feb 2016 01:18:07 +0000 (10:18 +0900)
This patch moves Exynos PMU driver implementation from "arm/mach-exynos"
to "drivers/soc/samsung". This driver is mainly used for setting misc
bits of register from PMU IP of Exynos SoC which will be required to
configure before Suspend/Resume. Currently all these settings are done
in "arch/arm/mach-exynos/pmu.c" but moving ahead for ARM64 based SoC
support, there is a need of this PMU driver in driver/* folder.

This driver uses existing DT binding information and there should
be no functionality change in the supported platforms.

Signed-off-by: Amit Daniel Kachhap <amitdanielk@gmail.com>
[tested on Peach-Pi (Exynos5880)]
Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
[for testing on Trats2 (Exynos4412) and Odroid XU3 (Exynos5422)]
Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
[k.kozlowski: Rebased, add necessary infrastructure for building and
selecting drivers/soc because original patchset was on top of movement
SROMc to drivers/soc]
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
12 files changed:
arch/arm/mach-exynos/Kconfig
arch/arm/mach-exynos/Makefile
drivers/soc/Kconfig
drivers/soc/Makefile
drivers/soc/samsung/Kconfig [new file with mode: 0644]
drivers/soc/samsung/Makefile [new file with mode: 0644]
drivers/soc/samsung/exynos-pmu.c [moved from arch/arm/mach-exynos/pmu.c with 100% similarity]
drivers/soc/samsung/exynos-pmu.h [moved from arch/arm/mach-exynos/exynos-pmu.h with 100% similarity]
drivers/soc/samsung/exynos3250-pmu.c [moved from arch/arm/mach-exynos/exynos3250-pmu.c with 100% similarity]
drivers/soc/samsung/exynos4-pmu.c [moved from arch/arm/mach-exynos/exynos4-pmu.c with 100% similarity]
drivers/soc/samsung/exynos5250-pmu.c [moved from arch/arm/mach-exynos/exynos5250-pmu.c with 100% similarity]
drivers/soc/samsung/exynos5420-pmu.c [moved from arch/arm/mach-exynos/exynos5420-pmu.c with 100% similarity]

index 3003ab359c9c89fe899f845d39158f2e0f5ced65..c4989c2bcad8e874b842dcebe5bd2deb9b9ca751 100644 (file)
@@ -17,6 +17,7 @@ menuconfig ARCH_EXYNOS
        select ARM_GIC
        select COMMON_CLK_SAMSUNG
        select EXYNOS_THERMAL
+       select EXYNOS_PMU
        select HAVE_ARM_SCU if SMP
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
@@ -25,6 +26,7 @@ menuconfig ARCH_EXYNOS
        select PINCTRL_EXYNOS
        select PM_GENERIC_DOMAINS if PM
        select S5P_DEV_MFC
+       select SOC_SAMSUNG
        select SRAM
        select THERMAL
        select MFD_SYSCON
index 2d58063ddc31f3204b2f46918e7d57007d6dccec..34d29df3e0062342af5510d6a46addbe4fb21083 100644 (file)
@@ -9,9 +9,7 @@ ccflags-$(CONFIG_ARCH_MULTIPLATFORM) += -I$(srctree)/$(src)/include -I$(srctree)
 
 # Core
 
-obj-$(CONFIG_ARCH_EXYNOS)      += exynos.o pmu.o exynos-smc.o firmware.o \
-                                       exynos3250-pmu.o exynos4-pmu.o \
-                                       exynos5250-pmu.o exynos5420-pmu.o
+obj-$(CONFIG_ARCH_EXYNOS)      += exynos.o exynos-smc.o firmware.o
 
 obj-$(CONFIG_EXYNOS_CPU_SUSPEND) += pm.o sleep.o
 obj-$(CONFIG_PM_SLEEP)         += suspend.o
index 88260205a2614c84e8293bf82ca47c49abb2e29d..cb58ef0d9b2c50e071eeb453dca3a7aaac52a8de 100644 (file)
@@ -6,6 +6,7 @@ source "drivers/soc/fsl/qe/Kconfig"
 source "drivers/soc/mediatek/Kconfig"
 source "drivers/soc/qcom/Kconfig"
 source "drivers/soc/rockchip/Kconfig"
+source "drivers/soc/samsung/Kconfig"
 source "drivers/soc/sunxi/Kconfig"
 source "drivers/soc/tegra/Kconfig"
 source "drivers/soc/ti/Kconfig"
index 2afdc74f7491adf08e82937d0b6676e107705e2a..5ade71306ee10d080414aaf2168fc93fbcd6fe4b 100644 (file)
@@ -10,6 +10,7 @@ obj-y                         += fsl/
 obj-$(CONFIG_ARCH_MEDIATEK)    += mediatek/
 obj-$(CONFIG_ARCH_QCOM)                += qcom/
 obj-$(CONFIG_ARCH_ROCKCHIP)            += rockchip/
+obj-$(CONFIG_SOC_SAMSUNG)      += samsung/
 obj-$(CONFIG_ARCH_SUNXI)       += sunxi/
 obj-$(CONFIG_ARCH_TEGRA)       += tegra/
 obj-$(CONFIG_SOC_TI)           += ti/
diff --git a/drivers/soc/samsung/Kconfig b/drivers/soc/samsung/Kconfig
new file mode 100644 (file)
index 0000000..2dff95d
--- /dev/null
@@ -0,0 +1,13 @@
+#
+# SAMSUNG SoC drivers
+#
+menu "Samsung SOC driver support"
+
+config SOC_SAMSUNG
+       bool
+
+config EXYNOS_PMU
+       bool
+       depends on ARM && ARCH_EXYNOS
+
+endmenu
diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile
new file mode 100644 (file)
index 0000000..f64ac4d
--- /dev/null
@@ -0,0 +1,2 @@
+obj-$(CONFIG_EXYNOS_PMU)       += exynos-pmu.o exynos3250-pmu.o exynos4-pmu.o \
+                                       exynos5250-pmu.o exynos5420-pmu.o