Subject: [PATCH] ARM: dts: am335x-boneblack: disable RTC-only sleep

From: [email-masked] (Matthijs van Duin)
Date: Mon, 1 Jun 2015 21:33:28 +0200

On 1 June 2015 at 19:23, Tony Lindgren <[email-masked]> wrote:
> Ah finally you got around doing a proper patch :)

My First Linux Patch(tm) ;-)

> Also, if this is needed as a fix for the mainline kernel to avoid hardware
> damage, please let me know too ASAP.

The damaging configuration is having &rtc { system-power-controller; }
without &tps { ti,pmic-shutdown-controller; }

So 3d76be5b9 also avoids damage, but with the unfortunate side-effect
that the system doesn't power off at all anymore (it just halts). I do
recommend applying this patch (restyled as needed) before reverting
3d76be5b9.

> Hmm no ideas about that, I guess people are using gmail to send email
> with smtps though?

Hmm, setting up mutt turned out less hassle than I remembered...

(Let's hope all goes well)

> Linux usually does not use the // style comments.. Can you please change
> that? And how about have just one section of comments then the entry
> for ti,pmic-shutdown-controller?

Fresh try...

--- 8< -----------------------------------------------------
Fixes: http://bugs.elinux.org/issues/143

Avoid entering "RTC-only mode" at poweroff. It is unsupported by most
versions of BeagleBone, and risks hardware damage.

Reported-by: Matthijs van Duin <[email-masked]>
Tested-by: Matthijs van Duin <[email-masked]>
Signed-off-by: Robert Nelson <[email-masked]>
Cc: Tony Lindgren <[email-masked]>
Cc: Felipe Balbi <[email-masked]>
Cc: Johan Hovold <[email-masked]>
[Matthijs van Duin: added explanatory comments]
Signed-off-by: Matthijs van Duin <[email-masked]>
---
 arch/arm/boot/dts/am335x-bone-common.dtsi | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index c3255e0..c0b0c02 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -223,6 +223,24 @@
 /include/ "tps65217.dtsi"
 
 &tps {
+	/* Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only
+	 * mode") at poweroff.  Most BeagleBone versions do not support RTC-only
+	 * mode and risk hardware damage if this mode is entered.
+	 *
+	 * For details, see linux-omap mailing list May 2015 thread
+	 *	[PATCH] ARM: dts: am335x-bone* enable pmic-shutdown-controller
+	 * In particular, messages:
+	 *	http://www.spinics.net/lists/linux-omap/msg118585.html
+	 *	http://www.spinics.net/lists/linux-omap/msg118615.html
+	 *
+	 * You can override this later with
+	 *	&tps {  /delete-property/ ti,pmic-shutdown-controller;  }
+	 * if you want to use RTC-only mode and made sure you are not affected
+	 * by the hardware problems. (Tip: double-check by performing a current
+	 * measurement after shutdown: it should be less than 1 mA.)
+	 */
+	ti,pmic-shutdown-controller;
+
 	regulators {
 		dcdc1_reg: regulator at 0 {
 			regulator-name = "vdds_dpr";
-- 
2.1.4