diff options
author | Sachin Nikam <snikam@nvidia.com> | 2010-04-05 15:38:03 +0530 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-04-05 20:29:46 -0700 |
commit | 6dbb4916287e842f3e8541a980e30ee0cc9479b4 (patch) | |
tree | af080feed52db654296f1098cc0c7467e6bbbcc0 /arch/arm/mach-tegra/odm_kit/query | |
parent | 27f64e9323656140b969d0f77cc2b898e8929a75 (diff) |
nvec_battery:Handling critical battery condition
1. nvec.h:Correcting enum ordering for NvEcBatterySubtype
as per ECI specs.
NvEcBatterySubtype_SetRemainingCapacityAlarm and
NvEcBatterySubtype_GetRemainingCapacityAlar
>> Verified
2. Registering interrupt for LOW_BAT# from T20 pinmux table:-
GPIO interrupt for Low battery on port w and pin 3
>> Already verified on Wince.
On Android when 0% power is left device
is shutdown. Harmony has this setting around 9.3V which is
less when the battery is at 0%.
3. Enabling LOW_BAT# as a wakeup source 11 from suspend
>> As point no. 2 is wokring this should also work.
This is not verfied as in suspend battery discharge
is slow.
4. Enabling Low capacity alarm as a wakeup source suspend
>> As remaining capacity alarm is working this should also
work.
This is not verfied as in suspend battery discharge
is slow.
5. Setting the 10% of Design capacit as threshold for
Remaining capacity alaram event.
>> Verified
6. Adding 4 functions which are needed for EC firmware validation
NvOdmBatterySetRemCapacityAlarm
NvOdmBatteryGetRemCapacityAlarm
NvOdmBatterySetConfiguration
NvOdmBatteryGetConfiguration
>> Verified
7. Calling kernel_power_off() when device is running on only battery
and it is ctitically low to gracefully shutdown the system.
>> Verified
Tested on harmony + eclair + battery
Change-Id: I6f4c8a1866ba63c293813b180cc5b74714aa23cd
Reviewed-on: http://git-master/r/976
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Tested-by: Sachin Nikam <snikam@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/odm_kit/query')
-rw-r--r-- | arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_gpio.c | 9 |
2 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c b/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c index 63116a5d9557..b21a8bd57ed5 100644 --- a/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c +++ b/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query.c @@ -305,7 +305,7 @@ static NvOdmWakeupPadInfo s_NvOdmWakeupPadInfo[] = {NV_FALSE, 8, NvOdmWakeupPadPolarity_AnyEdge}, // Wake Event 8 - gmi_wp_n (MICRO SD_CD) {NV_FALSE, 9, NvOdmWakeupPadPolarity_High}, // Wake Event 9 - gp3_ps[2] (KB_COL10) {NV_FALSE, 10, NvOdmWakeupPadPolarity_High}, // Wake Event 10 - gmi_ad21 (Accelerometer_TH/TAP) - {NV_FALSE, 11, NvOdmWakeupPadPolarity_Low}, // Wake Event 11 - spi2_cs2 (PEN_INT, AUDIO-IRQ) + {NV_TRUE, 11, NvOdmWakeupPadPolarity_Low}, // Wake Event 11 - spi2_cs2 (PEN_INT, AUDIO-IRQ, LOW_BAT#) {NV_FALSE, 12, NvOdmWakeupPadPolarity_Low}, // Wake Event 12 - spi2_cs1 (HEADSET_DET, not used) {NV_FALSE, 13, NvOdmWakeupPadPolarity_Low}, // Wake Event 13 - sdio1_dat1 {NV_FALSE, 14, NvOdmWakeupPadPolarity_High}, // Wake Event 14 - gp3_pv[6] (WLAN_INT) diff --git a/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_gpio.c b/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_gpio.c index 1868bffa7fd7..8d384db176ee 100644 --- a/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_gpio.c +++ b/arch/arm/mach-tegra/odm_kit/query/harmony/nvodm_query_gpio.c @@ -153,6 +153,11 @@ static const NvOdmGpioPinInfo s_WakeFromKeyBoard[] = { {NVODM_PORT('a'), 0, NvOdmGpioPinActiveState_Low} // EC Keyboard Wakeup }; +static const NvOdmGpioPinInfo s_Battery[] = { + // Low Battery + {NVODM_PORT('w'), 3, NvOdmGpioPinActiveState_Low}, +}; + const NvOdmGpioPinInfo *NvOdmQueryGpioPinMap(NvOdmGpioPinGroup Group, NvU32 Instance, NvU32 *pCount) { @@ -224,6 +229,10 @@ const NvOdmGpioPinInfo *NvOdmQueryGpioPinMap(NvOdmGpioPinGroup Group, *pCount = NVODM_ARRAY_SIZE(s_WakeFromKeyBoard); return s_WakeFromKeyBoard; + case NvOdmGpioPinGroup_Battery: + *pCount = NVODM_ARRAY_SIZE(s_Battery); + return s_Battery; + default: *pCount = 0; return NULL; |