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. |