Blame view
include/reset-uclass.h
2.37 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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
/* * Copyright (c) 2016, NVIDIA CORPORATION. * * SPDX-License-Identifier: GPL-2.0 */ #ifndef _RESET_UCLASS_H #define _RESET_UCLASS_H /* See reset.h for background documentation. */ #include <reset.h> struct ofnode_phandle_args; struct udevice; /** * struct reset_ops - The functions that a reset controller driver must * implement. */ struct reset_ops { /** * of_xlate - Translate a client's device-tree (OF) reset specifier. * * The reset core calls this function as the first step in implementing * a client's reset_get_by_*() call. * * If this function pointer is set to NULL, the reset core will use a * default implementation, which assumes #reset-cells = <1>, and that * the DT cell contains a simple integer reset signal ID. * * At present, the reset API solely supports device-tree. If this * changes, other xxx_xlate() functions may be added to support those * other mechanisms. * * @reset_ctl: The reset control struct to hold the translation result. * @args: The reset specifier values from device tree. * @return 0 if OK, or a negative error code. */ int (*of_xlate)(struct reset_ctl *reset_ctl, struct ofnode_phandle_args *args); /** * request - Request a translated reset control. * * The reset core calls this function as the second step in * implementing a client's reset_get_by_*() call, following a * successful xxx_xlate() call. * * @reset_ctl: The reset control struct to request; this has been * filled in by a previoux xxx_xlate() function call. * @return 0 if OK, or a negative error code. */ int (*request)(struct reset_ctl *reset_ctl); /** * free - Free a previously requested reset control. * * This is the implementation of the client reset_free() API. * * @reset_ctl: The reset control to free. * @return 0 if OK, or a negative error code. */ int (*free)(struct reset_ctl *reset_ctl); /** * rst_assert - Assert a reset signal. * * Note: This function is named rst_assert not assert to avoid * conflicting with global macro assert(). * * @reset_ctl: The reset signal to assert. * @return 0 if OK, or a negative error code. */ int (*rst_assert)(struct reset_ctl *reset_ctl); /** * rst_deassert - Deassert a reset signal. * * @reset_ctl: The reset signal to deassert. * @return 0 if OK, or a negative error code. */ int (*rst_deassert)(struct reset_ctl *reset_ctl); }; #endif |