Commit Graph

1478 Commits

Author SHA1 Message Date
Vic Yang
2b3c02bf9f Add debounce test to kb_deghost and change name to kb_scan
To minimize the number of test binaries, we should put as many tests in
a single binary as possible. This CL merges kb_debouncing and
kb_deghosting and renames them to kb_scan.

BUG=chrome-os-partner:18598
TEST=Run on Spring
BRANCH=None

Change-Id: I876363ba68c692a7af10badfa474a2ea9a9d002c
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47980
2013-04-13 03:12:21 -07:00
Vic Yang
25fb06ce51 Remove unused mock setting for kb_deghost test
Those mock files were used by QEMU-based test. Now that we moved to
hardware test, we can remove them.

BUG=chrome-os-partner:18598
TEST=Run on Spring
BRANCH=None

Change-Id: I1600b39132c598a07d3d6439fd837c0d78ea8820
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47968
2013-04-13 02:20:10 -07:00
Vic Yang
1cc01fdcbc Add a test for testing common utilities
BUG=chrome-os-partner:18598
TEST=Run on Spring
BRANCH=None

Change-Id: Ie10f81783a0c22a10b9535350dc29b972bffd87e
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47962
2013-04-13 02:20:09 -07:00
Randall Spangler
6f2ec76a25 Remove unused GPIO macros
All accesses use the _OFF variants.  No need to have 2 ways of doing
the same thing.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build all platforms

Change-Id: I914e6dd9027bcf2268e33ae2e8cfb41093b0b05d
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/48032
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-12 23:58:02 -07:00
Randall Spangler
5531029744 Clean up alternate functions on STM32L
The MODER register is used to set (alt-func | analog | gpio-in |
gpio-out).  So there's no need to force things to be normal GPIOs in
board config, since gpio_pre_init() will clear the alternate
function-ness as part of setting the GPIO direction.

BUG=chrome-os-partner:18657
BRANCH=none
TEST=build pit and test-boot on daisy

Change-Id: I82db9d9f4d8877464d62c1ff2efaef36822fc0ca
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47904
2013-04-12 14:13:53 -07:00
Randall Spangler
ff1c7d68ce Daisy doesn't use STM32F100
So there's no need to check for BOARD_daisy there

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build all platforms

Change-Id: I518e4a091d279fc6b23d1c9448362c3b315a6905
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47894
2013-04-12 09:24:19 -07:00
Randall Spangler
79c6132a6e Allow GPIO alternate function 0
gpio_set_alternate_function() used 0 to mean "normal GPIO function".
But on chips like STM32L, alternate function 0 is actually a function
on some pins.  So change "normal GPIO function" to -1.

Also add support for this on STM32L.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build and boot link and daisy

Change-Id: I9cdd9ad91a315b616e373a0dc9a50545cf9d20fa
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47903
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-11 15:38:09 -07:00
Randall Spangler
b9d0d9c60b Move gpio_get_name() to gpio_common.c
Its implementation is the same on all platforms.

No functional changes, just renaming/moving.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build all platforms

Change-Id: I78741c6587ea61e7ac8edae5a509502b7ab5078b
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47898
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-11 15:38:08 -07:00
Randall Spangler
08f8c6857f Strip out old LPC command protocol
Nothing has used this since link EVT, so it's just dead code at this point.

BUG=chrome-os-partner:13213
BRANCH=none
TEST=manual

- Update ectool but leave old firmware
- ectool version -> works
- ectool flashread 0 0x10000 foo -> puts the first 64KB of EC flash into foo

- Update firmware
- ectool version -> works
- ectool flashread 0 0x10000 foo -> puts the first 64KB of EC flash into foo
- power+esc+refresh -> recovery mode

Change-Id: Ib25a705bcd8280d5295c8e7890969d796542b6c9
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47866
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-11 11:29:38 -07:00
Vic Yang
4adcb45f2c Fix kb_deghost test
BUG=chrome-os-partner:18598
TEST=Run test on Spring
BRANCH=none

