Files
OpenCellular/include
Charlie Mooney bb3bb92628 Snow: Adding in EC ability to hard reset pmic
By pulling line gio_A15 high, you can for a hard reset of the pmic after
the stuff resistor is changed.  This change adds a function that you can
call from the EC and trigger this event (board_hard_reset).  The user has
access to this command over the EC console by running "pmu reset" and
it will force the emergency reset.

The board_hard_reset function is used in the pmu's reset code.  Whenever
it is trying to initialize or shut down the pmu, it resets many or all
of its registers over i2c.  If the i2c commands fail to get a response
from the pmu, the EC will now force a hard reset of the system, which
restores everything, allowing for a restart to fix any situation where
the pmu has gotten its configuration trashed.

BUG=chrome-os-partner:12913
TEST=boot the machine.  From EC console check the pmic's register
values, then alter them.  Run "pmu reset" to force a reset, and check
the values again.  They should be safe values, which you can confirm
by powering on the AP.  Repeat this from various starting states: only
the EC on, AP on as well, and setting various registers to 0x00's and
0xff's.  To stress test the hard-reset ability from the EC's POV, run
while true; do echo "pmu reset"; sleep 5; done | cu -l DEVICE -s 15200
BRANCH=snow

Change-Id: I911fb9623a7c106d1f993ee4681258c05d4dedae
Signed-off-by: Charlie Mooney <charliemooney@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/31524
Reviewed-by: Simon Glass <sjg@chromium.org>
2012-08-28 12:09:19 -07:00
..
2012-04-19 13:08:58 -07:00
2012-04-19 11:08:28 -07:00
2012-04-19 11:08:28 -07:00
2012-07-12 18:22:24 -07:00
2011-12-07 19:10:02 +00:00
2012-07-10 14:56:05 -07:00
2012-08-27 12:16:10 -07:00
2012-06-29 10:46:22 -07:00
2012-05-31 15:03:17 -07:00
2012-01-11 11:37:55 -08:00
2012-06-26 17:01:52 -07:00
2012-06-07 09:59:55 -07:00
2012-07-12 18:22:24 -07:00
2011-12-07 19:10:02 +00:00
2012-04-19 13:08:58 -07:00
2011-12-07 19:10:02 +00:00
2012-07-30 13:41:33 -07:00
2012-08-09 17:40:37 -07:00
2012-05-30 13:12:34 -07:00
2012-08-13 14:22:23 -07:00
2012-04-06 09:06:53 -07:00
2012-07-23 23:30:33 -07:00
2012-04-24 17:46:54 -07:00