power: Enable charger unconditionally

This commit is contained in:
CTCaer 2020-06-14 02:04:50 +03:00
parent 416db840ec
commit eb2c8a032f
6 changed files with 30 additions and 0 deletions

View file

@ -154,6 +154,16 @@ int bq24193_get_property(enum BQ24193_reg_prop prop, int *value)
return 0; return 0;
} }
void bq24193_enable_charger()
{
u8 reg = bq24193_get_reg(BQ24193_PORConfig);
reg &= ~BQ24193_PORCONFIG_CHGCONFIG_MASK;
reg |= BQ24193_PORCONFIG_CHGCONFIG_CHARGER_EN;
i2c_send_byte(I2C_1, BQ24193_I2C_ADDR, BQ24193_PORConfig, reg);
}
void bq24193_fake_battery_removal() void bq24193_fake_battery_removal()
{ {
// Disable watchdog to keep BATFET disabled. // Disable watchdog to keep BATFET disabled.

View file

@ -30,6 +30,7 @@
#define BQ24193_PORCONFIG_BOOST_MASK (1<<0) #define BQ24193_PORCONFIG_BOOST_MASK (1<<0)
#define BQ24193_PORCONFIG_SYSMIN_MASK (7<<1) #define BQ24193_PORCONFIG_SYSMIN_MASK (7<<1)
#define BQ24193_PORCONFIG_CHGCONFIG_MASK (3<<4) #define BQ24193_PORCONFIG_CHGCONFIG_MASK (3<<4)
#define BQ24193_PORCONFIG_CHGCONFIG_CHARGER_EN (1<<4)
#define BQ24193_PORCONFIG_I2CWATCHDOG_MASK (1<<6) #define BQ24193_PORCONFIG_I2CWATCHDOG_MASK (1<<6)
#define BQ24193_PORCONFIG_RESET_MASK (1<<7) #define BQ24193_PORCONFIG_RESET_MASK (1<<7)
@ -114,6 +115,7 @@ enum BQ24193_reg_prop {
}; };
int bq24193_get_property(enum BQ24193_reg_prop prop, int *value); int bq24193_get_property(enum BQ24193_reg_prop prop, int *value);
void bq24193_enable_charger();
void bq24193_fake_battery_removal(); void bq24193_fake_battery_removal();
#endif /* __BQ24193_H_ */ #endif /* __BQ24193_H_ */

View file

@ -315,6 +315,9 @@ void config_hw()
i2c_init(I2C_1); i2c_init(I2C_1);
i2c_init(I2C_5); i2c_init(I2C_5);
// Enable charger in case it's disabled.
bq24193_enable_charger();
_config_regulators(); _config_regulators();
_config_pmc_scratch(); // Missing from 4.x+ _config_pmc_scratch(); // Missing from 4.x+

View file

@ -154,6 +154,16 @@ int bq24193_get_property(enum BQ24193_reg_prop prop, int *value)
return 0; return 0;
} }
void bq24193_enable_charger()
{
u8 reg = bq24193_get_reg(BQ24193_PORConfig);
reg &= ~BQ24193_PORCONFIG_CHGCONFIG_MASK;
reg |= BQ24193_PORCONFIG_CHGCONFIG_CHARGER_EN;
i2c_send_byte(I2C_1, BQ24193_I2C_ADDR, BQ24193_PORConfig, reg);
}
void bq24193_fake_battery_removal() void bq24193_fake_battery_removal()
{ {
// Disable watchdog to keep BATFET disabled. // Disable watchdog to keep BATFET disabled.

View file

@ -30,6 +30,7 @@
#define BQ24193_PORCONFIG_BOOST_MASK (1<<0) #define BQ24193_PORCONFIG_BOOST_MASK (1<<0)
#define BQ24193_PORCONFIG_SYSMIN_MASK (7<<1) #define BQ24193_PORCONFIG_SYSMIN_MASK (7<<1)
#define BQ24193_PORCONFIG_CHGCONFIG_MASK (3<<4) #define BQ24193_PORCONFIG_CHGCONFIG_MASK (3<<4)
#define BQ24193_PORCONFIG_CHGCONFIG_CHARGER_EN (1<<4)
#define BQ24193_PORCONFIG_I2CWATCHDOG_MASK (1<<6) #define BQ24193_PORCONFIG_I2CWATCHDOG_MASK (1<<6)
#define BQ24193_PORCONFIG_RESET_MASK (1<<7) #define BQ24193_PORCONFIG_RESET_MASK (1<<7)
@ -114,6 +115,7 @@ enum BQ24193_reg_prop {
}; };
int bq24193_get_property(enum BQ24193_reg_prop prop, int *value); int bq24193_get_property(enum BQ24193_reg_prop prop, int *value);
void bq24193_enable_charger();
void bq24193_fake_battery_removal(); void bq24193_fake_battery_removal();
#endif /* __BQ24193_H_ */ #endif /* __BQ24193_H_ */

View file

@ -323,6 +323,9 @@ void config_hw()
i2c_init(I2C_1); i2c_init(I2C_1);
i2c_init(I2C_5); i2c_init(I2C_5);
// Enable charger in case it's disabled.
bq24193_enable_charger();
_config_regulators(); _config_regulators();
_config_pmc_scratch(); // Missing from 4.x+ _config_pmc_scratch(); // Missing from 4.x+