#include <linux/delay.h>
 #include <linux/i2c.h>
+#include <linux/irq.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 
 static int vl53l0x_configure_irq(struct i2c_client *client,
                                 struct iio_dev *indio_dev)
 {
+       int irq_flags = irq_get_trigger_type(client->irq);
        struct vl53l0x_data *data = iio_priv(indio_dev);
        int ret;
 
+       if (!irq_flags)
+               irq_flags = IRQF_TRIGGER_FALLING;
+
        ret = devm_request_irq(&client->dev, client->irq, vl53l0x_handle_irq,
-                       IRQF_TRIGGER_FALLING, indio_dev->name, indio_dev);
+                       irq_flags, indio_dev->name, indio_dev);
        if (ret) {
                dev_err(&client->dev, "devm_request_irq error: %d\n", ret);
                return ret;