summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* rambi: Remove ignored PCH signalsstabilize-5579.BRandall Spangler2014-03-015-3/+22
| | | | | | | | | | | | | | | | | The EC had inputs with internal pullups on SUS_STAT#, SUSPWRDNACK, and SLP_SX#. But we never used those signals for anything. The pullups cost 1.5 mW power in S3. So, remove those signals and their pullups. They can be turned back on via CONFIG_CHIPSET_DEBUG. BUG=chrome-os-partner:25568 BRANCH=rambi TEST=build with and without CONFIG_CHIPSET_DEBUG. Verify gpioget and powerindebug show the signals only when it's defined. Change-Id: I0851243615c91a3aa8aa1b28df70809b578d2e74 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/188389 Reviewed-by: Dave Parker <dparker@chromium.org>
* Optimize memsetDaisuke Nojiri2014-03-013-11/+98
| | | | | | | | | | | | | | | | | | | | | | | | | This speeds up memset by copying a word at a time. Ran the unit test on Peppy: > runtest ... Running test_memset... (speed gain: 141532 -> 32136 us) OK ... Ran make buildall: ... Running test_memset... (speed gain: 1338 -> 280 us) OK ... TEST=Described above. BUG=chrome-os-partner:23720 BRANCH=none Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Change-Id: If34b06ad70f448d950535a4bea4f6556627a9b6f Tested-by: Daisuke Nojiri <dnojiri@google.com> Reviewed-on: https://chromium-review.googlesource.com/185936 Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@google.com>
* Add arbitrary-length read support to i2cxferRandall Spangler2014-03-011-68/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, it could only read 8 or 16 bit values BUG=chrome-os-partner:26191 BRANCH=rambi TEST=manual Counted string for battery manufacturer name: > i2cxfer rlen 0 0x16 0x20 16 Data: 0653696d706c6fe1e1e1e1e1e1e1e1e1 Read lifetime data block 1 (also tests 16-bit writes) > i2cxfer w16 0 0x16 0 0x60 > i2cxfer rlen 0 0x16 0x23 32 Data: 20d2d2d2d2948700000d0a0a060a000000020000000000000000000000000000 Read lifetime data block 2 > i2cxfer w16 0 0x16 0 0x61 > i2cxfer rlen 0 0x16 0x23 27 Data: 1b0000000000010200010c02000201000100000300002008082009 8 and 16 bit reads still work > i2cxfer r 0 0x16 0x23 0x1b [27] > i2cxfer r16 0 0x16 0x23 0x001b [27] Change-Id: Ibba5aced60c0b2de04c3f86cf5fd2ab3db1b6308 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/188379 Reviewed-by: Alec Berg <alecaberg@chromium.org>
* rambi: fix two bugs with accelerometer driverAlec Berg2014-03-011-2/+29
| | | | | | | | | | | | | | | | | | | | | Two bugs are: - Need to grab the I2C port mutex before performing i2cxfer. - Added sending software reset command to accelerometers on init. This is necessary because the accelerometers can be powered through an EC reboot, and it's important we restore them to a known state. BUG=none BRANCH=rambi TEST=Manually set accelerometer setting, rebooted, manually read that setting and verified it was restored to default. Change-Id: Ic3034ae39c936e07ca28458a60557b9623674ff1 Original-Change-Id: I0ea571f3a8dc46052128def24cbb5c1c29638469 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/188349 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/188387
* rambi: Changed accel i2c speed to 400kHz and added accels present bitAlec Berg2014-03-012-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | Changed speed of accelerometer i2c bus to 400kHz. Added an accelerometers present bit to the status byte for host shared memory so that the host knows whether this system has accelerometers or not. BUG=chrome-os-partner:25599 BRANCH=rambi TEST=manual test with a glimmer. To test speed, just ran for a while at 400kHz and made sure there were no i2c errors and the data looked accurate using the lidangle on command. To test the accelerometers present bit, I used the kernel patch for the cros_ec_accel driver. First, I verified that without this patch, the kernel driver throws an error when loading the module. Second, I verified that with this patch the module was loaded successfully. Change-Id: I19b8e800748b0d45dc1da6c59118e92b4908ee2f Original-Change-Id: If931b37bf057df96659852ef9699b3e6029275c7 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187732 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/188386
* rambi: Rotate accelerometer data into standard reference frameAlec Berg2014-03-015-52/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | Added rotation of accelerometer data into a standard reference frame so that the host does not have to know about the orientation of the sensors. Also added a calibration routine to calibrate the rotation matrix to get to the standard reference frame. Cleanup up calibration in the process to make it more user friendly. Changed the default accelerometer sampling rate to 100Hz. BUG=chrome-os-partner:25599 BRANCH=rambi TEST=Tested the full calibration routine on a glimmer at my desk. Used 'taskinfo' and verified that the higher sampling rate does not bog down the EC. I found that the motion sense task is running for about 200ms every 10 seconds, so about 2% CPU load. Change-Id: I9ca1a4252f62a54016009c7d5e43b4cb1adf7e1d Original-Change-Id: Id554511f7cc9549dfc9ed2d6337216bfa639359d Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187172 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/188385
* Mark some private functions static in unused driverBill Richardson2014-02-281-2/+2
| | | | | | | | | | | | | | | | | The BQ24192 driver exports some functions that should be static. Let's mark them so, mostly so I don't keep finding them when I search through the code for common functions. Note that nothing in the ToT branch uses this module anyway. BUG=chrome-os-partner:23815 BRANCH=ToT TEST=make buildall -j Change-Id: I012111a2c9b9b84f0f3bfacc3bdc8804a83116a6 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/188179 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* samus: fix an output to be open-drainBill Richardson2014-02-261-1/+1
| | | | | | | | | | | | | | | | | | | This was always supposed to be open drain. BUG=chrome-os-partner:22870 BRANCH=ToT,samus TEST=manual Try turning it off and back on again. ;-) gpioset TOUCHSCREEN_RESET_L 0 gpioset TOUCHSCREEN_RESET_L 1 gpioset TOUCHSCREEN_RESET_L 0 Change-Id: I5e2a49c979294f68b86e2c91d2ccee5f6128ef5a Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/188045 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Enable IDPM for bq24715 charge controllerChromeOS Developer2014-02-262-3/+6
| | | | | | | | | | | | | | | | | | | Dynamic Power Management enables proper regulation of the input adapter current set in board.h. BUG=chrome-os-partner:24933 BRANCH=None TEST=Power a DUT with a bench supply. Verify the input current doesn't exceed the input current limit set in board.h while the system is under load and charging the battery. Change-Id: Ie68d92afe0ef89c691f460d120f8574cb17e2c4e Original-Change-Id: Ida6b05f1d89b21d7cf1553f5e9936360679f8149 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187517 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187911
* BayTrail: Fix ADC adapter current calculationChromeOS Developer2014-02-262-8/+8
| | | | | | | | | | | | | | | | BUG=chrome-os-partner:25977 BRANCH=None TEST=Run 'adc' console command on a heavily loaded system while charging the battery. The current reported should be around the CONFIG_CHARGER_INPUT_CURRENT limit. Change-Id: I1b4089d00182ce7d286b387361a63edade626f38 Original-Change-Id: I18e5bbb0a45312afbcb7d989517a86b97646c2da Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187018 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187887
* Add 'lightbar version' console command.Bill Richardson2014-02-261-5/+14
| | | | | | | | | | | | | | | | | | | There's already a host command, but no console command. We should add one. BUG=none BRANCH=ToT, Samus TEST=manual From the EC console, run lightbar version It should display the version number and flags value. Change-Id: Ide3517c0a71b5d78c4c4d849a952ccc1d908ea23 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187679 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* ectool: pwmgetfanrpm supports multiple fansRandall Spangler2014-02-221-7/+32
| | | | | | | | | | | | | | | | | The EC already provided this information, but ectool wouldn't print it. BUG=chrome-os-partner:23803 BRANCH=samus TEST=from ec console, 'fanset 0 3000' and 'fanset 1 1000' ectool pwmfangetrpm -> prints both fans ectool pwmfangetrpm all -> prints both fans ectool pwmfangetrpm 0 -> prints ~3000 ectool pwmfangetrpm 1 -> prints ~1000 Change-Id: I19d3081d09edd42c16bf8b0cdbc48ca58d134027 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187454 Reviewed-by: Sameer Nanda <snanda@chromium.org>
* Allow AP to set wireless power state in suspendRandall Spangler2014-02-2211-54/+252
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the AP could only set the current wireless power state. It couldn't determine what the EC would do in S3, nor could it get the current wireless power state. Extend the wireless command to do so, and add an EC console command to aid in debugging. BUG=chrome-os-partner:25655 BRANCH=rambi TEST=manual; expected numbers are from EC 'wireless' command AP off -> 0x0, 0x9 AP on -> 0xd 0x9 AP suspended -> 0x9 0x9 AP on -> 0xd 0x9 ectool wireless 0x1 -> 0x1 0x9 ectool wireless 0xd -> 0xd 0x9 ectool wireless 0 0 0 0 -> 0xd 0x9 (and prints 0xd 0x9 to root shell) ectool wireless 5 -1 -1 0 -> 0x5 0x9 AP suspended -> 0x1 0x9 (doesn't turn on 0x8, just turns off 0x4) AP on -> 0xd 0x9 ectool wireless 0 0 0 -1 -> 0xd 0x0 AP suspended -> 0x0 0x0 AP on -> 0xd 0x9 Change-Id: I8ead2d4a4423b51ec4f638bf94c62de98726b25c Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187273
* rambi: Add acceleration data to LPC shared memoryAlec Berg2014-02-222-8/+51
| | | | | | | | | | | | | | | | | | | | | | After each read of the accelerometers, add accelerometer data to LPC shared memory. BUG=none Original-BUG=chrome-os-partner:25599 BRANCH=rambi TEST=Manual test by reading the LPC shared memory through cros_ec in the kernel. Original-Change-Id: If66df3fcb32b5423f4fa7dd471c219a1c4df7095 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/186456 Reviewed-by: Randall Spangler <rspangler@chromium.org> (cherry picked from commit 919ea7fe1f830235ae56829a8ee4435679dec124) Change-Id: I10525c45e868d0b04aa84c27cab3b6baeda2b0d5 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187435 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Added unit tests for lid angle calculation and acosAlec Berg2014-02-228-1/+242
| | | | | | | | | | | | | | | | | | | | | Added unit test for motion_sense lid angle calculations. Added unit test for math_util arc_cos() function. BUG=none Original-BUG=chrome-os-partner:25640 BRANCH=rambi TEST=make buildall Original-Change-Id: I35debf6fc0e2d9996debc2ede175acaa060df627 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/186720 Reviewed-by: Vic Yang <victoryang@chromium.org> (cherry picked from commit 55c3e8ee14693d6d667b5d21f0dcbb14d185ccbe) Change-Id: I017315128f318424cd3000affae785c69afd29d6 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187434 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* rambi: Add motion sense task to track motionAlec Berg2014-02-2210-0/+841
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added motion sense task to Clapper and Glimmer. This task samples the accelerometers and calculate a lid angle. Note that as the machine is rotated towards the hinge angle aligning with gravity, the lid calculation becomes less trustworthy. Added a math_util file to hold various mathematical functions useful for calculating lid angle that may be helpful in other places. For each board with accelerometers we need to define some orientation specific data in board.c. There is a calibration procedure through the EC console that can be enabled by defining CONFIG_ACCEL_CALIBRATE. The calibration procedure can help determine the orientation data required. For debugging purposes there is a console command to regularly print to the EC console the accelerometer data and derived lid angle. The console command can be enabled by defining CONFIG_CMD_LID_ANGLE. BUG=none Original-BUG=chrome-os-partner:24703 BRANCH=rambi TEST=Ran the calibration procedure on a Glimmer unit, and then rotated the machine in space. Verified that the lid angle calculated roughly matched actual lid angle. Original-Change-Id: I63a5e384b7f6b628b4ea01de49843355fb8d6ebe Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/184783 Reviewed-by: Randall Spangler <rspangler@chromium.org> Signed-off-by: Alec Berg <alecaberg@chromium.org> (cherry picked from commit efb07945a5159fa0e7a746c666b2519ebdca9c22) Conflicts: board/clapper/board.c board/clapper/ec.tasklist board/glimmer/board.c board/glimmer/ec.tasklist Change-Id: Ibc492ef5c11e7084e87f01338c4d7775f9a08c18 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187433 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* rambi: Accelerometer driver for kxcj9.Alec Berg2014-02-225-0/+424
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Added accelerometer driver for kxcj9 accelerometers. Currently the accelerometers aren't being used by anything, but there are console commands, accelwrite and accelread, to perform transactions. BUG=none BRANCH=rambi TEST=Used EC console commands to test that accelerometers respond and data looks reasonable. Original-Change-Id: I6ddcf04ec278adeacb148c19b10c3c296b467954 Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/184693 Reviewed-by: Randall Spangler <rspangler@chromium.org> (cherry picked from commit 5e1d2052b034b2400b98b2126243e01397a2ce56) Conflicts: board/clapper/board.c board/clapper/board.h board/glimmer/board.c board/glimmer/board.h Change-Id: If8744ddc3273fc08e29830adfd068dc302dd120a Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187432 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Host command to set fan RPM enables fanRandall Spangler2014-02-211-0/+3
| | | | | | | | | | | | | | | | Previously, it would only set the fan RPM, but not actually enable the fan so it can spin at the requested speed. Compare with setting fan duty cycle, which always enabled the fan. BUG=chrome-os-partner:23803 BRANCH=samus TEST=with fans off, 'ectool pwmsetfanrpm 1000' should spin both fans, and the ec 'faninfo' command should show both fans enabled. Change-Id: I37d7fb05309944ab6f98333e2cf3b38ea2dd38e9 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/187386 Reviewed-by: Sameer Nanda <snanda@chromium.org>
* Fix some stupid.stabilize-5511.Bstabilize-5500.71.Bstabilize-5500.26.Bstabilize-5500.130.Bstabilize-5500.100.Brelease-R34-5500.BBill Richardson2014-02-171-1/+1
| | | | | | | | | | | | | | Off-by-one error in read() call. BUG=chromium:239205 BRANCH=none TEST=none Change-Id: Ifec3dacfa07e83d70b2582036cab0cfc1ee9e8f7 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/186738 Reviewed-by: Dave Parker <dparker@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Update util/lbplay.c to use the sysfs interface.Bill Richardson2014-02-151-171/+138
| | | | | | | | | | | | | | | | | | | | | | | | This is just an example, demonstrating how a userspace program can access and control the Pixel lighbar. This change reflects the new unprivileged access methods. You can run this program to drive the lightbar without being root. BUG=chromium:239205 BRANCH=none TEST=manual Nothing builds this by default, but you can test it with cd src/platform/ec gcc -static util/lbplay.c then copy a.out to your Pixel and run it (from /tmp, since other directories are mounted noexec). Change-Id: I7c07512087c924d16c1c03df6176fba995fcd4f4 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/186672 Reviewed-by: Alec Berg <alecaberg@chromium.org>
* cleanup: nyan: remove unnecessary dependence to pmu_tpschrome.hLouis Yung-Chieh Lo2014-02-143-2/+6
| | | | | | | | | | | | | | Nyan uses common/charge_state instead. So, fix the dependence. Since snow/spring/pit are using common/pmu_tps65090_charger, keep them. BUG=None BRANCH=Nyan TEST=build and works fine on Nyan 3.2 Change-Id: I985f7980578ac22602b1fbffa51edf039078bc05 Signed-off-by: Louis Yung-Chieh Lo <yjlou@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/186337 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Optimize memmoveDaisuke Nojiri2014-02-132-16/+71
| | | | | | | | | | | | | | | | | | | | | | | | | This speeds up memmove by copying a word at a time. Ran the unit test on Peppy: > runtest ... Running test_memmove... (speed gain: 2156 -> 592 us) OK ... Ran make buildall: ... Running test_memmove... (speed gain: 143918 -> 32367 us) OK ... TEST=Described above. BUG=chrome-os-partner:23720 BRANCH=none Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@google.com> Change-Id: I6a3ac6aed27a404c3bef227b6c886a59414b51d7 Reviewed-on: https://chromium-review.googlesource.com/186020 Reviewed-by: Vic Yang <victoryang@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Pit: Change the temperature range in discharging state.Jaehoon Kim2014-02-131-2/+2
| | | | | | | | | | | | | | | | | Samsung change the temperature range in battery discharing state from (0 <=temp < 100) to (-20 <= temp < 70) from this year. That's why we have to change the battery_temperature_range structure value as soon as possible so that our reliability team check the battery. BUG=chrome-os-partner:25731 TEST=Boot on the pit / pi and then check the battery is working or not in the oven. BRANCH=pit Change-Id: I3289d22176af043e80a881f1626da386e823d857 Signed-off-by: Jaehoon Kim <jh228.kim@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/186040 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Optimize memcpyDaisuke Nojiri2014-02-122-7/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This speeds up memcpy by copying a word at a time if source and destination are aligned in mod 4. That is, if n and m are a positive integer: 4n -> 4m: aligned, 4x speed. 4n -> 4m+1: misaligned. 4n+1 -> 4m+1: aligned in mod 4, 4x speed. Ran the unit test on Peppy: > runtest ... Running test_memcpy... (speed gain: 120300 -> 38103 us) OK ... Ran make buildall -j: ... Running test_memcpy... (speed gain: 2084 -> 549 us) OK ... Note misaligned case is also optimized. Unit test runs in 298 us on Peppy while it takes about 475 with the original memcpy. TEST=Described above. BUG=chrome-os-partner:23720 BRANCH=none Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Change-Id: Ic12260451c5efd0896d6353017cd45d29cb672db Tested-by: Daisuke Nojiri <dnojiri@google.com> Reviewed-on: https://chromium-review.googlesource.com/185618 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@google.com>
* Add comment about matching temp sensor index and name with corebootChromeOS Developer2014-02-122-2/+10
| | | | | | | | | | | BUG=None BRANCH=rambi TEST=None Change-Id: I702173af23e6207129149bdb83ec7116fec8af66 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185394 Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
* baytrail: Battery cutoff return codes were backwardsstabilize-5463.BRandall Spangler2014-02-112-2/+2
| | | | | | | | | | | | | | cutoff() returns 0 on success, not non-zero. BUG=chrome-os-partner:25646 BRANCH=rambi TEST=ectool batterycutoff succeeds Change-Id: Icca0c53aba82381b73dd679de5df3a97153d0662 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185737 Reviewed-by: Benson Leung <bleung@chromium.org> Reviewed-by: Dave Parker <dparker@chromium.org>
* Remove deprecated make_all.shVic (Chun-Ju) Yang2014-02-091-9/+0
| | | | | | | | | | | | | | This script has been deprecated for more than a month. It's time to remove it. BUG=None TEST=None BRANCH=None Change-Id: I6604d556e37ad90d9e9bec01664cbfaafcfb7a51 Signed-off-by: Vic (Chun-Ju) Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185541 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Include battery fuel gauge temp sensor in temperature sensorsRandall Spangler2014-02-085-0/+30
| | | | | | | | | | | | | | | | | | | | This gives the AP a way to see that temperature for DPTF. Alarm thresholds were defined on a per-sensor basis, so they come along for free. BUG=chrome-os-partner:25585 BRANCH=rambi TEST=temps command shows same temp for battery as battery command (other than rounding error; battery command shows with 0.1C accuracy). 'ectool temps all' shows the battery temp as the last temperature. Unplug battery and temps command shows error for the battery temp, as does 'ectool temps all'. Change-Id: I1bce72f164d9fb1be631e7241a4ea24ddf409d7a Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185444 Reviewed-by: Dave Parker <dparker@chromium.org>
* Samus: Support capsense input as keyboard events.Bill Richardson2014-02-088-5/+123
| | | | | | | | | | | | | | | | | | | | | | This is experimental for now; the capsense chip simply reports its buttons as the number keys on the keyboard (1-8). BUG=chrome-os-partner:23382 BRANCH=samus,ToT TEST=manual To test, you'll need a reworked and correctly programmed capsense module. Boot the system, and switch to VT2. Touch the capsense bar and you'll see the input appear on the console as though you were typing numbers. Note that the capsense hardware is still buggy. Refer to the bug for workarounds. Change-Id: I4c3a8b70b8197ffd538c38c59c9336383365afa7 Signed-off-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185434 Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Dave Parker <dparker@chromium.org>
* Support DPTF charger current limitingRandall Spangler2014-02-084-6/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This enables the AP to limit charging current via ACPI. BUG=chrome-os-partner:23971 BRANCH=rambi TEST=manual drain battery down to <90%, then plug into AC (charger commands at EC console, iotools at root shell) iotools io_write8 0x66 0x81 iotools io_write8 0x62 0x08 iotools io_write8 0x62 3 charger -> dptf limit 192, I_batt=192 charger dptf 320 charger -> dptf limit 320, I_batt=320 iotools io_write8 0x66 0x80 iotools io_write8 0x62 0x08 iotools io_read8 0x62 -> 0x05 iotools io_write8 0x66 0x81 iotools io_write8 0x62 0x08 iotools io_write8 0x62 0xff charger -> dptf disabled, I_batt=(something > 192) iotools io_write8 0x66 0x80 iotools io_write8 0x62 0x08 iotools io_read8 0x62 -> 0xff Change-Id: Iace2ebbbc018143c0154310d7acd02d16a6b7339 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185411 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* Fix set2 scancode for volume up media keyChromeOS Developer2014-02-081-2/+1
| | | | | | | | | | | | | | | | Also removes a useless BUILD_ASSERT. BUG=None BRANCH=None TEST=Boot kernel with cmdline arg i8042.direct=1 to force set2 mode. Push volume up/down & power key. Change-Id: I1689f06c5ae690624733c0625ce043cb1462abd0 Original-Change-Id: Ifc735d66b2f707e68b5c59959c47a0e295a7688c Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185392 Reviewed-by: Bill Richardson <wfrichar@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185315
* lm4: Remove 500k clock delay in clock_init()Randall Spangler2014-02-071-10/+0
| | | | | | | | | | | | | | | | | We copied that delay because it seemed to be necessary on early LM4 chips to avoid glitching the UART. But on current boards (e.g. rambi) this does not seem to be necessary, and delays boot by 31ms. So, remove the delay. BUG=chrome-os-partner:23794 BRANCH=rambi TEST=boot system; see little to no glitching on EC uart, and system boots ok hibernate 1; see little to no glitching on EC uart, and system boots ok Change-Id: I9d4b5927da4282e47e1b09be838104c64f25268c Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185232 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
* rambi: Update LED charging algorithmRandall Spangler2014-02-071-39/+9
| | | | | | | | | | | | | | | | | | | Green when charged and ext. power plugged in. Orange when charging. Blinking orange if there is a charging/battery related error. Blinking green if in "charge force idle mode" in the factory. Off otherwise. BUG=chrome-os-partner:23634 BRANCH=rambi TEST=test each of the states above To fake battery error, unplug battery and wait 30 secs To force idle, 'ectool chargecontrol idle' Change-Id: I85fff72d1df85bbbaa1da66572f44f58a960244e Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185240 Reviewed-by: Dave Parker <dparker@chromium.org>
* Run KEYPROTO task during the button unit testChromeOS Developer2014-02-072-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 18baa15 made a call to keyboard keyboard_update_button conditional on running the KEYPROTO task. This call is needed for the button unit test. This fixes a test breakage when running "make buildall" BUG=None BRANCH=ToT TEST=Run "make buildall -j32" "make BOARD=glimmer tests -j32" and "make BOARD=rambi tests -j32" successfully with a "make clobber" in between. Signed-off-by: Dave Parker <dparker@chromium.org> Orig-Change-Id: I6f10577ffd189fee7081aa65cf5adb9075c95373 Reviewed-on: https://chromium-review.googlesource.com/185104 Tested-by: Dave Parker <dparker@chromium.org> Reviewed-by: Vic Yang <victoryang@chromium.org> Commit-Queue: Dave Parker <dparker@chromium.org> (cherry picked from commit c267054850c4b296a364e975063c634f34d701e9) Change-Id: I92932577e83561530ef288c6ede211fa809962f8 Reviewed-on: https://chromium-review.googlesource.com/185245 Tested-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Randall Spangler <rspangler@chromium.org>
* Only call button handler if keyboard protocol task definedChromeOS Developer2014-02-071-0/+2
| | | | | | | | | | | | | | | | | | | | This fixes a breakage when building tests. BUG=None BRANCH=None TEST=Manual. Run "make BOARD=clapper tests" and "emerge-clapper chromeos-ec" (having cros_worked on it) Change-Id: Icdfa655b7fc246b103111f957d9c3f9e7f49c736 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/184931 Reviewed-by: Bernie Thompson <bhthompson@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> (cherry picked from commit 18baa15cc10d1d0906a47fa60ab3fb1eb2cf484e) Reviewed-on: https://chromium-review.googlesource.com/185244 Tested-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Randall Spangler <rspangler@chromium.org>
* Add support for extra buttons not on the keyboardChromeOS Developer2014-02-0712-2/+389
| | | | | | | | | | | | | | | | | | BUG=chrome-os-partner:24370 BRANCH=tot TEST=Run button unit test. Orig-Change-Id: I61b4a6624d62831ce0bfdf7a0f36a45349b37f96 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/184544 Reviewed-by: Randall Spangler <rspangler@chromium.org> (cherry picked from commit f6426cc21c20a4f876cff28b9ce7e3115f0b054a) Change-Id: I4face9bf0797a91ec8bef390093aab8e3d8f97ab Reviewed-on: https://chromium-review.googlesource.com/185243 Tested-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Randall Spangler <rspangler@chromium.org>
* 8042: Add interface for handling off-matrix button changesChromeOS Developer2014-02-073-61/+129
| | | | | | | | | | | | | | | | | BUG=chrome-os-partner:24370 BRANCH=tot TEST=Power key and keyboard work normally. Signed-off-by: Dave Parker <dparker@chromium.org> Orig-Change-Id: I291ff384ae2fc3e074132330713f0b0c2cc36a76 Reviewed-on: https://chromium-review.googlesource.com/184543 (cherry picked from commit c65f82a5b02cdecf5b62f71ef2e916795f808389) Change-Id: I1cd02e824c97eb5909e7bff68c8ecefc89f52df0 Reviewed-on: https://chromium-review.googlesource.com/185242 Tested-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Commit-Queue: Randall Spangler <rspangler@chromium.org>
* Add presubmit check for unit testVic (Chun-Ju) Yang2014-02-064-0/+22
| | | | | | | | | | | | | | | | This enforces that "make buildall" runs at least once after the last file change. TEST=Try to upload without running "make buildall" TEST=Change a file without re-running "make buildall", and try to upload. BUG=None BRANCH=None Change-Id: Ia4abb3c0e17cf4d559975574f398d74c7986c89f Signed-off-by: Vic (Chun-Ju) Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185116 Reviewed-by: Dave Parker <dparker@chromium.org>
* baytrail: reduce delay before SYS_PWROK assertion to 5 msRandall Spangler2014-02-061-2/+5
| | | | | | | | | | | | | Since we have only mini-PCIe devices, and no PCIe devices, we don't need a 100 ms delay. BUG=chrome-os-partner:25264 BRANCH=rambi TEST=boot system; AP boots normally Change-Id: I3dd537154d70b8379ebc36cb71474420cba43d7d Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185046 Reviewed-by: Aaron Durbin <adurbin@chromium.org>
* baytrail: Ensure touchscreen is in reset on S3->S5 transitionRandall Spangler2014-02-061-1/+2
| | | | | | | | | | | | | | | | If the lid is open during shutdown, we were leaving the touchscreen out of reset. That increased S5 power consumption. BUG=chrome-os-partner:25168 BRANCH=rambi TEST=boot system, then power off with lid open 'gpioget TOUCHSCREEN_RESET_L' --> 0 Change-Id: Ibcd4718f0e4197a8cbcf2bb88cfbfa38ed345ead Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/185027 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Dave Parker <dparker@chromium.org>
* Pit: Add Green LED function in tps65090 charger driverJaehoon Kim2014-02-063-2/+21
| | | | | | | | | | | | | | | | From DV2 board of pit, we'll use 3 color-LED instead of power LED on keyboard. So, we have to add the function to control 3 color-LED in pmu driver. BUG=chrome-os-partner:24855 TEST=Tested on the pi and pit board about all power status. BRANCH=pit Change-Id: I7b1df39de8fa56eab73779abfa52cf8f72427b44 Signed-off-by: Jaehoon Kim <jh228.kim@samsung.com> Reviewed-on: https://chromium-review.googlesource.com/181588 Tested-by: Katie Roberts-Hoffman <katierh@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Wonjoon Lee <woojoo.lee@samsung.com>
* Add configs for battery detect via gpio or custom functionChromeOS Developer2014-02-0610-34/+48
| | | | | | | | | | | | BUG=chrome-os-partner:24649 BRANCH=baytrail TEST=Boot target device w/o battery. There should be no 30 second delay prior to boot. Change-Id: If7a60919701d1c241670d0b32e04f3e188a643f1 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/182921 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Stop hang detect timer when flags are set to 0Randall Spangler2014-02-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | Previously, setting flags=0 would disable any future timers from being started, but not stop any timer currently in progress. With this change, it does. BUG=chromium:298983 BRANCH=rambi,nyan TEST=manual on ap, ectool hangdetect 1 60000 0 on ec, hangdet -> status=inactive press power button on ec, hangdet -> status=active for event on ap, ectool hangdetect 0 0 0 on ec, hangdet -> status=inactive Change-Id: Icf8c6e0e95ae3780d250f9f01ec6a4dda6c56176 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/184950 Reviewed-by: Daniel Erat <derat@chromium.org> Reviewed-by: Alec Berg <alecaberg@chromium.org>
* Add vim filetype tag for Makefile.rulesVic (Chun-Ju) Yang2014-02-051-0/+1
| | | | | | | | | | | | | | | | | Vim cannot tell the file type of Makefile.rules by itself. Adding this tag to save myself from the nightmare of reading the file without syntax highlighting. BUG=None TEST=Open the file with vim and emacs. Both get the correct file type. BRANCH=None Change-Id: Ibcc920c0fb7c9575427b29a90b9973ecf3420b3c Signed-off-by: Vic (Chun-Ju) Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/184791 Reviewed-by: Vincent Palatin <vpalatin@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Doug Anderson <dianders@chromium.org>
* Config option for using power button with lid closedstabilize-5414.Bstabilize-5412.BChromeOS Developer2014-02-012-1/+10
| | | | | | | | | | | | | | | BUG=chrome-os-partner:24912 BRANCH=baytrail TEST=Manual. Enable CONFIG_POWER_BUTTON_IGNORE_LID on a device, boot it, and go into dock mode with external monitor attached. Fake-close the lid with a magnet or servo. Verify the power button still sends press/release events to the host with evtest. Change-Id: Idb05375eee0743a8a2c459070854c03fe3afe894 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/184493 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* Fix watchdog in keyboard scan if key outside mask pressedtest-5394.BRandall Spangler2014-01-291-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If a key is pressed which is not in actual_key_mask, this triggers the keyboard scan interrupt. But read_matrix() would use the key mask to decide that no *real* keys were pressed. So it would immediately drop out of scan mode back to interrupt mode. Which would again be triggered. Lather, rinse, repeat, watchdog. The fix is to use the unmasked key matrix to decide whether to stay in scan mode. This way, the keyboard task sleeps between scans, and the watchdog isn't triggered. (Note that the only way you can hit this bug in real life is to have a keyboard attached which can trigger keys not in actual_key_mask. Which is hard to do, unless you've got a new prototype keyboard with extra keys, or you've spilled lemon juice on your Chromebook...) BUG=chrome-os-partner:25333 BRANCH=rambi TEST=Zero out actual_key_mask in keyboard_scan.c. Press a key. Should not trigger a watchdog. Change-Id: I8c2fbc3e06fa12dfae5c06614814af8f04e24a8a Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/184323 Reviewed-by: Dave Parker <dparker@chromium.org> Tested-by: Dave Parker <dparker@chromium.org>
* rambi: Enable low-power idleRandall Spangler2014-01-292-0/+7
| | | | | | | | | | | | | | | | | This should reduce EC power consumption in S3 and S5. BUG=chrome-os-partner:25377 BRANCH=baytrail TEST=make sure jtag is not active (not running openocd via servo) boot system; suspend system wait 60 seconds; should see "Disabling console in deep sleep" type on console; should still allow typing wait 60 seconds; press spacebar; should still resume from suspend Change-Id: I47e33e158c1b90077f944a6af4374f39efa68d94 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/184165 Reviewed-by: Alec Berg <alecaberg@chromium.org>
* mec1322: hibernation supportstabilize-5339.BVic (Chun-Ju) Yang2014-01-284-4/+163
| | | | | | | | | | | | | | | This adds hibernation support. The chip can be waken by either GPIO or a timer. The maximum delay allowed is ~2 hours. BUG=chrome-os-partner:24107 TEST=hibernate and wake by GPIO TEST=hibernate and wake by timer BRANCH=None Change-Id: I1e064638a5008894a002a06a738bf6104f18636d Signed-off-by: Vic (Chun-Ju) Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/181202 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
* Check for valid i2c port number on i2c host commandsChromeOS Developer2014-01-281-2/+18
| | | | | | | | | | | | BUG=chrome-os-partner:25052 BRANCH=baytrail TEST=Run ectool i2cread, i2cwrite, and i2cxfer commands with invalid port numbers. Verify machine doesn't reboot. Change-Id: Ifef062cb4a7548278f69689072324704f2f66317 Signed-off-by: Dave Parker <dparker@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/182911 Reviewed-by: Randall Spangler <rspangler@chromium.org>
* rambi: Add delay between PP5000 and PP3300_DX enablesRandall Spangler2014-01-241-0/+1
| | | | | | | | | | | | | This may improve stability with power chaining. BUG=chrome-os-partner:25271 BRANCH=rambi TEST=boot system Change-Id: Ia3d4776b7e47c4d3cbaa4d6f937241fd230243f2 Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/183739 Reviewed-by: Aaron Durbin <adurbin@chromium.org>