Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 03ba7e07 authored by Igor Grinberg's avatar Igor Grinberg Committed by Eric Miao
Browse files

[ARM] pxa/cm-x300.c: add battery charger support

parent b1d9bf1d
Loading
Loading
Loading
Loading
+56 −1
Original line number Original line Diff line number Diff line
@@ -30,6 +30,8 @@
#include <linux/i2c/pca953x.h>
#include <linux/i2c/pca953x.h>


#include <linux/mfd/da903x.h>
#include <linux/mfd/da903x.h>
#include <linux/power_supply.h>
#include <linux/apm-emulation.h>


#include <linux/spi/spi.h>
#include <linux/spi/spi.h>
#include <linux/spi/spi_gpio.h>
#include <linux/spi/spi_gpio.h>
@@ -584,12 +586,65 @@ static void __init cm_x300_init_rtc(void)
static inline void cm_x300_init_rtc(void) {}
static inline void cm_x300_init_rtc(void) {}
#endif
#endif


/* Battery */
struct power_supply_info cm_x300_psy_info = {
	.name = "battery",
	.technology = POWER_SUPPLY_TECHNOLOGY_LIPO,
	.voltage_max_design = 4200000,
	.voltage_min_design = 3000000,
	.use_for_apm = 1,
};

static void cm_x300_battery_low(void)
{
#if defined(CONFIG_APM_EMULATION)
	apm_queue_event(APM_LOW_BATTERY);
#endif
}

static void cm_x300_battery_critical(void)
{
#if defined(CONFIG_APM_EMULATION)
	apm_queue_event(APM_CRITICAL_SUSPEND);
#endif
}

struct da9030_battery_info cm_x300_battery_info = {
	.battery_info = &cm_x300_psy_info,

	.charge_milliamp = 1000,
	.charge_millivolt = 4200,

	.vbat_low = 3600,
	.vbat_crit = 3400,
	.vbat_charge_start = 4100,
	.vbat_charge_stop = 4200,
	.vbat_charge_restart = 4000,

	.vcharge_min = 3200,
	.vcharge_max = 5500,

	.tbat_low = 197,
	.tbat_high = 78,
	.tbat_restart = 100,

	.batmon_interval = 0,

	.battery_low = cm_x300_battery_low,
	.battery_critical = cm_x300_battery_critical,
};

/* DA9030 */
/* DA9030 */
struct da903x_subdev_info cm_x300_da9030_subdevs[] = {
struct da903x_subdev_info cm_x300_da9030_subdevs[] = {
	{
	{
		.name = "da903x-backlight",
		.name = "da903x-backlight",
		.id = DA9030_ID_WLED,
		.id = DA9030_ID_WLED,
	}
	},
	{
		.name = "da903x-battery",
		.id = DA9030_ID_BAT,
		.platform_data = &cm_x300_battery_info,
	},
};
};


static struct da903x_platform_data cm_x300_da9030_info = {
static struct da903x_platform_data cm_x300_da9030_info = {