Loading drivers/mfd/max77620.c +18 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ #include <linux/regmap.h> #include <linux/slab.h> static struct max77620_chip *max77620_scratch; static const struct resource gpio_resources[] = { DEFINE_RES_IRQ(MAX77620_IRQ_TOP_GPIO), }; Loading Loading @@ -481,6 +483,15 @@ static int max77620_read_es_version(struct max77620_chip *chip) return ret; } static void max77620_pm_power_off(void) { struct max77620_chip *chip = max77620_scratch; regmap_update_bits(chip->rmap, MAX77620_REG_ONOFFCNFG1, MAX77620_ONOFFCNFG1_SFT_RST, MAX77620_ONOFFCNFG1_SFT_RST); } static int max77620_probe(struct i2c_client *client, const struct i2c_device_id *id) { Loading @@ -488,6 +499,7 @@ static int max77620_probe(struct i2c_client *client, struct max77620_chip *chip; const struct mfd_cell *mfd_cells; int n_mfd_cells; bool pm_off; int ret; chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); Loading Loading @@ -554,6 +566,12 @@ static int max77620_probe(struct i2c_client *client, return ret; } pm_off = of_device_is_system_power_controller(client->dev.of_node); if (pm_off && !pm_power_off) { max77620_scratch = chip; pm_power_off = max77620_pm_power_off; } return 0; } Loading Loading
drivers/mfd/max77620.c +18 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ #include <linux/regmap.h> #include <linux/slab.h> static struct max77620_chip *max77620_scratch; static const struct resource gpio_resources[] = { DEFINE_RES_IRQ(MAX77620_IRQ_TOP_GPIO), }; Loading Loading @@ -481,6 +483,15 @@ static int max77620_read_es_version(struct max77620_chip *chip) return ret; } static void max77620_pm_power_off(void) { struct max77620_chip *chip = max77620_scratch; regmap_update_bits(chip->rmap, MAX77620_REG_ONOFFCNFG1, MAX77620_ONOFFCNFG1_SFT_RST, MAX77620_ONOFFCNFG1_SFT_RST); } static int max77620_probe(struct i2c_client *client, const struct i2c_device_id *id) { Loading @@ -488,6 +499,7 @@ static int max77620_probe(struct i2c_client *client, struct max77620_chip *chip; const struct mfd_cell *mfd_cells; int n_mfd_cells; bool pm_off; int ret; chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); Loading Loading @@ -554,6 +566,12 @@ static int max77620_probe(struct i2c_client *client, return ret; } pm_off = of_device_is_system_power_controller(client->dev.of_node); if (pm_off && !pm_power_off) { max77620_scratch = chip; pm_power_off = max77620_pm_power_off; } return 0; } Loading