rockbox/firmware/target/arm/imx233/powermgmt-imx233.h
Amaury Pouly 3afcb53fb9 imx233: rework power management
The current code was spreaded over power and powermgmt which made
it behave strangely, especially since there are relationships
between power management and frequency scaling. The new code makes
sure power management is initialised before frequency scaling
starts. It also makes sure to start from a known state, thus
fixing potential issue when the bootloader stops in a trickle
state where DCDC is improperly configured.

Change-Id: Ibded2e590e108f6c98daa52d2cf1bd28763c8923
2013-07-07 17:36:21 +02:00

42 lines
1.5 KiB
C

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2011 by Amaury Pouly
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef POWERMGMT_IMX233_H
#define POWERMGMT_IMX233_H
#include "config.h"
#include "powermgmt.h"
void imx233_powermgmt_init(void);
void powermgmt_init_target(void);
void charging_algorithm_step(void);
void charging_algorithm_close(void);
struct imx233_powermgmt_info_t
{
enum charge_state_type state;
int charging_timeout; /* time in tick before timeout, -1 if n/a */
int topoff_timeout; /* ditto */
int incr_4p2_ilimit_timeout; /* ditto */
};
struct imx233_powermgmt_info_t imx233_powermgmt_get_info(void);
#endif /* POWERMGMT_IMX233_H */