Lines Matching refs:madc

142 static int twl4030_madc_channel_raw_read(struct twl4030_madc_data *madc, u8 reg)  in twl4030_madc_channel_raw_read()  argument
152 dev_err(madc->dev, "unable to read MSB register 0x%X\n", in twl4030_madc_channel_raw_read()
158 dev_err(madc->dev, "unable to read LSB register 0x%X\n", reg); in twl4030_madc_channel_raw_read()
217 static int twl4030_madc_read_channels(struct twl4030_madc_data *madc, in twl4030_madc_read_channels() argument
226 buf[i] = twl4030_madc_channel_raw_read(madc, reg); in twl4030_madc_read_channels()
228 dev_err(madc->dev, in twl4030_madc_read_channels()
237 dev_err(madc->dev, "err reading current\n"); in twl4030_madc_read_channels()
247 dev_err(madc->dev, "err reading temperature\n"); in twl4030_madc_read_channels()
270 dev_err(madc->dev, "%d channel conversion failed\n", count_req); in twl4030_madc_read_channels()
283 static int twl4030_madc_enable_irq(struct twl4030_madc_data *madc, u8 id) in twl4030_madc_enable_irq() argument
288 ret = twl_i2c_read_u8(TWL4030_MODULE_MADC, &val, madc->imr); in twl4030_madc_enable_irq()
290 dev_err(madc->dev, "unable to read imr register 0x%X\n", in twl4030_madc_enable_irq()
291 madc->imr); in twl4030_madc_enable_irq()
295 ret = twl_i2c_write_u8(TWL4030_MODULE_MADC, val, madc->imr); in twl4030_madc_enable_irq()
297 dev_err(madc->dev, in twl4030_madc_enable_irq()
298 "unable to write imr register 0x%X\n", madc->imr); in twl4030_madc_enable_irq()
314 static int twl4030_madc_disable_irq(struct twl4030_madc_data *madc, u8 id) in twl4030_madc_disable_irq() argument
319 ret = twl_i2c_read_u8(TWL4030_MODULE_MADC, &val, madc->imr); in twl4030_madc_disable_irq()
321 dev_err(madc->dev, "unable to read imr register 0x%X\n", in twl4030_madc_disable_irq()
322 madc->imr); in twl4030_madc_disable_irq()
326 ret = twl_i2c_write_u8(TWL4030_MODULE_MADC, val, madc->imr); in twl4030_madc_disable_irq()
328 dev_err(madc->dev, in twl4030_madc_disable_irq()
329 "unable to write imr register 0x%X\n", madc->imr); in twl4030_madc_disable_irq()
338 struct twl4030_madc_data *madc = _madc; in twl4030_madc_threaded_irq_handler() local
344 mutex_lock(&madc->lock); in twl4030_madc_threaded_irq_handler()
345 ret = twl_i2c_read_u8(TWL4030_MODULE_MADC, &isr_val, madc->isr); in twl4030_madc_threaded_irq_handler()
347 dev_err(madc->dev, "unable to read isr register 0x%X\n", in twl4030_madc_threaded_irq_handler()
348 madc->isr); in twl4030_madc_threaded_irq_handler()
351 ret = twl_i2c_read_u8(TWL4030_MODULE_MADC, &imr_val, madc->imr); in twl4030_madc_threaded_irq_handler()
353 dev_err(madc->dev, "unable to read imr register 0x%X\n", in twl4030_madc_threaded_irq_handler()
354 madc->imr); in twl4030_madc_threaded_irq_handler()
361 ret = twl4030_madc_disable_irq(madc, i); in twl4030_madc_threaded_irq_handler()
363 dev_dbg(madc->dev, "Disable interrupt failed%d\n", i); in twl4030_madc_threaded_irq_handler()
364 madc->requests[i].result_pending = 1; in twl4030_madc_threaded_irq_handler()
367 r = &madc->requests[i]; in twl4030_madc_threaded_irq_handler()
373 len = twl4030_madc_read_channels(madc, method->rbase, in twl4030_madc_threaded_irq_handler()
384 mutex_unlock(&madc->lock); in twl4030_madc_threaded_irq_handler()
394 r = &madc->requests[i]; in twl4030_madc_threaded_irq_handler()
399 len = twl4030_madc_read_channels(madc, method->rbase, in twl4030_madc_threaded_irq_handler()
410 mutex_unlock(&madc->lock); in twl4030_madc_threaded_irq_handler()
415 static int twl4030_madc_set_irq(struct twl4030_madc_data *madc, in twl4030_madc_set_irq() argument
421 p = &madc->requests[req->method]; in twl4030_madc_set_irq()
423 ret = twl4030_madc_enable_irq(madc, req->method); in twl4030_madc_set_irq()
425 dev_err(madc->dev, "enable irq failed!!\n"); in twl4030_madc_set_irq()
440 static int twl4030_madc_start_conversion(struct twl4030_madc_data *madc, in twl4030_madc_start_conversion() argument
452 dev_err(madc->dev, in twl4030_madc_start_conversion()
472 static int twl4030_madc_wait_conversion_ready(struct twl4030_madc_data *madc, in twl4030_madc_wait_conversion_ready() argument
485 dev_err(madc->dev, in twl4030_madc_wait_conversion_ready()
494 dev_err(madc->dev, "conversion timeout!\n"); in twl4030_madc_wait_conversion_ready()
632 static int twl4030_madc_set_current_generator(struct twl4030_madc_data *madc, in twl4030_madc_set_current_generator() argument
641 dev_err(madc->dev, "unable to read BCICTL1 reg 0x%X", in twl4030_madc_set_current_generator()
652 dev_err(madc->dev, "unable to write BCICTL1 reg 0x%X\n", in twl4030_madc_set_current_generator()
666 static int twl4030_madc_set_power(struct twl4030_madc_data *madc, int on) in twl4030_madc_set_power() argument
674 dev_err(madc->dev, "unable to read madc ctrl1 reg 0x%X\n", in twl4030_madc_set_power()
684 dev_err(madc->dev, "unable to write madc ctrl1 reg 0x%X\n", in twl4030_madc_set_power()
697 struct twl4030_madc_data *madc; in twl4030_madc_probe() local
706 madc = kzalloc(sizeof(*madc), GFP_KERNEL); in twl4030_madc_probe()
707 if (!madc) in twl4030_madc_probe()
710 madc->dev = &pdev->dev; in twl4030_madc_probe()
717 madc->imr = (pdata->irq_line == 1) ? in twl4030_madc_probe()
719 madc->isr = (pdata->irq_line == 1) ? in twl4030_madc_probe()
721 ret = twl4030_madc_set_power(madc, 1); in twl4030_madc_probe()
724 ret = twl4030_madc_set_current_generator(madc, 0, 1); in twl4030_madc_probe()
765 platform_set_drvdata(pdev, madc); in twl4030_madc_probe()
766 mutex_init(&madc->lock); in twl4030_madc_probe()
769 IRQF_TRIGGER_RISING, "twl4030_madc", madc); in twl4030_madc_probe()
774 twl4030_madc = madc; in twl4030_madc_probe()
779 twl4030_madc_set_current_generator(madc, 0, 0); in twl4030_madc_probe()
781 twl4030_madc_set_power(madc, 0); in twl4030_madc_probe()
783 kfree(madc); in twl4030_madc_probe()
790 struct twl4030_madc_data *madc = platform_get_drvdata(pdev); in twl4030_madc_remove() local
792 free_irq(platform_get_irq(pdev, 0), madc); in twl4030_madc_remove()
794 twl4030_madc_set_current_generator(madc, 0, 0); in twl4030_madc_remove()
795 twl4030_madc_set_power(madc, 0); in twl4030_madc_remove()
796 kfree(madc); in twl4030_madc_remove()