mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 23:36:42 +07:00
db43e6c473
AB8540 supports power path function in USB charging mode for fast power up with dead and weak battery, and it could extend the battery age. When USB charging starts, if the Vbattrue is below than SW cut off voltage, power path and pre-charge should be enabled. If Vbattrue is higher than SW cut off voltage, power path and pre-charge should be disabled. This is to make sure full current to battery charge. At the end of charge, power path should be enable again to reduce charging the battery again. Signed-off-by: Lee Jones <lee.jones@linaro.org>
51 lines
1.4 KiB
C
51 lines
1.4 KiB
C
/*
|
|
* Copyright (C) ST-Ericsson SA 2012
|
|
* Author: Johan Gardsmark <johan.gardsmark@stericsson.com> for ST-Ericsson.
|
|
* License terms: GNU General Public License (GPL), version 2
|
|
*/
|
|
|
|
#ifndef _UX500_CHARGALG_H
|
|
#define _UX500_CHARGALG_H
|
|
|
|
#include <linux/power_supply.h>
|
|
|
|
#define psy_to_ux500_charger(x) container_of((x), \
|
|
struct ux500_charger, psy)
|
|
|
|
/* Forward declaration */
|
|
struct ux500_charger;
|
|
|
|
struct ux500_charger_ops {
|
|
int (*enable) (struct ux500_charger *, int, int, int);
|
|
int (*check_enable) (struct ux500_charger *, int, int);
|
|
int (*kick_wd) (struct ux500_charger *);
|
|
int (*update_curr) (struct ux500_charger *, int);
|
|
int (*pp_enable) (struct ux500_charger *, bool);
|
|
int (*pre_chg_enable) (struct ux500_charger *, bool);
|
|
};
|
|
|
|
/**
|
|
* struct ux500_charger - power supply ux500 charger sub class
|
|
* @psy power supply base class
|
|
* @ops ux500 charger operations
|
|
* @max_out_volt maximum output charger voltage in mV
|
|
* @max_out_curr maximum output charger current in mA
|
|
* @enabled indicates if this charger is used or not
|
|
* @external external charger unit (pm2xxx)
|
|
* @power_path USB power path support
|
|
*/
|
|
struct ux500_charger {
|
|
struct power_supply psy;
|
|
struct ux500_charger_ops ops;
|
|
int max_out_volt;
|
|
int max_out_curr;
|
|
int wdt_refresh;
|
|
bool enabled;
|
|
bool external;
|
|
bool power_path;
|
|
};
|
|
|
|
extern struct blocking_notifier_head charger_notifier_list;
|
|
|
|
#endif
|