Lines Matching refs:max8907
177 static struct max8907 *max8907_pm_off;
187 struct max8907 *max8907; in max8907_i2c_probe() local
198 max8907 = devm_kzalloc(&i2c->dev, sizeof(struct max8907), GFP_KERNEL); in max8907_i2c_probe()
199 if (!max8907) { in max8907_i2c_probe()
204 max8907->dev = &i2c->dev; in max8907_i2c_probe()
205 dev_set_drvdata(max8907->dev, max8907); in max8907_i2c_probe()
207 max8907->i2c_gen = i2c; in max8907_i2c_probe()
208 i2c_set_clientdata(i2c, max8907); in max8907_i2c_probe()
209 max8907->regmap_gen = devm_regmap_init_i2c(i2c, in max8907_i2c_probe()
211 if (IS_ERR(max8907->regmap_gen)) { in max8907_i2c_probe()
212 ret = PTR_ERR(max8907->regmap_gen); in max8907_i2c_probe()
217 max8907->i2c_rtc = i2c_new_dummy_device(i2c->adapter, MAX8907_RTC_I2C_ADDR); in max8907_i2c_probe()
218 if (IS_ERR(max8907->i2c_rtc)) { in max8907_i2c_probe()
219 ret = PTR_ERR(max8907->i2c_rtc); in max8907_i2c_probe()
222 i2c_set_clientdata(max8907->i2c_rtc, max8907); in max8907_i2c_probe()
223 max8907->regmap_rtc = devm_regmap_init_i2c(max8907->i2c_rtc, in max8907_i2c_probe()
225 if (IS_ERR(max8907->regmap_rtc)) { in max8907_i2c_probe()
226 ret = PTR_ERR(max8907->regmap_rtc); in max8907_i2c_probe()
231 ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq, in max8907_i2c_probe()
234 &max8907->irqc_chg); in max8907_i2c_probe()
239 ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq, in max8907_i2c_probe()
242 &max8907->irqc_on_off); in max8907_i2c_probe()
247 ret = regmap_add_irq_chip(max8907->regmap_rtc, max8907->i2c_gen->irq, in max8907_i2c_probe()
250 &max8907->irqc_rtc); in max8907_i2c_probe()
256 ret = mfd_add_devices(max8907->dev, -1, max8907_cells, in max8907_i2c_probe()
264 max8907_pm_off = max8907; in max8907_i2c_probe()
271 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc); in max8907_i2c_probe()
273 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off); in max8907_i2c_probe()
275 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg); in max8907_i2c_probe()
278 i2c_unregister_device(max8907->i2c_rtc); in max8907_i2c_probe()
287 struct max8907 *max8907 = i2c_get_clientdata(i2c); in max8907_i2c_remove() local
289 mfd_remove_devices(max8907->dev); in max8907_i2c_remove()
291 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc); in max8907_i2c_remove()
292 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off); in max8907_i2c_remove()
293 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg); in max8907_i2c_remove()
295 i2c_unregister_device(max8907->i2c_rtc); in max8907_i2c_remove()