Hello Lars-Peter, Thank you for the review. >> diff --git a/drivers/iio/adc/twl6030-gpadc.c b/drivers/iio/adc/twl6030-gpadc.c >> new file mode 100644 >> index 0000000..6ceb789 >> --- /dev/null >> +++ b/drivers/iio/adc/twl6030-gpadc.c >> @@ -0,0 +1,1019 @@ >[...] >> +static u8 twl6032_channel_to_reg(int channel) >> +{ >> + return TWL6032_GPADC_GPCH0_LSB; > >There is more than one channel, isn't there? Yes. But for twl6032 channel of interest is chosen first. When the conversion is ready tre result is available in GPCH0_LSB/GPCH1_MSB for any cosen channel. For twl6030 there are as many result register pairs as many of channels. >> + ret = devm_request_threaded_irq(dev, irq, NULL, >> + twl6030_gpadc_irq_handler, >> + IRQF_ONESHOT, "twl6030_gpadc", gpadc); > >You access memory in the interrupt handler which is freed before the interrupt >handler is freed. Thanks for pointing this. devm_* will free memory for irq after the driver is removed and memory for the device is freed. I took me awhile to understand this. Is there going to be something like devm_iio_device_alloc? whould it be helpfull?-- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html