Lines Matching +full:reboot +full:- +full:offset
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
32 * https://www.kernel.org/doc/Documentation/devicetree/bindings/power/reset/syscon-poweroff.txt
33 * https://www.kernel.org/doc/Documentation/devicetree/bindings/power/reset/syscon-reboot.txt
42 #include <sys/reboot.h>
55 uint32_t offset; member
58 bool reboot; member
69 if (sc->reboot) in syscon_power_shutdown_final()
75 SYSCON_MODIFY_4(sc->regmap, sc->offset, sc->mask, in syscon_power_shutdown_final()
76 sc->value & sc->mask); in syscon_power_shutdown_final()
86 if (ofw_bus_is_compatible(dev, "syscon-poweroff")) { in syscon_power_probe()
89 } else if (ofw_bus_is_compatible(dev, "syscon-reboot")) { in syscon_power_probe()
90 device_set_desc(dev, "Syscon reboot"); in syscon_power_probe()
113 error = syscon_get_by_ofw_property(dev, node, "regmap", &sc->regmap); in syscon_power_attach()
119 len = OF_getproplen(node, "offset"); in syscon_power_attach()
121 device_printf(dev, "could not get offset\n"); in syscon_power_attach()
125 OF_getencprop(node, "offset", &sc->offset, sizeof(sc->offset)); in syscon_power_attach()
136 OF_getencprop(node, "mask", &sc->mask, sizeof(sc->mask)); in syscon_power_attach()
138 sc->mask = 0xffffffff; in syscon_power_attach()
153 sc->value = sc->mask; in syscon_power_attach()
161 OF_getencprop(node, "value", &sc->value, sizeof(sc->value)); in syscon_power_attach()
164 /* Handle reboot after shutdown_panic. */ in syscon_power_attach()
165 sc->reboot = ofw_bus_is_compatible(dev, "syscon-reboot"); in syscon_power_attach()
166 sc->shutdown_tag = EVENTHANDLER_REGISTER(shutdown_final, in syscon_power_attach()
168 sc->reboot ? SHUTDOWN_PRI_LAST + 150 : SHUTDOWN_PRI_LAST); in syscon_power_attach()
179 EVENTHANDLER_DEREGISTER(shutdown_final, sc->shutdown_tag); in syscon_power_detach()