123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // SPDX-License-Identifier: GPL-2.0+
- /*
- * Copyright 2017 Google, Inc
- */
- #include <common.h>
- #include <dm.h>
- #include <wdt.h>
- #include <asm/state.h>
- static int sandbox_wdt_start(struct udevice *dev, u64 timeout, ulong flags)
- {
- struct sandbox_state *state = state_get_current();
- state->wdt.counter = timeout;
- state->wdt.running = true;
- return 0;
- }
- static int sandbox_wdt_stop(struct udevice *dev)
- {
- struct sandbox_state *state = state_get_current();
- state->wdt.running = false;
- return 0;
- }
- static int sandbox_wdt_reset(struct udevice *dev)
- {
- struct sandbox_state *state = state_get_current();
- state->wdt.reset_count++;
- return 0;
- }
- static int sandbox_wdt_expire_now(struct udevice *dev, ulong flags)
- {
- sandbox_wdt_start(dev, 1, flags);
- return 0;
- }
- static const struct wdt_ops sandbox_wdt_ops = {
- .start = sandbox_wdt_start,
- .reset = sandbox_wdt_reset,
- .stop = sandbox_wdt_stop,
- .expire_now = sandbox_wdt_expire_now,
- };
- static const struct udevice_id sandbox_wdt_ids[] = {
- { .compatible = "sandbox,wdt" },
- {}
- };
- U_BOOT_DRIVER(wdt_sandbox) = {
- .name = "wdt_sandbox",
- .id = UCLASS_WDT,
- .of_match = sandbox_wdt_ids,
- .ops = &sandbox_wdt_ops,
- };
|