Lines Matching refs:max8907
3 * max8907.c - mfd driver for MAX8907
15 #include <linux/mfd/max8907.h>
22 { .name = "max8907-regulator", },
23 { .name = "max8907-rtc", },
129 .name = "max8907 chg",
153 .name = "max8907 on_off",
168 .name = "max8907 rtc",
176 static struct max8907 *max8907_pm_off;
185 struct max8907 *max8907;
196 max8907 = devm_kzalloc(&i2c->dev, sizeof(struct max8907), GFP_KERNEL);
197 if (!max8907) {
202 max8907->dev = &i2c->dev;
203 max8907->i2c_gen = i2c;
204 i2c_set_clientdata(i2c, max8907);
205 max8907->regmap_gen = devm_regmap_init_i2c(i2c,
207 if (IS_ERR(max8907->regmap_gen)) {
208 ret = PTR_ERR(max8907->regmap_gen);
213 max8907->i2c_rtc = i2c_new_dummy_device(i2c->adapter, MAX8907_RTC_I2C_ADDR);
214 if (IS_ERR(max8907->i2c_rtc)) {
215 ret = PTR_ERR(max8907->i2c_rtc);
218 i2c_set_clientdata(max8907->i2c_rtc, max8907);
219 max8907->regmap_rtc = devm_regmap_init_i2c(max8907->i2c_rtc,
221 if (IS_ERR(max8907->regmap_rtc)) {
222 ret = PTR_ERR(max8907->regmap_rtc);
227 ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq,
230 &max8907->irqc_chg);
235 ret = regmap_add_irq_chip(max8907->regmap_gen, max8907->i2c_gen->irq,
238 &max8907->irqc_on_off);
243 ret = regmap_add_irq_chip(max8907->regmap_rtc, max8907->i2c_gen->irq,
246 &max8907->irqc_rtc);
252 ret = mfd_add_devices(max8907->dev, -1, max8907_cells,
260 max8907_pm_off = max8907;
267 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc);
269 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off);
271 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg);
274 i2c_unregister_device(max8907->i2c_rtc);
283 struct max8907 *max8907 = i2c_get_clientdata(i2c);
285 mfd_remove_devices(max8907->dev);
287 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_rtc);
288 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_on_off);
289 regmap_del_irq_chip(max8907->i2c_gen->irq, max8907->irqc_chg);
291 i2c_unregister_device(max8907->i2c_rtc);
296 { .compatible = "maxim,max8907" },
303 {"max8907", 0},
310 .name = "max8907",