From: <far...@us...> - 2006-12-08 18:55:07
|
Revision: 699 http://svn.sourceforge.net/hackndev/?rev=699&view=rev Author: farcaller Date: 2006-12-08 10:55:03 -0800 (Fri, 08 Dec 2006) Log Message: ----------- palmt3: updated to reflect latest battchargemon changes Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt3/palmt3_battery.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt3/palmt3_battery.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt3/palmt3_battery.c 2006-12-08 18:54:18 UTC (rev 698) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt3/palmt3_battery.c 2006-12-08 18:55:03 UTC (rev 699) @@ -23,7 +23,7 @@ #include <linux/delay.h> #include <linux/jiffies.h> #include <linux/platform_device.h> -#include <linux/battery.h> +#include <linux/battchargemon.h> #include <asm/io.h> #include <asm/irq.h> @@ -32,6 +32,7 @@ #include <asm/arch/pxa-regs.h> #include <linux/soc/tsc2101.h> +#include <asm/arch/tps65010.h> #define BATTERY_CHECK_INTERVAL (HZ * 60) /* every 60 seconds */ @@ -69,6 +70,8 @@ put_device(tscdev); put_driver(tscdrv); + battery_update_charge_link(bat); + /* Vbat = B/{2^N} * 5 * VREF where @@ -79,26 +82,40 @@ return (batv*6250)/4096; } -#define GET_GPIO(gpio) (GPLR(gpio) & GPIO_bit(gpio)) +int palmt3_charger_get_usb_status(struct charger *cha) +{ + u8 tps65010_get_chgstatus(void); + return ((tps65010_get_chgstatus() & TPS_CHG_USB)?1:0); +} -int palmt3_battery_get_status(struct battery *bat) +int palmt3_charger_get_ac_status(struct charger *cha) { - int status; - - status = GET_GPIO(14) ? - BATTERY_STATUS_NOT_CHARGING : BATTERY_STATUS_CHARGING; - - return status; + u8 tps65010_get_chgstatus(void); + return ((tps65010_get_chgstatus() & TPS_CHG_AC)?1:0); } static struct battery palmt3_battery = { - .name = "palmt3_batt", - .id = "battery0", + .name = "palmt3_batt", + .id = "Li-Ion battery", + .min_voltage = 3710, + .max_voltage = 4156, + .v_current = -1, + .temp = -1, .get_voltage = palmt3_battery_get_voltage, - .get_min_voltage = palmt3_battery_get_min_voltage, - .get_max_voltage = palmt3_battery_get_max_voltage, - .get_status = palmt3_battery_get_status, }; + +static struct charger palmt3_usb_charger = { + .name = "palmt3_usb", + .id = "USB", + .get_status = palmt3_charger_get_usb_status, +}; + +static struct charger palmt3_ac_charger = { + .name = "palmt3_ac", + .id = "AC", + .get_status = palmt3_charger_get_ac_status, +}; + /* -------------------------- APM ------------------------------------- */ static void palmt3_apm_get_power_status(struct apm_power_info *info) { @@ -154,7 +171,7 @@ } static struct device_driver palmt3_battery_driver = { - .name = "palmt3_batt", + .name = "palmt3_battchargemon", .bus = &platform_bus_type, .probe = palmt3_battery_probe, }; @@ -168,6 +185,13 @@ return retval; retval = battery_class_register(&palmt3_battery); + retval = charger_class_register(&palmt3_usb_charger); + retval = charger_class_register(&palmt3_ac_charger); + + battery_attach_charger(&palmt3_battery, &palmt3_usb_charger); + battery_attach_charger(&palmt3_battery, &palmt3_ac_charger); + + battery_update_charge_link(&palmt3_battery); if (!retval) { #ifdef CONFIG_PM set_apm_get_power_status(palmt3_apm_get_power_status); @@ -178,6 +202,11 @@ static void __exit palmt3_battery_exit(void) { + battery_remove_charger(0, &palmt3_ac_charger); + battery_remove_charger(0, &palmt3_usb_charger); + + charger_class_unregister(&palmt3_usb_charger); + charger_class_unregister(&palmt3_ac_charger); battery_class_unregister(&palmt3_battery); driver_unregister(&palmt3_battery_driver); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |