Lines Matching refs:da9052

19 #include <linux/mfd/da9052/da9052.h>
20 #include <linux/mfd/da9052/pdata.h>
21 #include <linux/mfd/da9052/reg.h>
374 int da9052_adc_manual_read(struct da9052 *da9052, unsigned char channel)
384 mutex_lock(&da9052->auxadc_lock);
386 reinit_completion(&da9052->done);
391 ret = da9052_reg_write(da9052, DA9052_ADC_MAN_REG, mux_sel);
396 if (!wait_for_completion_timeout(&da9052->done,
398 dev_err(da9052->dev,
404 ret = da9052_reg_read(da9052, DA9052_ADC_RES_H_REG);
411 ret = da9052_reg_read(da9052, DA9052_ADC_RES_L_REG);
421 mutex_unlock(&da9052->auxadc_lock);
426 int da9052_adc_read_temp(struct da9052 *da9052)
430 tbat = da9052_reg_read(da9052, DA9052_TBAT_RES_REG);
441 .name = "da9052-regulator",
445 .name = "da9052-regulator",
449 .name = "da9052-regulator",
453 .name = "da9052-regulator",
457 .name = "da9052-regulator",
461 .name = "da9052-regulator",
465 .name = "da9052-regulator",
469 .name = "da9052-regulator",
473 .name = "da9052-regulator",
477 .name = "da9052-regulator",
481 .name = "da9052-regulator",
485 .name = "da9052-regulator",
489 .name = "da9052-regulator",
493 .name = "da9052-regulator",
497 .name = "da9052-onkey",
500 .name = "da9052-rtc",
503 .name = "da9052-gpio",
506 .name = "da9052-hwmon",
509 .name = "da9052-leds",
512 .name = "da9052-wled1",
515 .name = "da9052-wled2",
518 .name = "da9052-wled3",
521 .name = "da9052-bat",
524 .name = "da9052-watchdog",
529 { .name = "da9052-tsi" },
545 static int da9052_clear_fault_log(struct da9052 *da9052)
550 fault_log = da9052_reg_read(da9052, DA9052_FAULTLOG_REG);
552 dev_err(da9052->dev,
559 dev_dbg(da9052->dev,
562 dev_dbg(da9052->dev,
565 dev_dbg(da9052->dev,
568 dev_dbg(da9052->dev,
571 dev_dbg(da9052->dev,
574 dev_dbg(da9052->dev,
577 dev_dbg(da9052->dev,
580 ret = da9052_reg_write(da9052,
584 dev_err(da9052->dev,
591 int da9052_device_init(struct da9052 *da9052, u8 chip_id)
593 struct da9052_pdata *pdata = dev_get_platdata(da9052->dev);
596 mutex_init(&da9052->auxadc_lock);
597 init_completion(&da9052->done);
599 ret = da9052_clear_fault_log(da9052);
601 dev_warn(da9052->dev, "Cannot clear FAULT_LOG\n");
604 pdata->init(da9052);
606 da9052->chip_id = chip_id;
608 ret = da9052_irq_init(da9052);
610 dev_err(da9052->dev, "da9052_irq_init failed: %d\n", ret);
614 ret = mfd_add_devices(da9052->dev, PLATFORM_DEVID_AUTO,
618 dev_err(da9052->dev, "mfd_add_devices failed: %d\n", ret);
627 if (!device_property_read_bool(da9052->dev, "dlg,tsi-as-adc")) {
628 ret = mfd_add_devices(da9052->dev, PLATFORM_DEVID_AUTO,
633 dev_err(da9052->dev, "failed to add TSI subdev: %d\n",
642 mfd_remove_devices(da9052->dev);
643 da9052_irq_exit(da9052);
648 void da9052_device_exit(struct da9052 *da9052)
650 mfd_remove_devices(da9052->dev);
651 da9052_irq_exit(da9052);