/* * pinctrl configuration definitions for the NVIDIA Tegra pinmux * * Copyright (c) 2011, NVIDIA CORPORATION. All rights reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #ifndef __PINCONF_TEGRA_H__ #define __PINCONF_TEGRA_H__ enum tegra_pinconf_param { /* argument: tegra_pinconf_pull */ TEGRA_PINCONF_PARAM_PULL, /* argument: tegra_pinconf_tristate */ TEGRA_PINCONF_PARAM_TRISTATE, /* argument: Boolean */ TEGRA_PINCONF_PARAM_ENABLE_INPUT, /* argument: Boolean */ TEGRA_PINCONF_PARAM_OPEN_DRAIN, /* argument: Boolean */ TEGRA_PINCONF_PARAM_LOCK, /* argument: Boolean */ TEGRA_PINCONF_PARAM_IORESET, /* argument: Boolean */ TEGRA_PINCONF_PARAM_HIGH_SPEED_MODE, /* argument: Boolean */ TEGRA_PINCONF_PARAM_SCHMITT, /* argument: Boolean */ TEGRA_PINCONF_PARAM_LOW_POWER_MODE, /* argument: Integer, range is HW-dependant */ TEGRA_PINCONF_PARAM_DRIVE_DOWN_STRENGTH, /* argument: Integer, range is HW-dependant */ TEGRA_PINCONF_PARAM_DRIVE_UP_STRENGTH, /* argument: Integer, range is HW-dependant */ TEGRA_PINCONF_PARAM_SLEW_RATE_FALLING, /* argument: Integer, range is HW-dependant */ TEGRA_PINCONF_PARAM_SLEW_RATE_RISING, }; enum tegra_pinconf_pull { TEGRA_PINCONFIG_PULL_NONE, TEGRA_PINCONFIG_PULL_DOWN, TEGRA_PINCONFIG_PULL_UP, }; enum tegra_pinconf_tristate { TEGRA_PINCONFIG_DRIVEN, TEGRA_PINCONFIG_TRISTATE, }; #define TEGRA_PINCONF_PACK(_param_, _arg_) ((_param_) << 16 | (_arg_)) #define TEGRA_PINCONF_UNPACK_PARAM(_conf_) ((_conf_) >> 16) #define TEGRA_PINCONF_UNPACK_ARG(_conf_) ((_conf_) & 0xffff) #endif