xref: /rk3399_ARM-atf/plat/mediatek/include/lpm_v2/mt_lp_rq.h (revision b62673c645752a78f649282cfa293e8da09e3bef)
1 /*
2  * Copyright (c) 2025, MediaTek Inc. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef MT_LP_RQ_H
8 #define MT_LP_RQ_H
9 
10 /* Determine the generic resource request public type */
11 #define MT_LP_RQ_XO_FPM		BIT(0)
12 #define MT_LP_RQ_26M		BIT(1)
13 #define MT_LP_RQ_INFRA		BIT(2)
14 #define MT_LP_RQ_SYSPLL		BIT(3)
15 #define MT_LP_RQ_DRAM		BIT(4)
16 #define MT_LP_RQ_VCORE		BIT(6)
17 #define MT_LP_RQ_EMI		BIT(7)
18 #define MT_LP_RQ_PMIC		BIT(8)
19 #define MT_LP_RQ_ALL		0xFFFFFFFF
20 
21 struct mt_lp_resource_user {
22 	/* Determine the resource user mask */
23 	unsigned int umask;
24 	/* Determine the resource request user identify */
25 	unsigned int uid;
26 	/* Request the resource */
27 	int (*request)(struct mt_lp_resource_user *this, unsigned int res);
28 	/* Release the resource */
29 	int (*release)(struct mt_lp_resource_user *this);
30 };
31 
32 int mt_lp_resource_user_register(char *uname, struct mt_lp_resource_user *ru);
33 
34 #endif /* MT_LP_RQ_H */
35