Change-Id: Ia95ba6144dbdac0ffe77f6aef9c4ed948de181d8
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47841
2013-04-11 11:29:32 -07:00
Vic Yang
5018f1d9d6 Fix mutex test
Puts test behind a console command and also fix uart_printf calls. Also
reduces stack size to fit tasks into STM32 memory.

BUG=chrome-os-partner:18598
TEST=Run mutex test on Spring.
BRANCH=none

Change-Id: Icac77876ae01fc98b4e38f27e07f788b6c9bdd70
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47834
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-04-11 11:29:32 -07:00
Vic Yang
f1eddf778a Exclude chipset task from test binaries
For most tests, we don't need to power the AP. Let's exclude chipset
task to save memory space.

BUG=chrome-os-partner:18598
TEST=Run pingpong test on Spring
BRANCH=none

Change-Id: I545c5b3e1c27b0067d4ffe09a7971d32b75d6039
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47833
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-04-11 11:29:32 -07:00
Vic Yang
e3ca6d7d09 Fix pingpong test
This fixes outdated uart_printf calls and also put the test behind a
console command 'runtest'. The console command returns 'Pass' or 'Fail'.

BUG=chrome-os-partner:18598
TEST=Run pingpong test on Spring
BRANCH=none

Change-Id: Ia2c439685447e42b278556ca66c9f080d4cafe11
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47831
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-04-11 11:29:31 -07:00
Randall Spangler
e5f4032866 Clean up USB external power module
Make internal APIs static, and remove board_ prefix for clarity.

Move TSU6721 calls from charger task to extpower_usb functions for
better encapsulation.

No functional changes, just moving code.  Yes, this will make
cherry-picking back from spring to TOT less convenient, but now the
code is more readable and it will make maintaining the PMU code easier
as we add boards.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build spring

