#define RNG_AUTOSUSPEND_TIMEOUT                100
 
 #define USEC_POLL                      2
-#define TIMEOUT_POLL                   20
+#define TIMEOUT_POLL                   60
 
 #define RNG_CTRL                       0x00
 #define RNG_EN                         BIT(0)
                readl_poll_timeout_atomic(priv->base + RNG_CTRL, ready,
                                          ready & RNG_READY, USEC_POLL,
                                          TIMEOUT_POLL);
-       return !!ready;
+       return !!(ready & RNG_READY);
 }
 
 static int mtk_rng_read(struct hwrng *rng, void *buf, size_t max, bool wait)
 #endif /* CONFIG_PM */
 
 static const struct of_device_id mtk_rng_match[] = {
+       { .compatible = "mediatek,mt7986-rng" },
        { .compatible = "mediatek,mt7623-rng" },
        {},
 };