Lines Matching refs:max8907
180 static struct max8907 *max8907_pm_off;
190 struct max8907 *max8907; in max8907_i2c_probe() local
201 max8907 = devm_kzalloc(&i2c->dev, sizeof(struct max8907), GFP_KERNEL); in max8907_i2c_probe()
202 if (!max8907) { in max8907_i2c_probe()
207 max8907->dev = &i2c->dev; in max8907_i2c_probe()
208 dev_set_drvdata(max8907->dev, max8907); in max8907_i2c_probe()
210 max8907->i2c_gen = i2c; in max8907_i2c_probe()
211 i2c_set_clientdata(i2c, max8907); in max8907_i2c_probe()
212 max8907->regmap_gen = devm_regmap_init_i2c(i2c, in max8907_i2c_probe()
214 if (IS_ERR(max8907->regmap_gen)) { in max8907_i2c_probe()
215 ret = PTR_ERR(max8907->regmap_gen); in max8907_i2c_probe()
220 max8907->i2c_rtc = i2c_new_dummy(i2c->adapter, MAX8907_RTC_I2C_ADDR); in max8907_i2c_probe()
221 if (!max8907->i2c_rtc) { in max8907_i2c_probe()
225 i2c_set_clientdata(max8907->i2c_rtc, max8907); in max8907_i2c_probe()
226 max8907->regmap_rtc = devm_regmap_init_i2c(max8907->i2c_rtc, in max8907_i2c_probe()
228 if (IS_ERR(max8907->regmap_rtc)) { in max8907_i2c_probe()
229 ret = PTR_ERR(max8907->regmap_rtc); in max8907_i2c_probe()
234 irq_set_status_flags(max8907->i2c_gen->irq, IRQ_NOAUTOEN); in max8907_i2c_probe()
236 ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq, in max8907_i2c_probe()
239 &max8907->irqc_chg); in max8907_i2c_probe()
244 ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq, in max8907_i2c_probe()
247 &max8907->irqc_on_off); in max8907_i2c_probe()
252 ret = regmap_add_irq_chip(max8907->regmap_rtc, max8907->i2c_gen->irq, in max8907_i2c_probe()
255 &max8907->irqc_rtc); in max8907_i2c_probe()
261 enable_irq(max8907->i2c_gen->irq); in max8907_i2c_probe()
263 ret = mfd_add_devices(max8907->dev, -1, max8907_cells, in max8907_i2c_probe()
271 max8907_pm_off = max8907; in max8907_i2c_probe()
278 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc); in max8907_i2c_probe()
280 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off); in max8907_i2c_probe()
282 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg); in max8907_i2c_probe()
285 i2c_unregister_device(max8907->i2c_rtc); in max8907_i2c_probe()
294 struct max8907 *max8907 = i2c_get_clientdata(i2c); in max8907_i2c_remove() local
296 mfd_remove_devices(max8907->dev); in max8907_i2c_remove()
298 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc); in max8907_i2c_remove()
299 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off); in max8907_i2c_remove()
300 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg); in max8907_i2c_remove()
302 i2c_unregister_device(max8907->i2c_rtc); in max8907_i2c_remove()