mc_dev = to_fsl_mc_device(dev);
 
        switch (rq->type) {
+       case PTP_CLK_REQ_EXTTS:
+               switch (rq->extts.index) {
+               case 0:
+                       bit = DPRTC_EVENT_ETS1;
+                       break;
+               case 1:
+                       bit = DPRTC_EVENT_ETS2;
+                       break;
+               default:
+                       return -EINVAL;
+               }
+               if (on)
+                       extts_clean_up(ptp_qoriq, rq->extts.index, false);
+               break;
        case PTP_CLK_REQ_PPS:
                bit = DPRTC_EVENT_PPS;
                break;
                ptp_clock_event(ptp_qoriq->clock, &event);
        }
 
+       if (status & DPRTC_EVENT_ETS1)
+               extts_clean_up(ptp_qoriq, 0, true);
+
+       if (status & DPRTC_EVENT_ETS2)
+               extts_clean_up(ptp_qoriq, 1, true);
+
        err = dprtc_clear_irq_status(mc_dev->mc_io, 0, mc_dev->mc_handle,
                                     DPRTC_IRQ_INDEX, status);
        if (unlikely(err)) {
 
 
 /* Command versioning */
 #define DPRTC_CMD_BASE_VERSION         1
+#define DPRTC_CMD_VERSION_2            2
 #define DPRTC_CMD_ID_OFFSET            4
 
 #define DPRTC_CMD(id)  (((id) << DPRTC_CMD_ID_OFFSET) | DPRTC_CMD_BASE_VERSION)
+#define DPRTC_CMD_V2(id) (((id) << DPRTC_CMD_ID_OFFSET) | DPRTC_CMD_VERSION_2)
 
 /* Command IDs */
 #define DPRTC_CMDID_CLOSE                      DPRTC_CMD(0x800)
 
 #define DPRTC_CMDID_SET_IRQ_ENABLE             DPRTC_CMD(0x012)
 #define DPRTC_CMDID_GET_IRQ_ENABLE             DPRTC_CMD(0x013)
-#define DPRTC_CMDID_SET_IRQ_MASK               DPRTC_CMD(0x014)
+#define DPRTC_CMDID_SET_IRQ_MASK               DPRTC_CMD_V2(0x014)
 #define DPRTC_CMDID_GET_IRQ_MASK               DPRTC_CMD(0x015)
 #define DPRTC_CMDID_GET_IRQ_STATUS             DPRTC_CMD(0x016)
 #define DPRTC_CMDID_CLEAR_IRQ_STATUS           DPRTC_CMD(0x017)
 
 #define DPRTC_IRQ_INDEX                0
 
 #define DPRTC_EVENT_PPS                0x08000000
+#define DPRTC_EVENT_ETS1       0x00800000
+#define DPRTC_EVENT_ETS2       0x00400000
 
 int dprtc_open(struct fsl_mc_io *mc_io,
               u32 cmd_flags,