diff options
Diffstat (limited to 'include/reset.h')
-rw-r--r-- | include/reset.h | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/include/reset.h b/include/reset.h index a7bbc1c331b..bc495a90c2e 100644 --- a/include/reset.h +++ b/include/reset.h @@ -40,10 +40,12 @@ struct udevice; * * @dev: The device which implements the reset signal. * @id: The reset signal ID within the provider. + * @data: An optional data field for scenarios where a single integer ID is not + * sufficient. If used, it can be populated through an .of_xlate op and + * processed during the various reset ops. * - * Currently, the reset API assumes that a single integer ID is enough to - * identify and configure any reset signal for any reset provider. If this - * assumption becomes invalid in the future, the struct could be expanded to + * Should additional information to identify and configure any reset signal + * for any provider be required in the future, the struct could be expanded to * either (a) add more fields to allow reset providers to store additional * information, or (b) replace the id field with an opaque pointer, which the * provider would dynamically allocated during its .of_xlate op, and process @@ -53,10 +55,10 @@ struct udevice; struct reset_ctl { struct udevice *dev; /* - * Written by of_xlate. We assume a single id is enough for now. In the - * future, we might add more fields here. + * Written by of_xlate. In the future, we might add more fields here. */ unsigned long id; + unsigned long data; }; /** @@ -207,6 +209,15 @@ int reset_deassert(struct reset_ctl *reset_ctl); int reset_deassert_bulk(struct reset_ctl_bulk *bulk); /** + * rst_status - Check reset signal status. + * + * @reset_ctl: The reset signal to check. + * @return 0 if deasserted, positive if asserted, or a negative + * error code. + */ +int reset_status(struct reset_ctl *reset_ctl); + +/** * reset_release_all - Assert/Free an array of previously requested resets. * * For each reset contained in the reset array, this function will check if @@ -279,6 +290,11 @@ static inline int reset_deassert_bulk(struct reset_ctl_bulk *bulk) return 0; } +static inline int reset_status(struct reset_ctl *reset_ctl) +{ + return -ENOTSUPP; +} + static inline int reset_release_all(struct reset_ctl *reset_ctl, int count) { return 0; |