if (of_property_read_bool(np, "mediatek,ufs-rtff-mtcmos"))
                host->caps |= UFS_MTK_CAP_RTFF_MTCMOS;
 
+       if (of_property_read_bool(np, "mediatek,ufs-broken-rtc"))
+               host->caps |= UFS_MTK_CAP_MCQ_BROKEN_RTC;
+
        dev_info(hba->dev, "caps: 0x%x", host->caps);
 }
 
        shost->rpm_autosuspend_delay = MTK_RPM_AUTOSUSPEND_DELAY_MS;
 
        hba->quirks |= UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL;
+
        hba->quirks |= UFSHCD_QUIRK_MCQ_BROKEN_INTR;
-       hba->quirks |= UFSHCD_QUIRK_MCQ_BROKEN_RTC;
+       if (host->caps & UFS_MTK_CAP_MCQ_BROKEN_RTC)
+               hba->quirks |= UFSHCD_QUIRK_MCQ_BROKEN_RTC;
+
        hba->vps->wb_flush_threshold = UFS_WB_BUF_REMAIN_PERCENT(80);
 
        if (host->caps & UFS_MTK_CAP_DISABLE_AH8)
 
        UFS_MTK_CAP_DISABLE_MCQ                = 1 << 8,
        /* Control MTCMOS with RTFF */
        UFS_MTK_CAP_RTFF_MTCMOS                = 1 << 9,
+
+       UFS_MTK_CAP_MCQ_BROKEN_RTC             = 1 << 10,
 };
 
 struct ufs_mtk_crypt_cfg {