Lines Matching +full:post +full:- +full:power +full:- +full:on +full:- +full:delay +full:- +full:ms
2 * SPDX-License-Identifier: BSD-2-Clause
23 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
49 { "mmc-pwrseq-simple", PWRSEQ_SIMPLE },
50 { "mmc-pwrseq-emmc", PWRSEQ_EMMC },
68 if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) in mmc_pwrseq_probe()
71 type = (enum pwrseq_type)ofw_bus_search_compatible(dev, compat_data)->ocd_data; in mmc_pwrseq_probe()
74 device_set_desc(dev, "MMC Simple Power sequence"); in mmc_pwrseq_probe()
77 device_set_desc(dev, "MMC eMMC Power sequence"); in mmc_pwrseq_probe()
91 sc->type = (enum pwrseq_type)ofw_bus_search_compatible(dev, compat_data)->ocd_data; in mmc_pwrseq_attach()
94 if (sc->type == PWRSEQ_SIMPLE) { in mmc_pwrseq_attach()
96 rv = clk_get_by_ofw_name(dev, 0, "ext_clock", &sc->ext_clock); in mmc_pwrseq_attach()
103 OF_getencprop(node, "post-power-on-delay-ms", &sc->post_power_on_delay_ms, sizeof(uint32_t)); in mmc_pwrseq_attach()
104 OF_getencprop(node, "power-off-delay-us", &sc->power_off_delay_us, sizeof(uint32_t)); in mmc_pwrseq_attach()
107 if (OF_hasprop(node, "reset-gpios")) { in mmc_pwrseq_attach()
108 if (gpio_pin_get_by_ofw_property(dev, node, "reset-gpios", in mmc_pwrseq_attach()
109 &sc->reset_gpio) != 0) { in mmc_pwrseq_attach()
110 device_printf(dev, "Cannot get the reset-gpios\n"); in mmc_pwrseq_attach()
113 gpio_pin_setflags(sc->reset_gpio, GPIO_PIN_OUTPUT); in mmc_pwrseq_attach()
114 gpio_pin_set_active(sc->reset_gpio, true); in mmc_pwrseq_attach()
137 if (sc->ext_clock) { in mmv_pwrseq_set_power()
138 rv = clk_enable(sc->ext_clock); in mmv_pwrseq_set_power()
143 if (sc->reset_gpio) { in mmv_pwrseq_set_power()
144 rv = gpio_pin_set_active(sc->reset_gpio, false); in mmv_pwrseq_set_power()
149 if (sc->post_power_on_delay_ms) in mmv_pwrseq_set_power()
150 DELAY(sc->post_power_on_delay_ms * 1000); in mmv_pwrseq_set_power()
152 if (sc->reset_gpio) { in mmv_pwrseq_set_power()
153 rv = gpio_pin_set_active(sc->reset_gpio, true); in mmv_pwrseq_set_power()
158 if (sc->ext_clock) { in mmv_pwrseq_set_power()
159 rv = clk_stop(sc->ext_clock); in mmv_pwrseq_set_power()
163 if (sc->power_off_delay_us) in mmv_pwrseq_set_power()
164 DELAY(sc->power_off_delay_us); in mmv_pwrseq_set_power()