[...] > + switch (ios->signal_voltage) { > + case MMC_SIGNAL_VOLTAGE_330: > + val &= ~ESDHC_VOLT_SEL; > + sdhci_writel(host, val, ESDHC_PROCTL); > + return 0; > + case MMC_SIGNAL_VOLTAGE_180: > + scfg_node = of_find_matching_node(NULL, scfg_device_ids); > + if (scfg_node) > + scfg_base = of_iomap(scfg_node, 0); Why don't you do this at probe time instead of every time you do the voltage switch? Never mind at this point, I have queued this up for 4.12, however feel free to send a new patch on top. > + if (scfg_base) { > + sdhciovselcr = SDHCIOVSELCR_TGLEN | > + SDHCIOVSELCR_VSELVAL; > + iowrite32be(sdhciovselcr, > + scfg_base + SCFG_SDHCIOVSELCR); > + > + val |= ESDHC_VOLT_SEL; > + sdhci_writel(host, val, ESDHC_PROCTL); > + mdelay(5); > + > + sdhciovselcr = SDHCIOVSELCR_TGLEN | > + SDHCIOVSELCR_SDHC_VS; > + iowrite32be(sdhciovselcr, > + scfg_base + SCFG_SDHCIOVSELCR); > + iounmap(scfg_base); > + } else { > + val |= ESDHC_VOLT_SEL; > + sdhci_writel(host, val, ESDHC_PROCTL); > + } > + return 0; > + default: > + return 0; > + } > +} [...] Kind regards Uffe -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html