xref: /rk3399_ARM-atf/plat/xilinx/zynqmp/pm_service/pm_api_pinctrl.h (revision d0e2c51ae3ff07a7039cd59cdd05ba4669c0e5b3)
1 /*
2  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 /*
8  * ZynqMP system level PM-API functions for pin control.
9  */
10 
11 #ifndef _PM_API_PINCTRL_H_
12 #define _PM_API_PINCTRL_H_
13 
14 #include "pm_common.h"
15 
16 enum pm_pinctrl_config_param {
17 	PINCTRL_CONFIG_SLEW_RATE,
18 	PINCTRL_CONFIG_BIAS_STATUS,
19 	PINCTRL_CONFIG_PULL_CTRL,
20 	PINCTRL_CONFIG_SCHMITT_CMOS,
21 	PINCTRL_CONFIG_DRIVE_STRENGTH,
22 	PINCTRL_CONFIG_VOLTAGE_STATUS,
23 	PINCTRL_CONFIG_MAX,
24 };
25 
26 enum pm_pinctrl_slew_rate {
27 	PINCTRL_SLEW_RATE_FAST,
28 	PINCTRL_SLEW_RATE_SLOW,
29 };
30 
31 enum pm_pinctrl_bias_status {
32 	PINCTRL_BIAS_DISABLE,
33 	PINCTRL_BIAS_ENABLE,
34 };
35 
36 enum pm_pinctrl_pull_ctrl {
37 	PINCTRL_BIAS_PULL_DOWN,
38 	PINCTRL_BIAS_PULL_UP,
39 };
40 
41 enum pm_pinctrl_schmitt_cmos {
42 	PINCTRL_INPUT_TYPE_CMOS,
43 	PINCTRL_INPUT_TYPE_SCHMITT,
44 };
45 
46 enum pm_pinctrl_drive_strength {
47 	PINCTRL_DRIVE_STRENGTH_2MA,
48 	PINCTRL_DRIVE_STRENGTH_4MA,
49 	PINCTRL_DRIVE_STRENGTH_8MA,
50 	PINCTRL_DRIVE_STRENGTH_12MA,
51 };
52 
53 enum pm_ret_status pm_api_pinctrl_set_function(unsigned int pin,
54 					       enum pm_node_id nid);
55 enum pm_ret_status pm_api_pinctrl_get_function(unsigned int pin,
56 					       enum pm_node_id *nid);
57 enum pm_ret_status pm_api_pinctrl_set_config(unsigned int pin,
58 					     unsigned int param,
59 					     unsigned int value);
60 enum pm_ret_status pm_api_pinctrl_get_config(unsigned int pin,
61 					     unsigned int param,
62 					     unsigned int *value);
63 
64 #endif /* _PM_API_PINCTRL_H_ */
65