* [PATCH 0/2] More 'generic' vexpress poweroff/restart driver
@ 2013-03-19 18:06 Catalin Marinas
2013-03-19 18:06 ` [PATCH 1/2] arm: vexpress: Move the poweroff/restart code to drivers/power/reset Catalin Marinas
2013-03-19 18:06 ` [PATCH 2/2] arm: vexpress: Decouple vexpress-poweroff implementation from machine_desc Catalin Marinas
0 siblings, 2 replies; 3+ messages in thread
From: Catalin Marinas @ 2013-03-19 18:06 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
These patches move the vexpress poweroff/restart code to
driver/power/reset/ so that it can be used on arm64. The only
non-generic feature is the setting of the arm_pm_restart variable but I
can probably live with this under arm64.
Thanks.
Catalin Marinas (2):
arm: vexpress: Move the poweroff/restart code to drivers/power/reset
arm: vexpress: Decouple vexpress-poweroff implementation from
machine_desc
arch/arm/mach-vexpress/Kconfig | 3 +++
arch/arm/mach-vexpress/Makefile | 2 +-
arch/arm/mach-vexpress/v2m.c | 5 -----
drivers/power/reset/Kconfig | 7 +++++++
drivers/power/reset/Makefile | 3 ++-
.../reset.c => drivers/power/reset/vexpress-poweroff.c | 9 +++++++--
include/linux/vexpress.h | 3 ---
7 files changed, 20 insertions(+), 12 deletions(-)
rename arch/arm/mach-vexpress/reset.c => drivers/power/reset/vexpress-poweroff.c (93%)
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] arm: vexpress: Move the poweroff/restart code to drivers/power/reset
2013-03-19 18:06 [PATCH 0/2] More 'generic' vexpress poweroff/restart driver Catalin Marinas
@ 2013-03-19 18:06 ` Catalin Marinas
2013-03-19 18:06 ` [PATCH 2/2] arm: vexpress: Decouple vexpress-poweroff implementation from machine_desc Catalin Marinas
1 sibling, 0 replies; 3+ messages in thread
From: Catalin Marinas @ 2013-03-19 18:06 UTC (permalink / raw)
To: linux-arm-kernel
This patch moves the arch/arm/mach-vexpress/reset.c functionality to
drivers/platform/reset/ and adds the necessary Kconfig wiring.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Pawel Moll <pawel.moll@arm.com>
---
arch/arm/mach-vexpress/Kconfig | 3 +++
arch/arm/mach-vexpress/Makefile | 2 +-
drivers/power/reset/Kconfig | 7 +++++++
drivers/power/reset/Makefile | 3 ++-
.../reset.c => drivers/power/reset/vexpress-poweroff.c | 0
5 files changed, 13 insertions(+), 2 deletions(-)
rename arch/arm/mach-vexpress/reset.c => drivers/power/reset/vexpress-poweroff.c (100%)
diff --git a/arch/arm/mach-vexpress/Kconfig b/arch/arm/mach-vexpress/Kconfig
index 52d315b..0f1c5e5 100644
--- a/arch/arm/mach-vexpress/Kconfig
+++ b/arch/arm/mach-vexpress/Kconfig
@@ -17,6 +17,9 @@ config ARCH_VEXPRESS
select NO_IOPORT
select PLAT_VERSATILE
select PLAT_VERSATILE_CLCD
+ select POWER_RESET
+ select POWER_RESET_VEXPRESS
+ select POWER_SUPPLY
select REGULATOR_FIXED_VOLTAGE if REGULATOR
select VEXPRESS_CONFIG
help
diff --git a/arch/arm/mach-vexpress/Makefile b/arch/arm/mach-vexpress/Makefile
index 80b6497..42703e8 100644
--- a/arch/arm/mach-vexpress/Makefile
+++ b/arch/arm/mach-vexpress/Makefile
@@ -4,7 +4,7 @@
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
-I$(srctree)/arch/arm/plat-versatile/include
-obj-y := v2m.o reset.o
+obj-y := v2m.o
obj-$(CONFIG_ARCH_VEXPRESS_CA9X4) += ct-ca9x4.o
obj-$(CONFIG_SMP) += platsmp.o
obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig
index 1ae65b8..349e9ae 100644
--- a/drivers/power/reset/Kconfig
+++ b/drivers/power/reset/Kconfig
@@ -30,3 +30,10 @@ config POWER_RESET_RESTART
Some boards don't actually have the ability to power off.
Instead they restart, and u-boot holds the SoC until the
user presses a key. u-boot then boots into Linux.
+
+config POWER_RESET_VEXPRESS
+ bool
+ depends on POWER_RESET
+ help
+ Power off and reset support for the ARM Ltd. Versatile
+ Express boards.
diff --git a/drivers/power/reset/Makefile b/drivers/power/reset/Makefile
index 0f317f5..372807f 100644
--- a/drivers/power/reset/Makefile
+++ b/drivers/power/reset/Makefile
@@ -1,3 +1,4 @@
obj-$(CONFIG_POWER_RESET_GPIO) += gpio-poweroff.o
obj-$(CONFIG_POWER_RESET_QNAP) += qnap-poweroff.o
-obj-$(CONFIG_POWER_RESET_RESTART) += restart-poweroff.o
\ No newline at end of file
+obj-$(CONFIG_POWER_RESET_RESTART) += restart-poweroff.o
+obj-$(CONFIG_POWER_RESET_VEXPRESS) += vexpress-poweroff.o
diff --git a/arch/arm/mach-vexpress/reset.c b/drivers/power/reset/vexpress-poweroff.c
similarity index 100%
rename from arch/arm/mach-vexpress/reset.c
rename to drivers/power/reset/vexpress-poweroff.c
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] arm: vexpress: Decouple vexpress-poweroff implementation from machine_desc
2013-03-19 18:06 [PATCH 0/2] More 'generic' vexpress poweroff/restart driver Catalin Marinas
2013-03-19 18:06 ` [PATCH 1/2] arm: vexpress: Move the poweroff/restart code to drivers/power/reset Catalin Marinas
@ 2013-03-19 18:06 ` Catalin Marinas
1 sibling, 0 replies; 3+ messages in thread
From: Catalin Marinas @ 2013-03-19 18:06 UTC (permalink / raw)
To: linux-arm-kernel
This patch adds the pm_power_off and arm_pm_restart variable settings to
the vexpress-poweroff.c driver to decouple it from the machine_desc
definition.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Pawel Moll <pawel.moll@arm.com>
---
arch/arm/mach-vexpress/v2m.c | 5 -----
drivers/power/reset/vexpress-poweroff.c | 9 +++++++--
include/linux/vexpress.h | 3 ---
3 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
index 267b4f7..5dce863 100644
--- a/arch/arm/mach-vexpress/v2m.c
+++ b/arch/arm/mach-vexpress/v2m.c
@@ -362,8 +362,6 @@ static void __init v2m_init(void)
for (i = 0; i < ARRAY_SIZE(v2m_amba_devs); i++)
amba_device_register(v2m_amba_devs[i], &iomem_resource);
- pm_power_off = vexpress_power_off;
-
ct_desc->init_tile();
}
@@ -375,7 +373,6 @@ MACHINE_START(VEXPRESS, "ARM-Versatile Express")
.init_irq = v2m_init_irq,
.init_time = v2m_timer_init,
.init_machine = v2m_init,
- .restart = vexpress_restart,
MACHINE_END
static struct map_desc v2m_rs1_io_desc __initdata = {
@@ -467,7 +464,6 @@ static void __init v2m_dt_init(void)
{
l2x0_of_init(0x00400000, 0xfe0fffff);
of_platform_populate(NULL, v2m_dt_bus_match, NULL, NULL);
- pm_power_off = vexpress_power_off;
}
static const char * const v2m_dt_match[] __initconst = {
@@ -484,5 +480,4 @@ DT_MACHINE_START(VEXPRESS_DT, "ARM-Versatile Express")
.init_irq = irqchip_init,
.init_time = v2m_dt_timer_init,
.init_machine = v2m_dt_init,
- .restart = vexpress_restart,
MACHINE_END
diff --git a/drivers/power/reset/vexpress-poweroff.c b/drivers/power/reset/vexpress-poweroff.c
index 465923a..469e696 100644
--- a/drivers/power/reset/vexpress-poweroff.c
+++ b/drivers/power/reset/vexpress-poweroff.c
@@ -18,6 +18,8 @@
#include <linux/stat.h>
#include <linux/vexpress.h>
+#include <asm/system_misc.h>
+
static void vexpress_reset_do(struct device *dev, const char *what)
{
int err = -ENOENT;
@@ -39,14 +41,14 @@ static void vexpress_reset_do(struct device *dev, const char *what)
static struct device *vexpress_power_off_device;
-void vexpress_power_off(void)
+static void vexpress_power_off(void)
{
vexpress_reset_do(vexpress_power_off_device, "power off");
}
static struct device *vexpress_restart_device;
-void vexpress_restart(char str, const char *cmd)
+static void vexpress_restart(char str, const char *cmd)
{
vexpress_reset_do(vexpress_restart_device, "restart");
}
@@ -103,14 +105,17 @@ static int vexpress_reset_probe(struct platform_device *pdev)
switch (func) {
case FUNC_SHUTDOWN:
vexpress_power_off_device = &pdev->dev;
+ pm_power_off = vexpress_power_off;
break;
case FUNC_RESET:
if (!vexpress_restart_device)
vexpress_restart_device = &pdev->dev;
+ arm_pm_restart = vexpress_restart;
device_create_file(&pdev->dev, &dev_attr_active);
break;
case FUNC_REBOOT:
vexpress_restart_device = &pdev->dev;
+ arm_pm_restart = vexpress_restart;
device_create_file(&pdev->dev, &dev_attr_active);
break;
};
diff --git a/include/linux/vexpress.h b/include/linux/vexpress.h
index 7581874..ea7168a 100644
--- a/include/linux/vexpress.h
+++ b/include/linux/vexpress.h
@@ -115,9 +115,6 @@ unsigned __vexpress_get_site(struct device *dev, struct device_node *node);
void vexpress_sysreg_early_init(void __iomem *base);
void vexpress_sysreg_of_early_init(void);
-void vexpress_power_off(void);
-void vexpress_restart(char str, const char *cmd);
-
/* Clocks */
struct clk *vexpress_osc_setup(struct device *dev);
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-03-19 18:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-19 18:06 [PATCH 0/2] More 'generic' vexpress poweroff/restart driver Catalin Marinas
2013-03-19 18:06 ` [PATCH 1/2] arm: vexpress: Move the poweroff/restart code to drivers/power/reset Catalin Marinas
2013-03-19 18:06 ` [PATCH 2/2] arm: vexpress: Decouple vexpress-poweroff implementation from machine_desc Catalin Marinas
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.