.cell_nr = ARRAY_SIZE(pm880_cell_devs),
};
-static const struct reg_default pm880_base_patch[] = {
- {PM88X_WDOG, 0x1}, /* disable watchdog */
- {PM88X_AON_CTRL2, 0x2a}, /* output 32kHZ from XO */
- {PM88X_BK_OSC_CTRL1, 0x0f}, /* OSC_FREERUN = 1, to lock FLL */
- {PM88X_LOWPOWER2, 0x20}, /* XO_LJ = 1, enable low jitter for 32kHZ */
+static const struct reg_sequence pm880_base_patch[] = {
+ REG_SEQ0(PM88X_WDOG, 0x1), /* disable watchdog */
+ REG_SEQ0(PM88X_AON_CTRL2, 0x2a), /* output 32kHZ from XO */
+ REG_SEQ0(PM88X_BK_OSC_CTRL1, 0x0f), /* OSC_FREERUN = 1, to lock FLL */
+ REG_SEQ0(PM88X_LOWPOWER2, 0x20), /* XO_LJ = 1, enable low jitter for 32kHZ */
/* enable LPM for internal reference group in sleep */
- {PM88X_LOWPOWER4, 0xc0},
- {PM88X_BK_OSC_CTRL3, 0xc0}, /* set the duty cycle of charger DC/DC to max */
+ REG_SEQ0(PM88X_LOWPOWER4, 0xc0),
+ REG_SEQ0(PM88X_BK_OSC_CTRL3, 0xc0), /* set the duty cycle of charger DC/DC to max */
};
-static const struct reg_default pm880_power_patch[] = {
+static const struct reg_sequence pm880_power_patch[] = {
};
-static const struct reg_default pm880_gpadc_patch[] = {
- {PM88X_GPADC_CONFIG6, 0x03}, /* enable non-stop mode */
+static const struct reg_sequence pm880_gpadc_patch[] = {
+ REG_SEQ0(PM88X_GPADC_CONFIG6, 0x03), /* enable non-stop mode */
};
-static const struct reg_default pm880_battery_patch[] = {
- {PM88X_CHGBK_CONFIG6, 0xe1},
+static const struct reg_sequence pm880_battery_patch[] = {
+ REG_SEQ0(PM88X_CHGBK_CONFIG6, 0xe1),
};
-static const struct reg_default pm880_test_patch[] = {
+static const struct reg_sequence pm880_test_patch[] = {
};
/* 88pm880 chip itself related */
.cell_nr = ARRAY_SIZE(pm886_cell_devs),
};
-static const struct reg_default pm886_base_patch[] = {
- {PM88X_WDOG, 0x1}, /* disable watchdog */
- {PM88X_GPIO_CTRL1, 0x40}, /* gpio1: dvc , gpio0: input */
- {PM88X_GPIO_CTRL2, 0x00}, /* , gpio2: input */
- {PM88X_GPIO_CTRL3, 0x44}, /* dvc2 , dvc1 */
- {PM88X_GPIO_CTRL4, 0x00}, /* gpio5v_1:input, gpio5v_2: input*/
- {PM88X_AON_CTRL2, 0x2a}, /* output 32kHZ from XO */
- {PM88X_BK_OSC_CTRL1, 0x0f}, /* OSC_FREERUN = 1, to lock FLL */
- {PM88X_LOWPOWER2, 0x20}, /* XO_LJ = 1, enable low jitter for 32kHZ */
+static const struct reg_sequence pm886_base_patch[] = {
+ REG_SEQ0(PM88X_WDOG, 0x1), /* disable watchdog */
+ REG_SEQ0(PM88X_GPIO_CTRL1, 0x40), /* gpio1: dvc , gpio0: input */
+ REG_SEQ0(PM88X_GPIO_CTRL2, 0x00), /* , gpio2: input */
+ REG_SEQ0(PM88X_GPIO_CTRL3, 0x44), /* dvc2 , dvc1 */
+ REG_SEQ0(PM88X_GPIO_CTRL4, 0x00), /* gpio5v_1:input, gpio5v_2: input*/
+ REG_SEQ0(PM88X_AON_CTRL2, 0x2a), /* output 32kHZ from XO */
+ REG_SEQ0(PM88X_BK_OSC_CTRL1, 0x0f), /* OSC_FREERUN = 1, to lock FLL */
+ REG_SEQ0(PM88X_LOWPOWER2, 0x20), /* XO_LJ = 1, enable low jitter for 32kHZ */
/* enable LPM for internal reference group in sleep */
- {PM88X_LOWPOWER4, 0xc0},
- {PM88X_BK_OSC_CTRL3, 0xc0}, /* set the duty cycle of charger DC/DC to max */
+ REG_SEQ0(PM88X_LOWPOWER4, 0xc0),
+ REG_SEQ0(PM88X_BK_OSC_CTRL3, 0xc0), /* set the duty cycle of charger DC/DC to max */
};
-static const struct reg_default pm886_power_patch[] = {
+static const struct reg_sequence pm886_power_patch[] = {
};
-static const struct reg_default pm886_gpadc_patch[] = {
- {PM88X_GPADC_CONFIG6, 0x03}, /* enable non-stop mode */
+static const struct reg_sequence pm886_gpadc_patch[] = {
+ REG_SEQ0(PM88X_GPADC_CONFIG6, 0x03), /* enable non-stop mode */
};
-static const struct reg_default pm886_battery_patch[] = {
- {PM88X_CHGBK_CONFIG6, 0xe1},
+static const struct reg_sequence pm886_battery_patch[] = {
+ REG_SEQ0(PM88X_CHGBK_CONFIG6, 0xe1),
};
-static const struct reg_default pm886_test_patch[] = {
+static const struct reg_sequence pm886_test_patch[] = {
};
/* 88pm886 chip itself related */
}
/* power page */
- chip->power_page = i2c_new_dummy(client->adapter, chip->power_page_addr);
+ chip->power_page = i2c_new_dummy_device(client->adapter, chip->power_page_addr);
if (!chip->power_page) {
dev_err(chip->dev, "Failed to new power_page: %d\n", ret);
ret = -ENODEV;
}
/* gpadc page */
- chip->gpadc_page = i2c_new_dummy(client->adapter, chip->gpadc_page_addr);
+ chip->gpadc_page = i2c_new_dummy_device(client->adapter, chip->gpadc_page_addr);
if (!chip->gpadc_page) {
dev_err(chip->dev, "Failed to new gpadc_page: %d\n", ret);
ret = -ENODEV;
}
/* battery page */
- chip->battery_page = i2c_new_dummy(client->adapter, chip->battery_page_addr);
+ chip->battery_page = i2c_new_dummy_device(client->adapter, chip->battery_page_addr);
if (!chip->battery_page) {
dev_err(chip->dev, "Failed to new gpadc_page: %d\n", ret);
ret = -ENODEV;
}
/* test page */
- chip->test_page = i2c_new_dummy(client->adapter, chip->test_page_addr);
+ chip->test_page = i2c_new_dummy_device(client->adapter, chip->test_page_addr);
if (!chip->test_page) {
dev_err(chip->dev, "Failed to new test_page: %d\n", ret);
ret = -ENODEV;
chip->ldo_regmap = chip->power_regmap;
/* buck page */
- chip->buck_page = i2c_new_dummy(client->adapter,
+ chip->buck_page = i2c_new_dummy_device(client->adapter,
chip->buck_page_addr);
if (!chip->buck_page) {
dev_err(chip->dev, "Failed to new buck_page: %d\n", ret);
#include <linux/mfd/88pm880.h>
#include <linux/mfd/88pm88x.h>
-static int pm88x_i2c_probe(struct i2c_client *client,
- const struct i2c_device_id *id)
+static int pm88x_i2c_probe(struct i2c_client *client)
{
struct pm88x_chip *chip;
struct device_node *node = client->dev.of_node;
return ret;
}
-static int pm88x_i2c_remove(struct i2c_client *i2c)
+static void pm88x_i2c_remove(struct i2c_client *i2c)
{
struct pm88x_chip *chip = dev_get_drvdata(&i2c->dev);
pm88x_dev_exit(chip);
- return 0;
}
static const struct i2c_device_id pm88x_i2c_id[] = {
.num_regs = 4,
.status_base = PM88X_INT_STATUS1,
- .mask_base = PM88X_INT_ENA_1,
+ .unmask_base = PM88X_INT_ENA_1,
.ack_base = PM88X_INT_STATUS1,
- .mask_invert = 1,
};
int pm88x_irq_init(struct pm88x_chip *chip)
#include <linux/regmap.h>
#include <linux/atomic.h>
#include <linux/reboot.h>
+#include <linux/mod_devicetable.h>
#include "88pm88x-reg.h"
#include "88pm886-reg.h"