| /* |
| * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| /* |
| * ZynqMP system level PM-API functions for pin control. |
| */ |
| |
| #ifndef _PM_API_PINCTRL_H_ |
| #define _PM_API_PINCTRL_H_ |
| |
| #include "pm_common.h" |
| |
| enum pm_pinctrl_config_param { |
| PINCTRL_CONFIG_SLEW_RATE, |
| PINCTRL_CONFIG_BIAS_STATUS, |
| PINCTRL_CONFIG_PULL_CTRL, |
| PINCTRL_CONFIG_SCHMITT_CMOS, |
| PINCTRL_CONFIG_DRIVE_STRENGTH, |
| PINCTRL_CONFIG_VOLTAGE_STATUS, |
| PINCTRL_CONFIG_MAX, |
| }; |
| |
| enum pm_pinctrl_slew_rate { |
| PINCTRL_SLEW_RATE_FAST, |
| PINCTRL_SLEW_RATE_SLOW, |
| }; |
| |
| enum pm_pinctrl_bias_status { |
| PINCTRL_BIAS_DISABLE, |
| PINCTRL_BIAS_ENABLE, |
| }; |
| |
| enum pm_pinctrl_pull_ctrl { |
| PINCTRL_BIAS_PULL_DOWN, |
| PINCTRL_BIAS_PULL_UP, |
| }; |
| |
| enum pm_pinctrl_schmitt_cmos { |
| PINCTRL_INPUT_TYPE_CMOS, |
| PINCTRL_INPUT_TYPE_SCHMITT, |
| }; |
| |
| enum pm_pinctrl_drive_strength { |
| PINCTRL_DRIVE_STRENGTH_2MA, |
| PINCTRL_DRIVE_STRENGTH_4MA, |
| PINCTRL_DRIVE_STRENGTH_8MA, |
| PINCTRL_DRIVE_STRENGTH_12MA, |
| }; |
| |
| enum pm_ret_status pm_api_pinctrl_set_function(unsigned int pin, |
| enum pm_node_id nid); |
| enum pm_ret_status pm_api_pinctrl_get_function(unsigned int pin, |
| enum pm_node_id *nid); |
| enum pm_ret_status pm_api_pinctrl_set_config(unsigned int pin, |
| unsigned int param, |
| unsigned int value); |
| enum pm_ret_status pm_api_pinctrl_get_config(unsigned int pin, |
| unsigned int param, |
| unsigned int *value); |
| |
| #endif /* _PM_API_PINCTRL_H_ */ |