123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /* SPDX-License-Identifier: BSD-3-Clause */
- /*
- * Copyright (c) 2015-2019, Arm Limited and Contributors. All rights reserved.
- * Copyright (c) 2019, Linaro Limited
- */
- #ifndef SCMI_MSG_RESET_DOMAIN_H
- #define SCMI_MSG_RESET_DOMAIN_H
- #include <stdbool.h>
- #include <stdint.h>
- #include <lib/utils_def.h>
- #define SCMI_PROTOCOL_VERSION_RESET_DOMAIN 0x10000U
- #define SCMI_RESET_STATE_ARCH BIT(31)
- #define SCMI_RESET_STATE_IMPL 0U
- /*
- * Identifiers of the SCMI Reset Domain Management Protocol commands
- */
- enum scmi_reset_domain_command_id {
- SCMI_RESET_DOMAIN_ATTRIBUTES = 0x03,
- SCMI_RESET_DOMAIN_REQUEST = 0x04,
- SCMI_RESET_DOMAIN_NOTIFY = 0x05,
- };
- /*
- * Identifiers of the SCMI Reset Domain Management Protocol responses
- */
- enum scmi_reset_domain_response_id {
- SCMI_RESET_ISSUED = 0x00,
- SCMI_RESET_COMPLETE = 0x04,
- };
- /*
- * PROTOCOL_ATTRIBUTES
- */
- #define SCMI_RESET_DOMAIN_COUNT_MASK GENMASK_32(15, 0)
- struct scmi_reset_domain_protocol_attributes_p2a {
- int32_t status;
- uint32_t attributes;
- };
- /* Value for scmi_reset_domain_attributes_p2a:flags */
- #define SCMI_RESET_DOMAIN_ATTR_ASYNC BIT(31)
- #define SCMI_RESET_DOMAIN_ATTR_NOTIF BIT(30)
- /* Value for scmi_reset_domain_attributes_p2a:latency */
- #define SCMI_RESET_DOMAIN_ATTR_UNK_LAT 0x7fffffffU
- #define SCMI_RESET_DOMAIN_ATTR_MAX_LAT 0x7ffffffeU
- /* Macro for scmi_reset_domain_attributes_p2a:name */
- #define SCMI_RESET_DOMAIN_ATTR_NAME_SZ 16U
- struct scmi_reset_domain_attributes_a2p {
- uint32_t domain_id;
- };
- struct scmi_reset_domain_attributes_p2a {
- int32_t status;
- uint32_t flags;
- uint32_t latency;
- char name[SCMI_RESET_DOMAIN_ATTR_NAME_SZ];
- };
- /*
- * RESET
- */
- /* Values for scmi_reset_domain_request_a2p:flags */
- #define SCMI_RESET_DOMAIN_ASYNC BIT(2)
- #define SCMI_RESET_DOMAIN_EXPLICIT BIT(1)
- #define SCMI_RESET_DOMAIN_AUTO BIT(0)
- struct scmi_reset_domain_request_a2p {
- uint32_t domain_id;
- uint32_t flags;
- uint32_t reset_state;
- };
- struct scmi_reset_domain_request_p2a {
- int32_t status;
- };
- /*
- * RESET_NOTIFY
- */
- /* Values for scmi_reset_notify_p2a:flags */
- #define SCMI_RESET_DOMAIN_DO_NOTIFY BIT(0)
- struct scmi_reset_domain_notify_a2p {
- uint32_t domain_id;
- uint32_t notify_enable;
- };
- struct scmi_reset_domain_notify_p2a {
- int32_t status;
- };
- /*
- * RESET_COMPLETE
- */
- struct scmi_reset_domain_complete_p2a {
- int32_t status;
- uint32_t domain_id;
- };
- /*
- * RESET_ISSUED
- */
- struct scmi_reset_domain_issued_p2a {
- uint32_t domain_id;
- uint32_t reset_state;
- };
- #endif /* SCMI_MSG_RESET_DOMAIN_H */
|