From 02a0456b3b6ad7503a37fab6f00a27d2bd53d483 Mon Sep 17 00:00:00 2001 From: Joonyoung Shim Date: Mon, 19 Jul 2010 14:16:36 +0900 Subject: ARM: S5P: Add PMU device This patch adds an initcall for the s5p platforms so that they register their PMU IRQs with the PMU framework in the Kernel. Signed-off-by: Joonyoung Shim Signed-off-by: Kyungmin Park Signed-off-by: Kukjin Kim --- arch/arm/plat-s5p/Makefile | 1 + arch/arm/plat-s5p/dev-pmu.c | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 arch/arm/plat-s5p/dev-pmu.c (limited to 'arch/arm/plat-s5p') diff --git a/arch/arm/plat-s5p/Makefile b/arch/arm/plat-s5p/Makefile index 39c242bb9d58..7e34194b0aaf 100644 --- a/arch/arm/plat-s5p/Makefile +++ b/arch/arm/plat-s5p/Makefile @@ -12,6 +12,7 @@ obj- := # Core files +obj-y += dev-pmu.o obj-y += dev-uart.o obj-y += cpu.o obj-y += clock.o diff --git a/arch/arm/plat-s5p/dev-pmu.c b/arch/arm/plat-s5p/dev-pmu.c new file mode 100644 index 000000000000..a08576da72b0 --- /dev/null +++ b/arch/arm/plat-s5p/dev-pmu.c @@ -0,0 +1,36 @@ +/* + * linux/arch/arm/plat-s5p/dev-pmu.c + * + * Copyright (C) 2010 Samsung Electronics Co.Ltd + * Author: Joonyoung Shim + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + */ + +#include +#include +#include + +static struct resource s5p_pmu_resource = { + .start = IRQ_PMU, + .end = IRQ_PMU, + .flags = IORESOURCE_IRQ, +}; + +struct platform_device s5p_device_pmu = { + .name = "arm-pmu", + .id = ARM_PMU_DEVICE_CPU, + .num_resources = 1, + .resource = &s5p_pmu_resource, +}; + +static int __init s5p_pmu_init(void) +{ + platform_device_register(&s5p_device_pmu); + return 0; +} +arch_initcall(s5p_pmu_init); -- cgit v1.2.3 From d7f1e82ac982dead64d2b3825b7d33db3023a514 Mon Sep 17 00:00:00 2001 From: Jongpill Lee Date: Wed, 23 Jun 2010 21:31:21 +0900 Subject: ARM: S5P: Add System define for arch_reset() This patch adds system define for arch_reset() using Watchdog reset. And adds IO mapping for using WDT. Signed-off-by: Jongpill Lee Signed-off-by: Kukjin Kim --- arch/arm/plat-s5p/cpu.c | 5 +++++ arch/arm/plat-s5p/include/plat/system-reset.h | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 arch/arm/plat-s5p/include/plat/system-reset.h (limited to 'arch/arm/plat-s5p') diff --git a/arch/arm/plat-s5p/cpu.c b/arch/arm/plat-s5p/cpu.c index 75cb8c37ca2c..1ab55e82587b 100644 --- a/arch/arm/plat-s5p/cpu.c +++ b/arch/arm/plat-s5p/cpu.c @@ -103,6 +103,11 @@ static struct map_desc s5p_iodesc[] __initdata = { .pfn = __phys_to_pfn(S5P_PA_GPIO), .length = SZ_4K, .type = MT_DEVICE, + }, { + .virtual = (unsigned long)S3C_VA_WATCHDOG, + .pfn = __phys_to_pfn(S3C_PA_WDT), + .length = SZ_4K, + .type = MT_DEVICE, }, }; diff --git a/arch/arm/plat-s5p/include/plat/system-reset.h b/arch/arm/plat-s5p/include/plat/system-reset.h new file mode 100644 index 000000000000..7f76a164c20c --- /dev/null +++ b/arch/arm/plat-s5p/include/plat/system-reset.h @@ -0,0 +1,24 @@ +/* linux/arch/arm/plat-s5p/include/plat/system-reset.h + * + * Copyright (c) 2010 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * Based on arch/arm/mach-s3c2410/include/mach/system-reset.h + * + * S5P - System define for arch_reset() + * + * 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. +*/ + +#include + +static void arch_reset(char mode, const char *cmd) +{ + /* Perform reset using Watchdog reset. + * SWRESET support will be added later. + */ + + arch_wdt_reset(); +} -- cgit v1.2.3 From 0fdb480e7fb1ecdd4076ddf8b6ab16b0d77406c1 Mon Sep 17 00:00:00 2001 From: Jongpill Lee Date: Fri, 23 Jul 2010 21:33:58 +0900 Subject: ARM: S5P: Add s5p_reset_hook() for perform reset using SWRESET on S5P SoCs This patch adds s5p_reset_hook() which includes software reset by using SWRESET. Signed-off-by: Jongpill Lee Signed-off-by: Kukjin Kim --- arch/arm/plat-s5p/include/plat/reset.h | 16 ++++++++++++++++ arch/arm/plat-s5p/include/plat/system-reset.h | 11 +++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 arch/arm/plat-s5p/include/plat/reset.h (limited to 'arch/arm/plat-s5p') diff --git a/arch/arm/plat-s5p/include/plat/reset.h b/arch/arm/plat-s5p/include/plat/reset.h new file mode 100644 index 000000000000..335e97812eed --- /dev/null +++ b/arch/arm/plat-s5p/include/plat/reset.h @@ -0,0 +1,16 @@ +/* linux/arch/arm/plat-s5p/include/plat/reset.h + * + * Copyright (c) 2010 Samsung Electronics Co., Ltd. + * http://www.samsung.com/ + * + * 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_PLAT_S5P_RESET_H +#define __ASM_PLAT_S5P_RESET_H __FILE__ + +extern void (*s5p_reset_hook)(void); + +#endif /* __ASM_PLAT_S5P_RESET_H */ diff --git a/arch/arm/plat-s5p/include/plat/system-reset.h b/arch/arm/plat-s5p/include/plat/system-reset.h index 7f76a164c20c..f307f34e6422 100644 --- a/arch/arm/plat-s5p/include/plat/system-reset.h +++ b/arch/arm/plat-s5p/include/plat/system-reset.h @@ -14,10 +14,17 @@ #include +void (*s5p_reset_hook)(void); + static void arch_reset(char mode, const char *cmd) { - /* Perform reset using Watchdog reset. - * SWRESET support will be added later. + /* SWRESET support in s5p_reset_hook() */ + + if (s5p_reset_hook) + s5p_reset_hook(); + + /* Perform reset using Watchdog reset + * if there is no s5p_reset_hook() */ arch_wdt_reset(); -- cgit v1.2.3