max8907
static struct max8907 *max8907_pm_off;
struct max8907 *max8907;
max8907 = devm_kzalloc(&i2c->dev, sizeof(struct max8907), GFP_KERNEL);
if (!max8907) {
max8907->dev = &i2c->dev;
max8907->i2c_gen = i2c;
i2c_set_clientdata(i2c, max8907);
max8907->regmap_gen = devm_regmap_init_i2c(i2c,
if (IS_ERR(max8907->regmap_gen)) {
ret = PTR_ERR(max8907->regmap_gen);
max8907->i2c_rtc = i2c_new_dummy_device(i2c->adapter, MAX8907_RTC_I2C_ADDR);
if (IS_ERR(max8907->i2c_rtc)) {
ret = PTR_ERR(max8907->i2c_rtc);
i2c_set_clientdata(max8907->i2c_rtc, max8907);
max8907->regmap_rtc = devm_regmap_init_i2c(max8907->i2c_rtc,
if (IS_ERR(max8907->regmap_rtc)) {
ret = PTR_ERR(max8907->regmap_rtc);
ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq,
&max8907->irqc_chg);
ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq,
&max8907->irqc_on_off);
ret = regmap_add_irq_chip(max8907->regmap_rtc, max8907->i2c_gen->irq,
&max8907->irqc_rtc);
ret = mfd_add_devices(max8907->dev, -1, max8907_cells,
max8907_pm_off = max8907;
regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc);
regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off);
regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg);
i2c_unregister_device(max8907->i2c_rtc);
struct max8907 *max8907 = i2c_get_clientdata(i2c);
mfd_remove_devices(max8907->dev);
regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc);
regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off);
regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg);
i2c_unregister_device(max8907->i2c_rtc);
struct max8907 *max8907 = dev_get_drvdata(pdev->dev.parent);
struct max8907_platform_data *pdata = dev_get_platdata(max8907->dev);
ret = regmap_read(max8907->regmap_gen, MAX8907_REG_II2RR, &val);
config.regmap = max8907->regmap_gen;
struct max8907 *max8907 = dev_get_drvdata(pdev->dev.parent);
rtc->max8907 = max8907;
rtc->regmap = max8907->regmap_rtc;
rtc->irq = regmap_irq_get_virq(max8907->irqc_rtc,
struct max8907 *max8907;