[Armadeus-commitlog] armadeus branch, master, updated. armadeus-5.3-215-g3c5da15
Brought to you by:
sszy
|
From: Sébastien S. <ss...@us...> - 2014-04-10 16:13:47
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 3c5da1522acb95b4f41facde82063b18aa389f57 (commit)
from 4082303298c456a0e7364e21d9c5d6069df74e1f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3c5da1522acb95b4f41facde82063b18aa389f57
Author: Sébastien Szymanski <seb...@ar...>
Date: Thu Apr 10 18:00:09 2014 +0200
[LINUX] 3.14: apf28: add pm_power_off function
When shutting down the board with the poweroff command, an halt is
actually performed because there is no pm_power_off function defined.
The SoC is then stuck in an infinite loop.
This patch adds a pm_power_off function to shut down the SoC.
-----------------------------------------------------------------------
Summary of changes:
.../0446-armadeus_add_pm_power_off_function.patch | 39 ++++++++++++++++++++
1 files changed, 39 insertions(+), 0 deletions(-)
create mode 100644 patches/linux/3.14/0446-armadeus_add_pm_power_off_function.patch
diff --git a/patches/linux/3.14/0446-armadeus_add_pm_power_off_function.patch b/patches/linux/3.14/0446-armadeus_add_pm_power_off_function.patch
new file mode 100644
index 0000000..ce4a7df
--- /dev/null
+++ b/patches/linux/3.14/0446-armadeus_add_pm_power_off_function.patch
@@ -0,0 +1,39 @@
+Index: linux-3.14-rc7/arch/arm/mach-mxs/mach-mxs.c
+===================================================================
+--- linux-3.14-rc7.orig/arch/arm/mach-mxs/mach-mxs.c
++++ linux-3.14-rc7/arch/arm/mach-mxs/mach-mxs.c
+@@ -242,9 +242,34 @@ static void __init imx28_evk_init(void)
+ mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0);
+ }
+
++#define BM_POWER_RESET_UNLOCK 0xFFFF0000
++#define BV_POWER_RESET_UNLOCK__KEY 0x3E77
++#define BM_POWER_RESET_PWD 0x00000001
++#define HW_POWER_RESET 0x00000100
++#define BF_POWER_RESET_UNLOCK(v) \
++ (((v) << 16) & BM_POWER_RESET_UNLOCK)
++
++static void apf28_power_off(void)
++{
++ struct device_node *np;
++ void __iomem *power_base;
++
++ np = of_find_node_by_name(NULL, "power");
++ if (!np)
++ return;
++
++ power_base = of_iomap(np, 0);
++ if (!power_base)
++ return;
++
++ __mxs_setl(BF_POWER_RESET_UNLOCK(BV_POWER_RESET_UNLOCK__KEY) |
++ BM_POWER_RESET_PWD, power_base + HW_POWER_RESET);
++}
++
+ static void __init imx28_apf28_init(void)
+ {
+ update_fec_mac_prop(OUI_ARMADEUS);
++ pm_power_off = apf28_power_off;
+ }
+
+ static int apx4devkit_phy_fixup(struct phy_device *phy)
hooks/post-receive
--
armadeus
|