[PATCH 1/2] ARM: S5PV310: Add PMU for S5PV310 hotplug
Kukjin Kim
kgene.kim at samsung.com
Fri Sep 17 01:13:07 EDT 2010
From: Changhwan Youn <chaos.youn at samsung.com>
This patch adds PMU(Power Management Unit) for S5PV310/S5PC210 hotplug.
Signed-off-by: Changhwan Youn <chaos.youn at samsung.com>
---
arch/arm/mach-s5pv310/cpu.c | 5 +++++
arch/arm/mach-s5pv310/include/mach/map.h | 2 ++
arch/arm/mach-s5pv310/include/mach/regs-pmu.h | 25 +++++++++++++++++++++++++
arch/arm/plat-s5p/include/plat/map-s5p.h | 1 +
4 files changed, 33 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/mach-s5pv310/include/mach/regs-pmu.h
diff --git a/arch/arm/mach-s5pv310/cpu.c b/arch/arm/mach-s5pv310/cpu.c
index 4add398..3a3f90a 100644
--- a/arch/arm/mach-s5pv310/cpu.c
+++ b/arch/arm/mach-s5pv310/cpu.c
@@ -41,6 +41,11 @@ static struct map_desc s5pv310_iodesc[] __initdata = {
.length = SZ_128K,
.type = MT_DEVICE,
}, {
+ .virtual = (unsigned long)S5P_VA_PMU,
+ .pfn = __phys_to_pfn(S5PV310_PA_PMU),
+ .length = SZ_16K,
+ .type = MT_DEVICE,
+ }, {
.virtual = (unsigned long)S5P_VA_COMBINER_BASE,
.pfn = __phys_to_pfn(S5PV310_PA_COMBINER),
.length = SZ_4K,
diff --git a/arch/arm/mach-s5pv310/include/mach/map.h b/arch/arm/mach-s5pv310/include/mach/map.h
index aff6d23..c953c94 100644
--- a/arch/arm/mach-s5pv310/include/mach/map.h
+++ b/arch/arm/mach-s5pv310/include/mach/map.h
@@ -37,6 +37,8 @@
#define S5PV310_PA_SYSCON (0x10010000)
#define S5P_PA_SYSCON S5PV310_PA_SYSCON
+#define S5PV310_PA_PMU (0x10020000)
+
#define S5PV310_PA_CMU (0x10030000)
#define S5PV310_PA_WATCHDOG (0x10060000)
diff --git a/arch/arm/mach-s5pv310/include/mach/regs-pmu.h b/arch/arm/mach-s5pv310/include/mach/regs-pmu.h
new file mode 100644
index 0000000..bb15a40
--- /dev/null
+++ b/arch/arm/mach-s5pv310/include/mach/regs-pmu.h
@@ -0,0 +1,25 @@
+/* linux/arch/arm/mach-s5pv310/include/mach/regs-pmu.h
+ *
+ * Copyright (c) 2010 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com
+ *
+ * S5PV310 - Power management unit definition
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#ifndef __ASM_ARCH_REGS_PMU_H
+#define __ASM_ARCH_REGS_PMU_H __FILE__
+
+#include <mach/map.h>
+
+#define S5PV310_PMU(x) (S5P_VA_PMU + (x))
+
+#define S5PV310_ARM_CORE1_CONF S5P_PMU(0x2080)
+#define S5PV310_ARM_CORE1_STAT S5P_PMU(0x2084)
+
+#define S5PV310_CORE_PWR_EN 0x3
+
+#endif /* __ASM_ARCH_REGS_PMU_H */
diff --git a/arch/arm/plat-s5p/include/plat/map-s5p.h b/arch/arm/plat-s5p/include/plat/map-s5p.h
index c4ff88b..bee029e 100644
--- a/arch/arm/plat-s5p/include/plat/map-s5p.h
+++ b/arch/arm/plat-s5p/include/plat/map-s5p.h
@@ -31,6 +31,7 @@
#define S5P_VA_L2CC S3C_ADDR(0x00900000)
#define S5P_VA_CMU S3C_ADDR(0x00920000)
+#define S5P_VA_PMU S3C_ADDR(0x00940000)
#define S5P_VA_UART(x) (S3C_VA_UART + ((x) * S3C_UART_OFFSET))
#define S5P_VA_UART0 S5P_VA_UART(0)
--
1.6.2.5
More information about the linux-arm-kernel
mailing list