2 * pinctrl configuration definitions for the NVIDIA Tegra pinmux
4 * Copyright (c) 2011, NVIDIA CORPORATION. All rights reserved.
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16 #ifndef __PINCONF_TEGRA_H__
17 #define __PINCONF_TEGRA_H__
19 enum tegra_pinconf_param
{
20 /* argument: tegra_pinconf_pull */
21 TEGRA_PINCONF_PARAM_PULL
,
22 /* argument: tegra_pinconf_tristate */
23 TEGRA_PINCONF_PARAM_TRISTATE
,
24 /* argument: Boolean */
25 TEGRA_PINCONF_PARAM_ENABLE_INPUT
,
26 /* argument: Boolean */
27 TEGRA_PINCONF_PARAM_OPEN_DRAIN
,
28 /* argument: Boolean */
29 TEGRA_PINCONF_PARAM_LOCK
,
30 /* argument: Boolean */
31 TEGRA_PINCONF_PARAM_IORESET
,
32 /* argument: Boolean */
33 TEGRA_PINCONF_PARAM_HIGH_SPEED_MODE
,
34 /* argument: Boolean */
35 TEGRA_PINCONF_PARAM_SCHMITT
,
36 /* argument: Boolean */
37 TEGRA_PINCONF_PARAM_LOW_POWER_MODE
,
38 /* argument: Integer, range is HW-dependant */
39 TEGRA_PINCONF_PARAM_DRIVE_DOWN_STRENGTH
,
40 /* argument: Integer, range is HW-dependant */
41 TEGRA_PINCONF_PARAM_DRIVE_UP_STRENGTH
,
42 /* argument: Integer, range is HW-dependant */
43 TEGRA_PINCONF_PARAM_SLEW_RATE_FALLING
,
44 /* argument: Integer, range is HW-dependant */
45 TEGRA_PINCONF_PARAM_SLEW_RATE_RISING
,
48 enum tegra_pinconf_pull
{
49 TEGRA_PINCONFIG_PULL_NONE
,
50 TEGRA_PINCONFIG_PULL_DOWN
,
51 TEGRA_PINCONFIG_PULL_UP
,
54 enum tegra_pinconf_tristate
{
55 TEGRA_PINCONFIG_DRIVEN
,
56 TEGRA_PINCONFIG_TRISTATE
,
59 #define TEGRA_PINCONF_PACK(_param_, _arg_) ((_param_) << 16 | (_arg_))
60 #define TEGRA_PINCONF_UNPACK_PARAM(_conf_) ((_conf_) >> 16)
61 #define TEGRA_PINCONF_UNPACK_ARG(_conf_) ((_conf_) & 0xffff)