1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* SPDX-License-Identifier: GPL-2.0+ */
- /*
- * Copyright (c), Vaisala Oyj
- */
- #ifndef REBOOT_MODE_REBOOT_MODE_H__
- #define REBOOT_MODE_REBOOT_MODE_H__
- #include <asm/types.h>
- #include <dm/device.h>
- struct reboot_mode_mode {
- const char *mode_name;
- u32 mode_id;
- };
- struct reboot_mode_uclass_platdata {
- struct reboot_mode_mode *modes;
- u8 count;
- const char *env_variable;
- };
- struct reboot_mode_ops {
- /**
- * get() - get the current reboot mode value
- *
- * Returns the current value from the reboot mode backing store.
- *
- * @dev: Device to read from
- * @rebootmode: Address to save the current reboot mode value
- */
- int (*get)(struct udevice *dev, u32 *rebootmode);
- /**
- * set() - set a reboot mode value
- *
- * Sets the value in the reboot mode backing store.
- *
- * @dev: Device to read from
- * @rebootmode: New reboot mode value to store
- */
- int (*set)(struct udevice *dev, u32 rebootmode);
- };
- /* Access the operations for a reboot mode device */
- #define reboot_mode_get_ops(dev) ((struct reboot_mode_ops *)(dev)->driver->ops)
- /**
- * dm_reboot_mode_update() - Update the reboot mode env variable.
- *
- * @dev: Device to read from
- * @return 0 if OK, -ve on error
- */
- int dm_reboot_mode_update(struct udevice *dev);
- #endif /* REBOOT_MODE_REBOOT_MODE_H__ */
|