|
From: <cri...@us...> - 2006-10-23 19:39:10
|
Revision: 643
http://svn.sourceforge.net/hackndev/?rev=643&view=rev
Author: cristianop
Date: 2006-10-23 12:38:29 -0700 (Mon, 23 Oct 2006)
Log Message:
-----------
palmtx: check also usb detect gpio to determine battery status
Modified Paths:
--------------
linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmld_ac97.c
Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmld_ac97.c
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmld_ac97.c 2006-10-23 15:52:20 UTC (rev 642)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmld_ac97.c 2006-10-23 19:38:29 UTC (rev 643)
@@ -283,7 +283,7 @@
void palmld_battery_read_adc(int force)
{
- u16 reading;
+ u16 vread;
if(!force && ((last_battery_update + 10 *HZ) > jiffies))
return;
@@ -293,18 +293,18 @@
down(&digitiser_sem);
wm97xx_set_digitiser_power(WM97XX_PRP_DET_DIG);
- // todo: check if reading is valid
- reading = palmld_ac97_take_reading(WM97XX_ADCSEL_BMON);
+ vread = palmld_ac97_take_reading(WM97XX_ADCSEL_BMON);
wm97xx_set_digitiser_power(WM97XX_PRP_DET);
up(&digitiser_sem);
+
previous_voltage = current_voltage;
- current_voltage = reading & 0xfff;
- //printk("wm9712: battery -> %d\n", battery_voltage);
+ current_voltage = vread & 0xfff;
last_battery_update = jiffies;
up(&battery_update_mutex);
}
+
int palmld_battery_min_voltage(struct battery *b)
{
return PALMTX_BAT_MIN_VOLTAGE;
@@ -317,7 +317,6 @@
}
-
// let's suppose AVDD=+3.3v so battV = intV * 3 * 0.80586
// note: 0.80586 = 3.3/4095
int palmld_battery_get_voltage(struct battery *b)
@@ -327,7 +326,7 @@
return current_voltage * 3 * 80586 / 100000;
}
else{
- printk("palmld_battery: cannot get voltage -> battery driver unuregistered\n");
+ printk("palmld_battery: cannot get voltage -> battery driver unregistered\n");
return 0;
}
}
@@ -335,14 +334,13 @@
int palmld_battery_get_status(struct battery *b)
{
- int ac_connected = 0;
+ int ac_connected = GET_GPIO(GPIO_NR_PALMTX_POWER_DETECT);
+ int usb_connected = !GET_GPIO(GPIO_NR_PALMTX_USB_DETECT);
- ac_connected = GET_GPIO(GPIO_NR_PALMTX_POWER_DETECT);
-
if (current_voltage <= 0)
return BATTERY_STATUS_UNKNOWN;
- if (ac_connected){
+ if (ac_connected || usb_connected){
// TODO: ok maybe this is too stupid ... to be reviewed
if ( ( current_voltage > previous_voltage ) || (current_voltage <= PALMTX_BAT_MAX_VOLTAGE) )
return BATTERY_STATUS_CHARGING;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|