platform: qpnp-power-on: Set boot reason in procfs

Assigns a value to the boot_reason procfs property in
qpnp-power-on. This property can be read via
/proc/sys/kernel/boot_reason. The value for this property
will reflect lowest bit set in the PON_REASON1 PMIC register.
For example, if bit 0 is set in the register, then
boot_reason will have a value of 1. If no bits are set
in the register, then boot_reason will have a value of 0.

For existing PMIC chips, the following mapping applies
for the value of boot_reason:

0 -> unknown
1 -> hard reset
2 -> sudden momentary power loss (SMPL)
3 -> real time clock (RTC)
4 -> DC charger inserted
5 -> USB charger inserted
6 -> PON1 pin toggled (for secondary PMICs)
7 -> CBLPWR_N pin toggled (for external power supply)
8 -> KPDPWR_N pin toggled (power key pressed)

Change-Id: Icf2be66165fd01d3063282fcbfb2b115480e7b5c
Signed-off-by: Maria Yu <aiquny@codeaurora.org>
Signed-off-by: Xiaocheng Li <lix@codeaurora.org>
This commit is contained in:
Xiaocheng Li
2014-04-30 09:11:00 +05:30
parent 481e564d34
commit 0c9d2a6caa
+1
View File
@@ -1150,6 +1150,7 @@ static int __devinit qpnp_pon_probe(struct spmi_device *spmi)
return rc;
}
boot_reason = ffs(pon_sts);
index = ffs(pon_sts) - 1;
cold_boot = !qpnp_pon_is_warm_reset();
if (index >= ARRAY_SIZE(qpnp_pon_reason) || index < 0)