Module Name: src Committed By: jmcneill Date: Sun Oct 22 13:57:25 UTC 2017
Modified Files: src/sys/arch/arm/sunxi: sunxi_mmc.c Log Message: If an mmc-pwrseq provider is available, use it To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/sunxi/sunxi_mmc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/sunxi/sunxi_mmc.c diff -u src/sys/arch/arm/sunxi/sunxi_mmc.c:1.11 src/sys/arch/arm/sunxi/sunxi_mmc.c:1.12 --- src/sys/arch/arm/sunxi/sunxi_mmc.c:1.11 Sat Oct 21 11:47:17 2017 +++ src/sys/arch/arm/sunxi/sunxi_mmc.c Sun Oct 22 13:57:25 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: sunxi_mmc.c,v 1.11 2017/10/21 11:47:17 jmcneill Exp $ */ +/* $NetBSD: sunxi_mmc.c,v 1.12 2017/10/22 13:57:25 jmcneill Exp $ */ /*- * Copyright (c) 2014-2017 Jared McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunxi_mmc.c,v 1.11 2017/10/21 11:47:17 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunxi_mmc.c,v 1.12 2017/10/22 13:57:25 jmcneill Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -168,6 +168,8 @@ struct sunxi_mmc_softc { int sc_gpio_wp_inverted; struct fdtbus_regulator *sc_reg_vqmmc; + + struct fdtbus_mmc_pwrseq *sc_pwrseq; }; CFATTACH_DECL_NEW(sunxi_mmc, sizeof(struct sunxi_mmc_softc), @@ -266,6 +268,8 @@ sunxi_mmc_attach(device_t parent, device sc->sc_reg_vqmmc = fdtbus_regulator_acquire(phandle, "vqmmc-supply"); + sc->sc_pwrseq = fdtbus_mmc_pwrseq_get(phandle); + if (clk_enable(sc->sc_clk_ahb) != 0 || clk_enable(sc->sc_clk_mmc) != 0) { aprint_error(": couldn't enable clocks\n"); @@ -414,10 +418,16 @@ sunxi_mmc_attach_i(device_t self) struct sdmmcbus_attach_args saa; uint32_t width; + if (sc->sc_pwrseq) + fdtbus_mmc_pwrseq_pre_power_on(sc->sc_pwrseq); + sunxi_mmc_host_reset(sc); sunxi_mmc_bus_width(sc, 1); sunxi_mmc_set_clock(sc, 400, false); + if (sc->sc_pwrseq) + fdtbus_mmc_pwrseq_post_power_on(sc->sc_pwrseq); + if (of_getprop_uint32(sc->sc_phandle, "bus-width", &width) != 0) width = 4;