Skip to content
Snippets Groups Projects
Verified Commit ab6c2517 authored by Michael Fincham's avatar Michael Fincham Committed by Johannes Schauer Marin Rodrigues
Browse files

lpc/reform2_lpc.c: poweroff

parent c6659fb0
No related branches found
No related tags found
1 merge request!59reform-tools 1.34
......@@ -8,6 +8,7 @@
static int lpcProbe(struct spi_device *spi);
static void lpcRemove(struct spi_device *spi);
static void lpcPowerOff(void);
static ssize_t showStatus(struct device *dev, struct device_attribute *attr, char *buf);
static ssize_t showCells(struct device *dev, struct device_attribute *attr, char *buf);
static ssize_t showFirmware(struct device *dev, struct device_attribute *attr, char *buf);
......@@ -58,6 +59,8 @@ static struct power_supply_desc bat_desc = {
static struct power_supply_config psy_cfg = {};
static struct device *poweroff_device;
static int lpcProbe(struct spi_device *spi)
{
struct lpc_driver_data *data;
......@@ -121,6 +124,10 @@ static int lpcProbe(struct spi_device *spi)
return PTR_ERR(data->bat);
}
// this overwrites something else that has already claimed pm_power_off on reform2 but it'll do for now
poweroff_device = &spi->dev;
pm_power_off = lpcPowerOff;
return ret;
}
......@@ -137,6 +144,11 @@ static void lpcRemove(struct spi_device *spi)
power_supply_unregister(data->bat);
if (pm_power_off == &lpcPowerOff)
{
pm_power_off = NULL;
}
kfree(data);
}
......@@ -289,6 +301,14 @@ static ssize_t lpcCommand(struct device *dev, char command, uint8_t arg1, uint8_
return ret;
}
static void lpcPowerOff(void)
{
int ret = 0;
uint8_t buffer[8];
ret = lpcCommand(poweroff_device, 'p', 1, buffer);
}
static int getBatProperty(struct power_supply *psy,
enum power_supply_property psp,
union power_supply_propval *val)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment