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