xref: /rk3399_ARM-atf/include/services/lfa_component_desc.h (revision 06a6f2968df7ac5a1016afe60a22f2f7d03f6c9b)
19e032181SManish V Badarkhe /*
29e032181SManish V Badarkhe  * Copyright (c) 2025, Arm Limited. All rights reserved.
39e032181SManish V Badarkhe  *
49e032181SManish V Badarkhe  * SPDX-License-Identifier: BSD-3-Clause
59e032181SManish V Badarkhe  */
69e032181SManish V Badarkhe 
79e032181SManish V Badarkhe #ifndef LFA_COMPONENT_DESC_H
89e032181SManish V Badarkhe #define LFA_COMPONENT_DESC_H
99e032181SManish V Badarkhe 
10*06a6f296SManish V Badarkhe #include <stdbool.h>
119e032181SManish V Badarkhe #include <stdint.h>
129e032181SManish V Badarkhe 
139e032181SManish V Badarkhe typedef enum {
149e032181SManish V Badarkhe 	PRIME_NONE = 0,
159e032181SManish V Badarkhe } lfa_prime_status_t;
169e032181SManish V Badarkhe 
179e032181SManish V Badarkhe struct lfa_component_status {
189e032181SManish V Badarkhe 	uint32_t component_id;
199e032181SManish V Badarkhe 	lfa_prime_status_t prime_status;
209e032181SManish V Badarkhe };
219e032181SManish V Badarkhe 
229e032181SManish V Badarkhe typedef int32_t (*component_prime_fn)(struct lfa_component_status *activation);
239e032181SManish V Badarkhe typedef int32_t (*component_activate_fn)(struct lfa_component_status *activation,
249e032181SManish V Badarkhe 					 uint64_t ep_address,
259e032181SManish V Badarkhe 					 uint64_t context_id);
269e032181SManish V Badarkhe 
279e032181SManish V Badarkhe struct lfa_component_ops {
289e032181SManish V Badarkhe 	component_prime_fn prime;
299e032181SManish V Badarkhe 	component_activate_fn activate;
30*06a6f296SManish V Badarkhe 	bool may_reset_cpu;
31*06a6f296SManish V Badarkhe 	bool cpu_rendezvous_required;
329e032181SManish V Badarkhe };
339e032181SManish V Badarkhe 
349e032181SManish V Badarkhe #endif /* LFA_COMPONENT_DESC_H */
35