Lines Matching refs:max8907

3  * max8907.c - mfd driver for MAX8907
15 #include <linux/mfd/max8907.h>
23 { .name = "max8907-regulator", },
24 { .name = "max8907-rtc", },
130 .name = "max8907 chg",
154 .name = "max8907 on_off",
169 .name = "max8907 rtc",
177 static struct max8907 *max8907_pm_off;
187 struct max8907 *max8907;
198 max8907 = devm_kzalloc(&i2c->dev, sizeof(struct max8907), GFP_KERNEL);
199 if (!max8907) {
204 max8907->dev = &i2c->dev;
205 dev_set_drvdata(max8907->dev, max8907);
207 max8907->i2c_gen = i2c;
208 i2c_set_clientdata(i2c, max8907);
209 max8907->regmap_gen = devm_regmap_init_i2c(i2c,
211 if (IS_ERR(max8907->regmap_gen)) {
212 ret = PTR_ERR(max8907->regmap_gen);
217 max8907->i2c_rtc = i2c_new_dummy_device(i2c->adapter, MAX8907_RTC_I2C_ADDR);
218 if (IS_ERR(max8907->i2c_rtc)) {
219 ret = PTR_ERR(max8907->i2c_rtc);
222 i2c_set_clientdata(max8907->i2c_rtc, max8907);
223 max8907->regmap_rtc = devm_regmap_init_i2c(max8907->i2c_rtc,
225 if (IS_ERR(max8907->regmap_rtc)) {
226 ret = PTR_ERR(max8907->regmap_rtc);
231 irq_set_status_flags(max8907->i2c_gen->irq, IRQ_NOAUTOEN);
233 ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq,
236 &max8907->irqc_chg);
241 ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq,
244 &max8907->irqc_on_off);
249 ret = regmap_add_irq_chip(max8907->regmap_rtc, max8907->i2c_gen->irq,
252 &max8907->irqc_rtc);
258 enable_irq(max8907->i2c_gen->irq);
260 ret = mfd_add_devices(max8907->dev, -1, max8907_cells,
268 max8907_pm_off = max8907;
275 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc);
277 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off);
279 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg);
282 i2c_unregister_device(max8907->i2c_rtc);
291 struct max8907 *max8907 = i2c_get_clientdata(i2c);
293 mfd_remove_devices(max8907->dev);
295 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc);
296 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off);
297 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg);
299 i2c_unregister_device(max8907->i2c_rtc);
306 { .compatible = "maxim,max8907" },
313 {"max8907", 0},
320 .name = "max8907",