From 53ee344743d89a987b8a9ebe79aa7e732e824148 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Mon, 25 Aug 2003 08:57:49 +0000 Subject: Slightly more correct initialization of the power/charging code git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3940 a1c6a512-1295-4272-9138-f99709370657 --- apps/main.c | 2 +- firmware/drivers/power.c | 10 +++++++++- firmware/export/power.h | 1 + firmware/export/powermgmt.h | 2 +- firmware/powermgmt.c | 4 +++- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/apps/main.c b/apps/main.c index 4d329bb658..d180067c9e 100644 --- a/apps/main.c +++ b/apps/main.c @@ -146,7 +146,7 @@ void init(void) button_init(); - power_init(); /* moved up from below mpeg_init, hope that's not harmful */ + powermgmt_init(); if (coldstart && charger_inserted()) { diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c index 7f6284d3b7..a76021a5bf 100644 --- a/firmware/drivers/power.c +++ b/firmware/drivers/power.c @@ -24,11 +24,19 @@ #include "power.h" #ifdef HAVE_CHARGE_CTRL -bool charger_enabled = 0; +bool charger_enabled; #endif #ifndef SIMULATOR +void power_init(void) +{ +#ifdef HAVE_CHARGE_CTRL + PBIOR |= 0x20; /* Set charging control bit to output */ + charger_enable(false); /* Default to charger OFF */ +#endif +} + bool charger_inserted(void) { #ifdef HAVE_CHARGE_CTRL diff --git a/firmware/export/power.h b/firmware/export/power.h index f4e7a0b990..678260ac58 100644 --- a/firmware/export/power.h +++ b/firmware/export/power.h @@ -23,6 +23,7 @@ extern bool charger_enabled; #endif +void power_init(void); bool charger_inserted(void); void charger_enable(bool on); void ide_power_enable(bool on); diff --git a/firmware/export/powermgmt.h b/firmware/export/powermgmt.h index 407866741b..4b4d040dcd 100644 --- a/firmware/export/powermgmt.h +++ b/firmware/export/powermgmt.h @@ -80,7 +80,7 @@ extern int charge_state; /* tells what the charger is doing (for info di extern unsigned short power_history[POWER_HISTORY_LEN]; /* Start up power management thread */ -void power_init(void); +void powermgmt_init(void); #endif /* SIMULATOR */ diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index 13043cb88f..78f4a5a3cb 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c @@ -685,8 +685,10 @@ static void power_thread(void) } } -void power_init(void) +void powermgmt_init(void) { + power_init(); + /* init history to 0 */ memset(power_history, 0x00, sizeof(power_history)); /* initialize the history with a single sample to prevent level -- cgit v1.2.3