2 * Copyright (c) 2011,2012, NVIDIA CORPORATION. All rights reserved.
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
15 #ifndef __MACH_TEGRA_BOARD_PINMUX_H
16 #define __MACH_TEGRA_BOARD_PINMUX_H
18 #include <linux/pinctrl/machine.h>
20 #include <mach/pinconf-tegra.h>
22 #define PINMUX_DEV "tegra20-pinctrl"
24 #define TEGRA_MAP_MUX(_group_, _function_) \
25 PIN_MAP_MUX_GROUP_HOG_DEFAULT(PINMUX_DEV, _group_, _function_)
27 #define TEGRA_MAP_CONF(_group_, _pull_, _drive_) \
28 PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(PINMUX_DEV, _group_, tegra_pincfg_pull##_pull_##_##_drive_)
30 #define TEGRA_MAP_MUXCONF(_group_, _function_, _pull_, _drive_) \
31 TEGRA_MAP_MUX(_group_, _function_), \
32 TEGRA_MAP_CONF(_group_, _pull_, _drive_)
34 extern unsigned long tegra_pincfg_pullnone_driven
[2];
35 extern unsigned long tegra_pincfg_pullnone_tristate
[2];
36 extern unsigned long tegra_pincfg_pullnone_na
[1];
37 extern unsigned long tegra_pincfg_pullup_driven
[2];
38 extern unsigned long tegra_pincfg_pullup_tristate
[2];
39 extern unsigned long tegra_pincfg_pullup_na
[1];
40 extern unsigned long tegra_pincfg_pulldown_driven
[2];
41 extern unsigned long tegra_pincfg_pulldown_tristate
[2];
42 extern unsigned long tegra_pincfg_pulldown_na
[1];
43 extern unsigned long tegra_pincfg_pullna_driven
[1];
44 extern unsigned long tegra_pincfg_pullna_tristate
[1];
46 struct tegra_board_pinmux_conf
{
47 struct pinctrl_map
*maps
;
51 void tegra_board_pinmux_init(struct tegra_board_pinmux_conf
*conf_a
,
52 struct tegra_board_pinmux_conf
*conf_b
);