diff options
author | Pavan Kunapuli <pkunapuli@nvidia.com> | 2012-10-16 21:47:22 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-12-05 14:01:14 -0800 |
commit | 7cf7cef96eb96da26be252c29781458c241f45e6 (patch) | |
tree | ddb5398fa3d3ac624bc7b57218a73bb92ba9a082 /arch/arm/mach-tegra/include/mach | |
parent | 4e848982b2492229f32225c01f1e4edf7dd0d7df (diff) |
ARM: tegra: pinmux: Allow dynamic drive settings
The pullup and pulldown drive configuration APIs
are made available for drivers that need to change
drive strengths.
Added API to get the pingroup info based on dev id
mapping.
Bug 1157930
Change-Id: Idd4151177bc1c91b18bdb8ab2543cc2055dbb96c
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/159841
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/include/mach')
-rw-r--r-- | arch/arm/mach-tegra/include/mach/pinmux.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/include/mach/pinmux.h b/arch/arm/mach-tegra/include/mach/pinmux.h index f7171733dcc4..f2ee3a682de6 100644 --- a/arch/arm/mach-tegra/include/mach/pinmux.h +++ b/arch/arm/mach-tegra/include/mach/pinmux.h @@ -287,6 +287,87 @@ enum tegra_pull_strength { TEGRA_PULL_44, TEGRA_PULL_45, TEGRA_PULL_46, + TEGRA_PULL_47, + TEGRA_PULL_48, + TEGRA_PULL_49, + TEGRA_PULL_50, + TEGRA_PULL_51, + TEGRA_PULL_52, + TEGRA_PULL_53, + TEGRA_PULL_54, + TEGRA_PULL_55, + TEGRA_PULL_56, + TEGRA_PULL_57, + TEGRA_PULL_58, + TEGRA_PULL_59, + TEGRA_PULL_60, + TEGRA_PULL_61, + TEGRA_PULL_62, + TEGRA_PULL_63, + TEGRA_PULL_64, + TEGRA_PULL_65, + TEGRA_PULL_66, + TEGRA_PULL_67, + TEGRA_PULL_68, + TEGRA_PULL_69, + TEGRA_PULL_70, + TEGRA_PULL_71, + TEGRA_PULL_72, + TEGRA_PULL_73, + TEGRA_PULL_74, + TEGRA_PULL_75, + TEGRA_PULL_76, + TEGRA_PULL_77, + TEGRA_PULL_78, + TEGRA_PULL_79, + TEGRA_PULL_80, + TEGRA_PULL_81, + TEGRA_PULL_82, + TEGRA_PULL_83, + TEGRA_PULL_84, + TEGRA_PULL_85, + TEGRA_PULL_86, + TEGRA_PULL_87, + TEGRA_PULL_88, + TEGRA_PULL_89, + TEGRA_PULL_90, + TEGRA_PULL_91, + TEGRA_PULL_92, + TEGRA_PULL_93, + TEGRA_PULL_94, + TEGRA_PULL_95, + TEGRA_PULL_96, + TEGRA_PULL_97, + TEGRA_PULL_98, + TEGRA_PULL_99, + TEGRA_PULL_100, + TEGRA_PULL_101, + TEGRA_PULL_102, + TEGRA_PULL_103, + TEGRA_PULL_104, + TEGRA_PULL_105, + TEGRA_PULL_106, + TEGRA_PULL_107, + TEGRA_PULL_108, + TEGRA_PULL_109, + TEGRA_PULL_110, + TEGRA_PULL_111, + TEGRA_PULL_112, + TEGRA_PULL_113, + TEGRA_PULL_114, + TEGRA_PULL_115, + TEGRA_PULL_116, + TEGRA_PULL_117, + TEGRA_PULL_118, + TEGRA_PULL_119, + TEGRA_PULL_120, + TEGRA_PULL_121, + TEGRA_PULL_122, + TEGRA_PULL_123, + TEGRA_PULL_124, + TEGRA_PULL_125, + TEGRA_PULL_126, + TEGRA_PULL_127, TEGRA_MAX_PULL, }; @@ -343,6 +424,7 @@ struct tegra_drive_pingroup_desc { u8 drvtype_valid; u8 drvtype_offset; u8 drvtype_mask; + const char *dev_id; }; struct tegra_pingroup_desc { @@ -397,6 +479,15 @@ void tegra_pinmux_config_table(const struct tegra_pingroup_config *config, void tegra_drive_pinmux_config_table(struct tegra_drive_pingroup_config *config, int len); + +int tegra_drive_pinmux_set_pull_down(int pg, + enum tegra_pull_strength pull_down); + +int tegra_drive_pinmux_set_pull_up(int pg, enum tegra_pull_strength pull_up); + +struct device; +int tegra_drive_get_pingroup(struct device *dev); + void tegra_pinmux_set_safe_pinmux_table(const struct tegra_pingroup_config *config, int len); void tegra_pinmux_config_pinmux_table(const struct tegra_pingroup_config *config, |