summaryrefslogtreecommitdiffstats
path: root/plat/mediatek/include/lpm/mt_lp_rq.h
blob: 2c4908c1e312bcf077b45d365cb47cfd03325b90 (plain)
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
/*
 * Copyright (c) 2023, MediaTek Inc. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef MT_LP_RQ_H
#define MT_LP_RQ_H

/* Determine the generic resource request public type */
#define MT_LP_RQ_XO_FPM		BIT(0)
#define MT_LP_RQ_26M		BIT(1)
#define MT_LP_RQ_INFRA		BIT(2)
#define MT_LP_RQ_SYSPLL		BIT(3)
#define MT_LP_RQ_DRAM		BIT(4)
#define MT_LP_RQ_ALL		(0xFFFFFFFF)

struct mt_lp_resource_user {
	/* Determine the resource user mask */
	unsigned int umask;
	/* Determine the resource request user identify */
	unsigned int uid;
	/* Request the resource */
	int (*request)(struct mt_lp_resource_user *this, unsigned int resource);
	/* Release the resource */
	int (*release)(struct mt_lp_resource_user *this);
};

int mt_lp_resource_user_register(char *uname, struct mt_lp_resource_user *ru);

#endif /* MT_LP_RQ_H */