Lines Matching full:max77759

6  * Core driver for Maxim MAX77759 companion PMIC for USB Type-C
23 #include <linux/mfd/max77759.h>
40 * max77759 during probe().
264 .name = "max77759-pmic",
280 .name = "max77759-maxq",
290 .name = "max77759-topsys",
301 .name = "max77759-chgr",
333 MFD_CELL_OF("max77759-nvmem", NULL, NULL, 0, 0,
334 "maxim,max77759-nvmem"),
338 MFD_CELL_OF("max77759-gpio", max77759_gpio_resources, NULL, 0, 0,
339 "maxim,max77759-gpio"),
343 MFD_CELL_RES("max77759-charger", max77759_charger_resources),
346 int max77759_maxq_command(struct max77759 *max77759, in max77759_maxq_command() argument
351 struct device *dev = regmap_get_device(max77759->regmap_maxq); in max77759_maxq_command()
370 guard(mutex)(&max77759->maxq_lock); in max77759_maxq_command()
372 reinit_completion(&max77759->cmd_done); in max77759_maxq_command()
378 ret = regmap_bulk_write(max77759->regmap_maxq, in max77759_maxq_command()
382 ret = regmap_write(max77759->regmap_maxq, in max77759_maxq_command()
390 if (!wait_for_completion_timeout(&max77759->cmd_done, in max77759_maxq_command()
396 ret = regmap_bulk_read(max77759->regmap_maxq, in max77759_maxq_command()
420 struct max77759 *max77759 = irq_data; in apcmdres_irq_handler() local
422 regmap_write(max77759->regmap_maxq, MAX77759_MAXQ_REG_UIC_INT1, in apcmdres_irq_handler()
425 complete(&max77759->cmd_done); in apcmdres_irq_handler()
431 struct max77759 *max77759, in max77759_create_i2c_subdev() argument
467 max77759->regmap_maxq = regmap; in max77759_create_i2c_subdev()
469 max77759->regmap_charger = regmap; in max77759_create_i2c_subdev()
500 struct max77759 *max77759, in max77759_add_chained_maxq() argument
508 max77759->regmap_maxq, in max77759_add_chained_maxq()
516 init_completion(&max77759->cmd_done); in max77759_add_chained_maxq()
523 dev_name(&client->dev), max77759); in max77759_add_chained_maxq()
541 struct max77759 *max77759, in max77759_add_chained_topsys() argument
548 max77759->regmap_top, in max77759_add_chained_topsys()
560 struct max77759 *max77759, in max77759_add_chained_charger() argument
567 max77759->regmap_charger, in max77759_add_chained_charger()
591 struct max77759 *max77759; in max77759_probe() local
596 max77759 = devm_kzalloc(&client->dev, sizeof(*max77759), GFP_KERNEL); in max77759_probe()
597 if (!max77759) in max77759_probe()
600 i2c_set_clientdata(client, max77759); in max77759_probe()
602 max77759->regmap_top = devm_regmap_init_i2c(client, in max77759_probe()
604 if (IS_ERR(max77759->regmap_top)) in max77759_probe()
605 return dev_err_probe(&client->dev, PTR_ERR(max77759->regmap_top), in max77759_probe()
609 ret = regmap_read(max77759->regmap_top, in max77759_probe()
620 ret = devm_mutex_init(&client->dev, &max77759->maxq_lock); in max77759_probe()
625 ret = max77759_create_i2c_subdev(client, max77759, in max77759_probe()
639 ret = devm_regmap_add_irq_chip(&client->dev, max77759->regmap_top, in max77759_probe()
648 ret = max77759_add_chained_maxq(client, max77759, irq_chip_data_pmic); in max77759_probe()
652 ret = max77759_add_chained_topsys(client, max77759, irq_chip_data_pmic); in max77759_probe()
656 ret = max77759_add_chained_charger(client, max77759, irq_chip_data_pmic); in max77759_probe()
667 { "max77759" },
673 { .compatible = "maxim,max77759", },
680 .name = "max77759",
689 MODULE_DESCRIPTION("Maxim MAX77759 core driver");