Change-Id: I52b37e57fc8519859996a110b0503277c6f0bbc8
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47657
2013-04-10 14:24:10 -07:00
Randall Spangler
a1c99c7228 Remove unneeded USB_CHARGE_PORT_COUNT
This only needs to be defined if CONFIG_USB_CHARGE is defined (that
is, if the board has a USB charge controller.

(Note the difference between providing power over USB vs. receiving
power over USB; the names are confusing and I'll rename one of the two
imminently.)

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build all platforms

Change-Id: I7355b4248bb2d4f5f71cc9f8d9d8f9d6c0069f2b
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47658
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-10 11:19:39 -07:00
Randall Spangler
a649f52d5f Move REG16 and REG32 macros to common.h
And use them for LM4 as well as STM32.  Consistency is good.

No functional changes, just moving/renaming code.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build all platforms

Change-Id: I029a21fadb50726500255219dc38615874a369e7
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47700
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-10 11:19:38 -07:00
Vic Yang
d6ce2852ae Fix tasklist for tests
This removes all tasks defined in board tasklist and changes syntax to
CONFIG_TEST_TASK_LIST and TASK_TEST.

BUG=chrome-os-partner:18598
TEST=None
BRANCH=None

Change-Id: Ie56c8edcb1dbf0ba0d0426ffce2a525594602a91
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47738
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-04-10 09:35:06 -07:00
Vic Yang
9aa3716ca0 Turn on/off 3.3V output properly
When the system is turned off and then back on, we need to re-enable
3.3V output from TPS65090. Also, when we see 5V input, we should shut
down 3.3V output and re-enable it when 5V input goes away.

BUG=chrome-os-partner:18186, chrome-os-partner:18482
TEST=Manual
BRANCH=spring

Change-Id: I0cf0597a60988cc9ec28282eea54908c81e5eabc
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47736
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-04-10 09:35:05 -07:00
Vic Yang
8a06eb1d35 Only includes necessary tasks for test binaries
This changes current TASK() syntax to TASK_BASE() and TASK_NORMAL(),
where TASK_BASE is necessary for the EC to boot on a board and
TASK_NORMAL represents the task that can be removed in a test binary.

Tasks introduced by a test should be listed as TASK_TEST().

Note that this CL breaks current tests (many of them are broken anyway),
which will be fixed in up coming CLs.

BUG=chrome-os-partner:18598
TEST=Build link/bds/spring/snow/daisy/mccroskey. (mccroskey failed for
unrelated issue)
BRANCH=none

Change-Id: Ic645cdae0906ed21dc473553f1f43c2537ec4bb9
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47531
2013-04-10 01:08:45 -07:00
Vic Yang
64ae15f3b3 Decouple gaia_power from keyscan task
This makes gaia_power.c compile when keyscan task is not present.

BUG=chrome-os-partner:18598
TEST=Build spring without keyscan task.
BRANCH=none

Change-Id: I70823fb562a2542d92929b9219d034216f636938
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47630
2013-04-10 01:08:43 -07:00
Randall Spangler
861d7d667d Rename usb_charging.c to extpower_usb.c and move to common/
This more clearly indicates what it does - it manages external power
supplied by USB.  This code will be common to multiple boards which
take power via USB, so it might as well move now.

No code changes, just moving the file.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build spring

Change-Id: Iae74122db38666bc346104a5096fa82df8cb0c19
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47656
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-09 14:47:28 -07:00
Randall Spangler
95250857ad Fix mccroskey build
There's no chipset for mccroskey, so its keyboard code stopped compiling.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build mccroskey, spring, link

Change-Id: If94dfaf2819f047a6aa825ee10aa1d320c8ca882
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47566
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-09 10:13:10 -07:00
Randall Spangler
3e9d365e2c Add pit board
GPIO mapping is correct for current schematics.

Things to fix are #ifdef'd out with PORT_TO_PIT, but those require
changing other files (which is most tidily done in separate CLs).

BUG=chrome-os-partner:18657
BRANCH=pit
TEST=build pit (can't test the binary yet; no hardware)

Change-Id: Id1d1bb0c2925cfc0c21ee2d91666028aa6d2a707
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47599
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Vic Yang <victoryang@chromium.org>
2013-04-09 10:13:10 -07:00
Vic Yang
54ea657965 Decouple keyboard MKBP code from key scan code
When unit testing, we may need to disable key scan task but leave
keyboard protocol code for testing.

Also fix a bug in determining if ENABLE flag is set.

BUG=chrome-os-partner:18598
TEST=Remove KEYSCAN task and build for spring.
BRANCH=none

Change-Id: I3b3adf1257e8446fd1f57bce50b4c7a029b1ce3b
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47539
2013-04-08 21:03:47 -07:00
Randall Spangler
6878c3da71 Clean up daisy GPIO and SPI init
Much of the board init duplicated stuff already done in gpio init, so remove it.

Powering the SPI module should be done in spi.c, not board.c.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build all platforms; boot EC on daisy

Change-Id: I9a99eeeb971ebbf7de5b9c0548153684fbb7fff6
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47469
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-08 10:31:43 -07:00
Randall Spangler
fcb1e1c819 Move power LED GPIO code from snow board.c into power_led.c
And remove the daisy power button LED task for now.  Since daisy
didn't have a board.c implementation (or a power button LED), its
power LED task did nothing.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build daisy, snow, spring

Change-Id: I1eb3d0bd038d88685e7caad087eb1a1d1495ef9a
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47442
Reviewed-by: Vic Yang <victoryang@chromium.org>
2013-04-08 10:00:35 -07:00
Vic Yang
f273ae7173 Add macros for mocking functions
This introduces two symbols for mocking functions in existing code:
  - test_mockable
  - test_mockable_static

BUG=chrome-os-partner:18598
TEST=none
BRANCH=none

Change-Id: Ia7251a9b609136c8f3b155c221634bac7dcb1d68
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47540
Reviewed-by: Randall Spangler <rspangler@chromium.org>
2013-04-08 09:33:47 -07:00
Randall Spangler
303aef9e3f Rename onewire_led functions and constants
This removes overlap between onewire_led.c (LED on link cable) and
powerled.c (LED on snow power button), which had the same names but
did different things.

No functional changes, just renaming.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build link

Change-Id: I711f1a7e4e5512d1923872cb0f19d64be153c7c5
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47420
2013-04-05 14:28:49 -07:00
Randall Spangler
14adad27e8 Clean up board configuration
Board configuration interfaces are now defined in board_config.h, not
in every board.h file.

Tidied /alphabetized CONFIG defines.

No functional changes, just rearranging code.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build all targets

Change-Id: I6196591784f8fa9ce6dfccd31891b679fb200063
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47419
2013-04-05 14:28:42 -07:00
Randall Spangler
765c50ef5f Move board hard reset code into tpschrome driver
Hard reset is done by shorting 3.3V to ground.  This is only really
necessary to work around the PMU's I2C engine getting into a weird /
uncommunicative state.

This should not make any functional changes; the code is behaving the
same way it did before.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build daisy, snow, spring

Change-Id: I0edbdfc11bd5f6643075ffc83f4df3e11fc14675
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47199
2013-04-05 11:28:51 -07:00
Daisuke Nojiri
0d1c48ea7c Dumping stack contents on crash.
> crash divzero

=== EXCEPTION: 06 ====== xPSR: 01000200 ===========
r0 :00000000 r1 :0000db92 r2 :4000c018 r3 :200029c8
r4 :00000001 r5 :00000000 r6 :200056e4 r7 :00000000
r8 :00000000 r9 :200056f2 r10:00000000 r11:00000000
r12:00000000 sp :20002958 lr :00000355 pc :00000360
Divide by 0
mmfs = 2000000, shcsr = 70008, hfsr = 0, dfsr = 0

=========== Process Stack Contents ===========
200029c4: 200029c8 0000033d 00000002 0000d1b8
200029d4: 000095ef 200056e4 200056ea 00000000
200029e4: 00000000 00000000 00000000 00000000
200029f4: 00000000 00000000 00000000 00000000

Rebooting...

BUG=chrome-os-partner:16901
TEST=build link
BRANCH=none

Change-Id: I040a9cadf443bfdb3781ffc25a3376bf4aea30ef
Signed-off-by: Daisuke Nojiri <dnojiri@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/46455
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-04-05 11:28:48 -07:00
Randall Spangler
a3dcfd54ef Improve deferred function calls
1) Check vs. number of allowable deferred function calls is made at
link time.

2) Added a check for whether hook_call_deferred() has been made after
the start of calculating the time when the hook task should wake.  If
it has, go back and recalculate the wake time.  This works around a
race condition.

