static int sdhci_esdhc_probe(struct platform_device *pdev)
 {
        struct sdhci_host *host;
-       struct device_node *np;
+       struct device_node *np, *tp;
        struct sdhci_pltfm_host *pltfm_host;
        struct sdhci_esdhc *esdhc;
        int ret;
        if (esdhc->vendor_ver > VENDOR_V_22)
                host->quirks &= ~SDHCI_QUIRK_NO_BUSY_IRQ;
 
-       if (of_find_compatible_node(NULL, NULL, "fsl,p2020-esdhc")) {
+       tp = of_find_compatible_node(NULL, NULL, "fsl,p2020-esdhc");
+       if (tp) {
+               of_node_put(tp);
                host->quirks |= SDHCI_QUIRK_RESET_AFTER_REQUEST;
                host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
        }