diff options
author | Pavan Kunapuli <pkunapuli@nvidia.com> | 2012-10-12 15:56:30 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-10-31 19:23:33 -0700 |
commit | e8a946edd2e2efd143301a863bafe2ebb6cf8a71 (patch) | |
tree | a8b12cf14bb3f162688a8514fcff086233371559 /arch | |
parent | 1779cbbc6e1a48bb6634693a30f30668e5aa676f (diff) |
ARM: tegra: Dalmore/pluto: Set drive strengths
Setting the drive type for GMA pad groups.
Changed the drive strength settings of GMA
pad group as per characterization team
recommendations.
Bug 1156152
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/144031
(Cherry picked from commit 0eca234cfc04bfcd6e5f6a8c1a035319186305cd)
Change-Id: I6df5b3e7bc02b1d39079726d5477b5b2dfbc70d5
Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-on: http://git-master/r/159819
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
GVS: Gerrit_Virtual_Submit
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/board-dalmore-pinmux.c | 35 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-pluto-pinmux.c | 35 |
2 files changed, 68 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/board-dalmore-pinmux.c b/arch/arm/mach-tegra/board-dalmore-pinmux.c index 0220eda2fb21..622aca81695d 100644 --- a/arch/arm/mach-tegra/board-dalmore-pinmux.c +++ b/arch/arm/mach-tegra/board-dalmore-pinmux.c @@ -70,6 +70,39 @@ .slew_falling = TEGRA_SLEW_##_pullup_slew, \ } +/* Setting the drive strength of pins + * hsm: Enable High speed mode (ENABLE/DISABLE) + * Schimit: Enable/disable schimit (ENABLE/DISABLE) + * drive: low power mode (DIV_1, DIV_2, DIV_4, DIV_8) + * pulldn_drive - drive down (falling edge) - Driver Output Pull-Down drive + * strength code. Value from 0 to 31. + * pullup_drive - drive up (rising edge) - Driver Output Pull-Up drive + * strength code. Value from 0 to 31. + * pulldn_slew - Driver Output Pull-Up slew control code - 2bit code + * code 11 is least slewing of signal. code 00 is highest + * slewing of the signal. + * Value - FASTEST, FAST, SLOW, SLOWEST + * pullup_slew - Driver Output Pull-Down slew control code - + * code 11 is least slewing of signal. code 00 is highest + * slewing of the signal. + * Value - FASTEST, FAST, SLOW, SLOWEST + * drive_type - Drive type to be used depending on the resistors. + */ + +#define SET_DRIVE_WITH_TYPE(_name, _hsm, _schmitt, _drive, _pulldn_drive,\ + _pullup_drive, _pulldn_slew, _pullup_slew, _drive_type) \ + { \ + .pingroup = TEGRA_DRIVE_PINGROUP_##_name, \ + .hsm = TEGRA_HSM_##_hsm, \ + .schmitt = TEGRA_SCHMITT_##_schmitt, \ + .drive = TEGRA_DRIVE_##_drive, \ + .pull_down = TEGRA_PULL_##_pulldn_drive, \ + .pull_up = TEGRA_PULL_##_pullup_drive, \ + .slew_rising = TEGRA_SLEW_##_pulldn_slew, \ + .slew_falling = TEGRA_SLEW_##_pullup_slew, \ + .drive_type = TEGRA_DRIVE_TYPE_##_drive_type, \ + } + #define DEFAULT_PINMUX(_pingroup, _mux, _pupd, _tri, _io) \ { \ .pingroup = TEGRA_PINGROUP_##_pingroup, \ @@ -150,7 +183,7 @@ static __initdata struct tegra_drive_pingroup_config dalmore_drive_pinmux[] = { SET_DRIVE(SDIO3, DISABLE, DISABLE, DIV_1, 22, 36, FASTEST, FASTEST), /* SDMMC4 */ - SET_DRIVE(GMA, DISABLE, DISABLE, DIV_1, 2, 1, FASTEST, FASTEST), + SET_DRIVE_WITH_TYPE(GMA, DISABLE, DISABLE, DIV_1, 2, 1, FASTEST, FASTEST, 1), }; /* Initially setting all used GPIO's to non-TRISTATE */ diff --git a/arch/arm/mach-tegra/board-pluto-pinmux.c b/arch/arm/mach-tegra/board-pluto-pinmux.c index 595659fd92ba..6be470598c83 100644 --- a/arch/arm/mach-tegra/board-pluto-pinmux.c +++ b/arch/arm/mach-tegra/board-pluto-pinmux.c @@ -70,6 +70,39 @@ .slew_falling = TEGRA_SLEW_##_pullup_slew, \ } +/* Setting the drive strength of pins + * hsm: Enable High speed mode (ENABLE/DISABLE) + * Schimit: Enable/disable schimit (ENABLE/DISABLE) + * drive: low power mode (DIV_1, DIV_2, DIV_4, DIV_8) + * pulldn_drive - drive down (falling edge) - Driver Output Pull-Down drive + * strength code. Value from 0 to 31. + * pullup_drive - drive up (rising edge) - Driver Output Pull-Up drive + * strength code. Value from 0 to 31. + * pulldn_slew - Driver Output Pull-Up slew control code - 2bit code + * code 11 is least slewing of signal. code 00 is highest + * slewing of the signal. + * Value - FASTEST, FAST, SLOW, SLOWEST + * pullup_slew - Driver Output Pull-Down slew control code - + * code 11 is least slewing of signal. code 00 is highest + * slewing of the signal. + * Value - FASTEST, FAST, SLOW, SLOWEST + * drive_type - Drive type to be used depending on the resistors. + */ + +#define SET_DRIVE_WITH_TYPE(_name, _hsm, _schmitt, _drive, _pulldn_drive,\ + _pullup_drive, _pulldn_slew, _pullup_slew, _drive_type) \ + { \ + .pingroup = TEGRA_DRIVE_PINGROUP_##_name, \ + .hsm = TEGRA_HSM_##_hsm, \ + .schmitt = TEGRA_SCHMITT_##_schmitt, \ + .drive = TEGRA_DRIVE_##_drive, \ + .pull_down = TEGRA_PULL_##_pulldn_drive, \ + .pull_up = TEGRA_PULL_##_pullup_drive, \ + .slew_rising = TEGRA_SLEW_##_pulldn_slew, \ + .slew_falling = TEGRA_SLEW_##_pullup_slew, \ + .drive_type = TEGRA_DRIVE_TYPE_##_drive_type, \ + } + #define DEFAULT_PINMUX(_pingroup, _mux, _pupd, _tri, _io) \ { \ .pingroup = TEGRA_PINGROUP_##_pingroup, \ @@ -139,7 +172,7 @@ static __initdata struct tegra_drive_pingroup_config pluto_drive_pinmux[] = { SET_DRIVE(SDIO3, DISABLE, DISABLE, DIV_1, 22, 36, FASTEST, FASTEST), /* SDMMC4 */ - SET_DRIVE(GMA, DISABLE, DISABLE, DIV_1, 2, 1, FASTEST, FASTEST), + SET_DRIVE_WITH_TYPE(GMA, DISABLE, DISABLE, DIV_1, 2, 1, FASTEST, FASTEST, 1), }; /* Initially setting all used GPIO's to non-TRISTATE */ |