BUG=chrome-os-partner:18473
BRANCH=none
TEST=add a bunch of deferrable functions and recompile; generates a link error

Change-Id: Ie833e2a699c47b6702957ed67bf7d3925f2df099
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47266
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-04-04 16:32:27 -07:00
Todd Broch
af4d0fb297 Inhibit host interrupt for battery_key.
Battery key is used to signal to the host that USB charging status has
changed.  This virtual keystroke should not wake the device like
physical keystroke does.  Change still copies keystroke to the
keyboard fifo but bypasses sending host interrupt.

Signed-off-by: Todd Broch <tbroch@chromium.org>

BRANCH=spring
BUG=chrome-os-partner:18333
TEST=manual,

Scenario1:
  suspend device then plug/unplug USB charging.  Device doesn't wake.
  When resume 'cat /sys/class/power_supply/cros_ec-charger/online' is
  correct.

Scenario2:
  while true ; do
    cat /sys/class/power_supply/cros_ec-charger/online
  done

  plug/unplug USB charging and device online status changes in a
  timely manner

Change-Id: I8938798b30e70c0c5021405d4fc5da9ce398c311
Reviewed-on: https://gerrit.chromium.org/gerrit/47251
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Tested-by: Todd Broch <tbroch@chromium.org>
Commit-Queue: Todd Broch <tbroch@chromium.org>
2013-04-04 16:32:20 -07:00
Randall Spangler
6d49e2660e Add common implementation for daisy/snow extpower_is_present
The implementations are identical for daisy and snow, so move to a
common file instead of having duplicate code in board.c

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build daisy, snow

