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