Lines Matching refs:tps65910

229 static int tps65910_irq_init(struct tps65910 *tps65910, int irq,  in tps65910_irq_init()  argument
236 dev_warn(tps65910->dev, "No interrupt support, no core IRQ\n"); in tps65910_irq_init()
241 dev_warn(tps65910->dev, "No interrupt support, no pdata\n"); in tps65910_irq_init()
245 switch (tps65910_chip_id(tps65910)) { in tps65910_irq_init()
254 tps65910->chip_irq = irq; in tps65910_irq_init()
255 ret = regmap_add_irq_chip(tps65910->regmap, tps65910->chip_irq, in tps65910_irq_init()
257 tps6591x_irqs_chip, &tps65910->irq_data); in tps65910_irq_init()
259 dev_warn(tps65910->dev, "Failed to add irq_chip %d\n", ret); in tps65910_irq_init()
260 tps65910->chip_irq = 0; in tps65910_irq_init()
265 static int tps65910_irq_exit(struct tps65910 *tps65910) in tps65910_irq_exit() argument
267 if (tps65910->chip_irq > 0) in tps65910_irq_exit()
268 regmap_del_irq_chip(tps65910->chip_irq, tps65910->irq_data); in tps65910_irq_exit()
274 struct tps65910 *tps65910 = dev_get_drvdata(dev); in is_volatile_reg() local
283 if (tps65910_chip_id(tps65910) == TPS65910) in is_volatile_reg()
300 static int tps65910_ck32k_init(struct tps65910 *tps65910, in tps65910_ck32k_init() argument
308 ret = tps65910_reg_clear_bits(tps65910, TPS65910_DEVCTRL, in tps65910_ck32k_init()
311 dev_err(tps65910->dev, "clear ck32k_ctrl failed: %d\n", ret); in tps65910_ck32k_init()
318 static int tps65910_sleepinit(struct tps65910 *tps65910, in tps65910_sleepinit() argument
324 dev = tps65910->dev; in tps65910_sleepinit()
330 ret = tps65910_reg_set_bits(tps65910, TPS65910_DEVCTRL, in tps65910_sleepinit()
342 ret = tps65910_reg_set_bits(tps65910, in tps65910_sleepinit()
352 ret = tps65910_reg_set_bits(tps65910, in tps65910_sleepinit()
362 ret = tps65910_reg_set_bits(tps65910, in tps65910_sleepinit()
374 tps65910_reg_clear_bits(tps65910, TPS65910_DEVCTRL, in tps65910_sleepinit()
443 struct tps65910 *tps65910; in tps65910_power_off() local
445 tps65910 = dev_get_drvdata(&tps65910_i2c_client->dev); in tps65910_power_off()
447 if (tps65910_reg_set_bits(tps65910, TPS65910_DEVCTRL, in tps65910_power_off()
451 tps65910_reg_clear_bits(tps65910, TPS65910_DEVCTRL, in tps65910_power_off()
458 struct tps65910 *tps65910; in tps65910_i2c_probe() local
479 tps65910 = devm_kzalloc(&i2c->dev, sizeof(*tps65910), GFP_KERNEL); in tps65910_i2c_probe()
480 if (tps65910 == NULL) in tps65910_i2c_probe()
483 tps65910->of_plat_data = of_pmic_plat_data; in tps65910_i2c_probe()
484 i2c_set_clientdata(i2c, tps65910); in tps65910_i2c_probe()
485 tps65910->dev = &i2c->dev; in tps65910_i2c_probe()
486 tps65910->i2c_client = i2c; in tps65910_i2c_probe()
487 tps65910->id = chip_id; in tps65910_i2c_probe()
494 tps65910->regmap = devm_regmap_init_i2c(i2c, &tps65910_regmap_config); in tps65910_i2c_probe()
495 if (IS_ERR(tps65910->regmap)) { in tps65910_i2c_probe()
496 ret = PTR_ERR(tps65910->regmap); in tps65910_i2c_probe()
504 tps65910_irq_init(tps65910, init_data->irq, init_data); in tps65910_i2c_probe()
505 tps65910_ck32k_init(tps65910, pmic_plat_data); in tps65910_i2c_probe()
506 tps65910_sleepinit(tps65910, pmic_plat_data); in tps65910_i2c_probe()
513 ret = mfd_add_devices(tps65910->dev, -1, in tps65910_i2c_probe()
516 regmap_irq_get_domain(tps65910->irq_data)); in tps65910_i2c_probe()
519 tps65910_irq_exit(tps65910); in tps65910_i2c_probe()
528 struct tps65910 *tps65910 = i2c_get_clientdata(i2c); in tps65910_i2c_remove() local
530 tps65910_irq_exit(tps65910); in tps65910_i2c_remove()
531 mfd_remove_devices(tps65910->dev); in tps65910_i2c_remove()