Change-Id: I63597885607fd03b3bf87bcebf2146190b301f22
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47183
Reviewed-by: Vic Yang <victoryang@chromium.org>
2013-04-03 11:49:07 -07:00
Randall Spangler
4d1aadaf60 Trigger dma_init() via HOOK_INIT
There's no need for it to be initalized in board_init(); it just needs
to be done before ADC / I2C / SPI initialize.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=boot spring; verify EC communication and 'adc' console command still work

Change-Id: I6039848fe031222d5ca59b459adfe18fc3e8ef08
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47182
Reviewed-by: Vic Yang <victoryang@chromium.org>
2013-04-03 11:49:07 -07:00
Randall Spangler
9137686ebe Clean up board.c files
Just renaming functions and reordering #defines; no functional changes.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build all EC boards

Change-Id: I90e9ea860110625012cd5fb99de966283ec82880
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47179
Reviewed-by: Vic Yang <victoryang@chromium.org>
2013-04-03 11:49:06 -07:00
Vic Yang
13c74da5ad spring: Add host command to limit external power current
This is useful for debugging and the factory.

BUG=chrome-os-partner:18530
TEST=On spring, check we can set PWM duty cycle and can go back to
automatic control.
BRANCH=spring

Change-Id: I3da75f0a356cc0f21d748bf135e3b95fbd9c465b
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47105
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-04-02 20:42:48 -07:00
Vic Yang
3c9827a646 spring: Retry when over current detected
When we detect over current event, it might be a genuine over current
event or the user messing with the charger. Let's add retry machinism to
reduce the probability that a user re-plugging adapter causes charging
current to be limited.

BUG=chrome-os-partner:18527
TEST=Manual
BRANCH=spring

Change-Id: I2b55a9eae39c56ada929e167cf09c4e91a32a55e
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47107
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-04-02 20:42:47 -07:00
Randall Spangler
23bbebaeb9 Remove unused EC_SWITCH_KEYBOARD_RECOVERY
This was left over from the way we reported keyboard recovery early in
link/snow, before we had host events.  No shipping EC ever reported it.

Coreboot and u-boot look for this flag, so we can't repurpose it until
they ignore it too.

BUG=chrome-os-partner:18512
BRANCH=none
TEST=compile link,spring

Change-Id: I38fbf0fa7d958c3774c8b293d4be25faaecdadea
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47058
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-02 14:12:58 -07:00
Randall Spangler
bdd16f8206 Split lid switch code out of switch.c to its own file
This will allow ARM code to use the same lid switch code (in a subsequent CL).

BUG=chrome-os-partner:18343
BRANCH=none
TEST=open lid; system boots. close lid; system suspends.  open lid; resumes.

Change-Id: I83536a3ad24c4446dccf8a6b6e296756659070a8
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47043
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-02 14:12:57 -07:00
Randall Spangler
50c53c0d54 Move enabling AC_PRESENT interrupt to extpower_gpio.c
The interrupt handler moved a while ago, but the code to enable the
interrupt at init-time didn't.  Fix that.

BUG=chrome-os-partner:18256
BRANCH=none
TEST=boot system.  unplug AC.  replug AC.  UI charging indicator should update.

Change-Id: Ie16aa7f6eb9e871a6e3e8ecf6733ecbdc883be0b
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/47041
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-02 14:12:56 -07:00
Randall Spangler
5966f22a8a Add support for calling deferred functions
This is a cleaner way of deferring work from interrupt-time to
task-time without requiring a task for each module which needs this.

Replaces/supersedes delayed hook notification, which didn't scale well
(since every function would have needed to be its own hook type).

BUG=chrome-os-partner:18473
BRANCH=none
TEST=boot system.  plug/unplug AC power; notifies the host properly

Change-Id: I50263fe1ce37e74c1ef8db3671379098997102ed
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46953
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-04-02 14:12:55 -07:00
Randall Spangler
97bf36c9d3 Add parse_bool() to centralize parsing boolean options
This way debug commands which previously took only yes/no or on/off or
enable/disable can take any of those options.

