Blame view
drivers/watchdog/sandbox_wdt.c
1.18 KB
d41ce506b Initial Release, ... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
/* * Copyright 2017 Google, Inc * * SPDX-License-Identifier: GPL-2.0+ */ #include <common.h> #include <dm.h> #include <wdt.h> #include <asm/state.h> DECLARE_GLOBAL_DATA_PTR; 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, }; |