Lines Matching refs:madc

79 	struct twl4030_madc_data *madc = iio_priv(iio_dev);  in twl4030_madc_read()  local
83 req.method = madc->use_second_irq ? TWL4030_MADC_SW2 : TWL4030_MADC_SW1; in twl4030_madc_read()
211 static int twl4030_madc_channel_raw_read(struct twl4030_madc_data *madc, u8 reg) in twl4030_madc_channel_raw_read() argument
221 dev_err(madc->dev, "unable to read register 0x%X\n", reg); in twl4030_madc_channel_raw_read()
282 static int twl4030_madc_read_channels(struct twl4030_madc_data *madc, in twl4030_madc_read_channels() argument
293 buf[i] = twl4030_madc_channel_raw_read(madc, reg); in twl4030_madc_read_channels()
295 dev_err(madc->dev, "Unable to read register 0x%X\n", in twl4030_madc_read_channels()
307 dev_err(madc->dev, "err reading current\n"); in twl4030_madc_read_channels()
317 dev_err(madc->dev, "err reading temperature\n"); in twl4030_madc_read_channels()
351 static int twl4030_madc_enable_irq(struct twl4030_madc_data *madc, u8 id) in twl4030_madc_enable_irq() argument
356 ret = twl_i2c_read_u8(TWL4030_MODULE_MADC, &val, madc->imr); in twl4030_madc_enable_irq()
358 dev_err(madc->dev, "unable to read imr register 0x%X\n", in twl4030_madc_enable_irq()
359 madc->imr); in twl4030_madc_enable_irq()
364 ret = twl_i2c_write_u8(TWL4030_MODULE_MADC, val, madc->imr); in twl4030_madc_enable_irq()
366 dev_err(madc->dev, in twl4030_madc_enable_irq()
367 "unable to write imr register 0x%X\n", madc->imr); in twl4030_madc_enable_irq()
382 static int twl4030_madc_disable_irq(struct twl4030_madc_data *madc, u8 id) in twl4030_madc_disable_irq() argument
387 ret = twl_i2c_read_u8(TWL4030_MODULE_MADC, &val, madc->imr); in twl4030_madc_disable_irq()
389 dev_err(madc->dev, "unable to read imr register 0x%X\n", in twl4030_madc_disable_irq()
390 madc->imr); in twl4030_madc_disable_irq()
394 ret = twl_i2c_write_u8(TWL4030_MODULE_MADC, val, madc->imr); in twl4030_madc_disable_irq()
396 dev_err(madc->dev, in twl4030_madc_disable_irq()
397 "unable to write imr register 0x%X\n", madc->imr); in twl4030_madc_disable_irq()
406 struct twl4030_madc_data *madc = _madc; in twl4030_madc_threaded_irq_handler() local
412 mutex_lock(&madc->lock); in twl4030_madc_threaded_irq_handler()
413 ret = twl_i2c_read_u8(TWL4030_MODULE_MADC, &isr_val, madc->isr); in twl4030_madc_threaded_irq_handler()
415 dev_err(madc->dev, "unable to read isr register 0x%X\n", in twl4030_madc_threaded_irq_handler()
416 madc->isr); in twl4030_madc_threaded_irq_handler()
419 ret = twl_i2c_read_u8(TWL4030_MODULE_MADC, &imr_val, madc->imr); in twl4030_madc_threaded_irq_handler()
421 dev_err(madc->dev, "unable to read imr register 0x%X\n", in twl4030_madc_threaded_irq_handler()
422 madc->imr); in twl4030_madc_threaded_irq_handler()
429 ret = twl4030_madc_disable_irq(madc, i); in twl4030_madc_threaded_irq_handler()
431 dev_dbg(madc->dev, "Disable interrupt failed %d\n", i); in twl4030_madc_threaded_irq_handler()
432 madc->requests[i].result_pending = 1; in twl4030_madc_threaded_irq_handler()
435 r = &madc->requests[i]; in twl4030_madc_threaded_irq_handler()
441 len = twl4030_madc_read_channels(madc, method->rbase, in twl4030_madc_threaded_irq_handler()
452 mutex_unlock(&madc->lock); in twl4030_madc_threaded_irq_handler()
462 r = &madc->requests[i]; in twl4030_madc_threaded_irq_handler()
467 len = twl4030_madc_read_channels(madc, method->rbase, in twl4030_madc_threaded_irq_handler()
478 mutex_unlock(&madc->lock); in twl4030_madc_threaded_irq_handler()
483 static int twl4030_madc_set_irq(struct twl4030_madc_data *madc, in twl4030_madc_set_irq() argument
489 p = &madc->requests[req->method]; in twl4030_madc_set_irq()
491 ret = twl4030_madc_enable_irq(madc, req->method); in twl4030_madc_set_irq()
493 dev_err(madc->dev, "enable irq failed!!\n"); in twl4030_madc_set_irq()
508 static int twl4030_madc_start_conversion(struct twl4030_madc_data *madc, in twl4030_madc_start_conversion() argument
521 dev_err(madc->dev, "unable to write ctrl register 0x%X\n", in twl4030_madc_start_conversion()
536 static int twl4030_madc_wait_conversion_ready(struct twl4030_madc_data *madc, in twl4030_madc_wait_conversion_ready() argument
549 dev_err(madc->dev, in twl4030_madc_wait_conversion_ready()
558 dev_err(madc->dev, "conversion timeout!\n"); in twl4030_madc_wait_conversion_ready()
678 static int twl4030_madc_set_current_generator(struct twl4030_madc_data *madc, in twl4030_madc_set_current_generator() argument
688 dev_err(madc->dev, "unable to read BCICTL1 reg 0x%X", in twl4030_madc_set_current_generator()
702 dev_err(madc->dev, "unable to write BCICTL1 reg 0x%X\n", in twl4030_madc_set_current_generator()
716 static int twl4030_madc_set_power(struct twl4030_madc_data *madc, int on) in twl4030_madc_set_power() argument
724 dev_err(madc->dev, "unable to read madc ctrl1 reg 0x%X\n", in twl4030_madc_set_power()
734 dev_err(madc->dev, "unable to write madc ctrl1 reg 0x%X\n", in twl4030_madc_set_power()
747 struct twl4030_madc_data *madc; in twl4030_madc_probe() local
759 iio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*madc)); in twl4030_madc_probe()
765 madc = iio_priv(iio_dev); in twl4030_madc_probe()
766 madc->dev = &pdev->dev; in twl4030_madc_probe()
782 madc->use_second_irq = (pdata->irq_line != 1); in twl4030_madc_probe()
784 madc->use_second_irq = of_property_read_bool(np, in twl4030_madc_probe()
787 madc->imr = madc->use_second_irq ? TWL4030_MADC_IMR2 : in twl4030_madc_probe()
789 madc->isr = madc->use_second_irq ? TWL4030_MADC_ISR2 : in twl4030_madc_probe()
792 ret = twl4030_madc_set_power(madc, 1); in twl4030_madc_probe()
795 ret = twl4030_madc_set_current_generator(madc, 0, 1); in twl4030_madc_probe()
837 mutex_init(&madc->lock); in twl4030_madc_probe()
843 "twl4030_madc", madc); in twl4030_madc_probe()
848 twl4030_madc = madc; in twl4030_madc_probe()
868 madc->usb3v1 = devm_regulator_get(madc->dev, "vusb3v1"); in twl4030_madc_probe()
869 if (IS_ERR(madc->usb3v1)) in twl4030_madc_probe()
872 ret = regulator_enable(madc->usb3v1); in twl4030_madc_probe()
874 dev_err(madc->dev, "could not enable 3v1 bias regulator\n"); in twl4030_madc_probe()
885 twl4030_madc_set_current_generator(madc, 0, 0); in twl4030_madc_probe()
887 twl4030_madc_set_power(madc, 0); in twl4030_madc_probe()
894 struct twl4030_madc_data *madc = iio_priv(iio_dev); in twl4030_madc_remove() local
898 twl4030_madc_set_current_generator(madc, 0, 0); in twl4030_madc_remove()
899 twl4030_madc_set_power(madc, 0); in twl4030_madc_remove()
901 regulator_disable(madc->usb3v1); in twl4030_madc_remove()