BUG=chrome-os-partner:18467
BRANCH=none
TEST=Try "on", "off", "yes", "no", "true", "false", "ena", "disable", for
each of the following commands:
  - ilim (spring)
  - pll (link)
  - power (spring/snow)
  - hcdebug (all)
  - kblog (link)
  - ksscan (all)
  - lp5562 (spring)

Change-Id: Ie8e0fae3775b1da711864bcba6682ba5e68a06f1
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46900
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-03-29 15:39:34 -07:00
Randall Spangler
c317992194 Rename charging task to CHARGER, charger_task
This makes the charging task name consistent across platform.

No functional changes, just renaming.

BUG=chrome-os-partner:18343
BRANCH=none
TEST=build all EC boards

Change-Id: I348b31313f6604df2a05b474bdf6e0be7450c8c9
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46891
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-03-29 15:39:33 -07:00
Randall Spangler
49b9c0faa9 Rename I8042CMD task to KEYPROTO
Since it's really the keyboard protocol task, not just handling i8042
commands.  For consistency across keyboard protocols.

No functional changes, just renaming.

BUG=chrome-os-partner:18360
BRANCH=none
TEST=boot link and type on keyboard

Change-Id: I800a691a344f82bf582693cae865414b7d5d382a
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46885
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-03-29 15:39:32 -07:00
Randall Spangler
c2b9d1d8c2 Merge typematic task info i8042cmd task
Getting rid of a task saves on RAM requirements.

BUG=chrome-os-partner:18360
BRANCH=none
TEST=boot link and hold a key down; see it repeat as expected

Change-Id: I1ae4dc486f6669d5ad15899202abef85b8c1e7e8
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46826
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-03-29 11:40:36 -07:00
Randall Spangler
19ff62cbb0 Convert typematic task from countdown to deadline-based
This is in preparation for merging the typematic and i8042cmd tasks.
It also reduces the overhead of the typematic task during key-repeat;
previously, it woke up every millisecond to tick down.

BUG=chrome-os-partner:18360
BRANCH=none
TEST=boot link and hold a key down; see it repeat as expected

Change-Id: If6aee44ce7c746c8c1e68ed5cffced59fc575e4b
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46806
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-03-29 11:40:35 -07:00
Randall Spangler
95a3a4107a Merge i8042.c into keyboard_8042.c
This is in preparation for cleaning up the 8042 protocol stack and
merging the typematic and i8042cmd tasks.

No functionality change, just shuffling code and renaming functions.

BUG=chrome-os-partner:18360
BRANCH=none
TEST=boot link and type on its keyboard

Change-Id: Iefc41cd5b8d18ac87830bff3080cfff92e9d10d2
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46805
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-03-29 11:40:35 -07:00
Randall Spangler
fe3ccdf70a Merge lm4 and stm32 implementations of keyboard_scan
Scanning is now performed identically on all platforms.  keyboard_scan
talks to chip-specific keyboard_raw on the bottom end, and 8042 or mkbp
keyboard protocol on the top end.

8042 can now take advantage of CONFIG_KEYBOARD_TEST to simulate scan results.

BUG=chrome-os-partner:18360
BRANCH=none
TEST=compile all boards; test keyboard on spring and link

1) Type on keyboard.  Should produce keystrokes.

2) At EC console:
    kbpress 3 7 1
    kbpress 3 7 0
Should produce 'r' keystroke(s); key repeat should kick in if you wait
a while between the commands.

3) Hold power button while typing.  Should not produce keystrokes.

4) Reboot with power+refresh+esc.  Should go to recovery mode.

5) While the system is up, alt+volup+R should reboot the AP.

Change-Id: I48e0bca15b869162672b5f54ffcb561f6fcf0f45
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46666
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
2013-03-29 11:40:34 -07:00
Vic Yang
4311bc5ccf Initialize LP5562 power on init
On init, we should either explicitly power on or off LP5562 in case.

BUG=none
TEST=Manual
BRANCH=spring

Change-Id: I7e331349090f3383da19f840762fa4d72a1a054b
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46847
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
2013-03-29 03:18:30 -07:00