[ADIS16475_DIAG_STAT_CLK] = "Clock error",
 };
 
-static int adis16475_enable_irq(struct adis *adis, bool enable)
-{
-       /*
-        * There is no way to gate the data-ready signal internally inside the
-        * ADIS16475. We can only control it's polarity...
-        */
-       if (enable)
-               enable_irq(adis->spi->irq);
-       else
-               disable_irq(adis->spi->irq);
-
-       return 0;
-}
-
 #define ADIS16475_DATA(_prod_id, _timeouts)                            \
 {                                                                      \
        .msc_ctrl_reg = ADIS16475_REG_MSG_CTRL,                         \
                BIT(ADIS16475_DIAG_STAT_SENSOR) |                       \
                BIT(ADIS16475_DIAG_STAT_MEMORY) |                       \
                BIT(ADIS16475_DIAG_STAT_CLK),                           \
-       .enable_irq = adis16475_enable_irq,                             \
+       .unmasked_drdy = true,                                          \
        .timeouts = (_timeouts),                                        \
        .burst_reg_cmd = ADIS16475_REG_GLOB_CMD,                        \
        .burst_len = ADIS16475_BURST_MAX_DATA,                          \
                return -EINVAL;
        }
 
-       /* We cannot mask the interrupt so ensure it's not enabled at request */
-       st->adis.irq_flag |= IRQF_NO_AUTOEN;
-
        val = ADIS16475_MSG_CTRL_DR_POL(polarity);
        ret = __adis_update_bits(&st->adis, ADIS16475_REG_MSG_CTRL,
                                 ADIS16475_MSG_CTRL_DR_POL_MASK, val);