diff options
author | Stephen Warren <swarren@nvidia.com> | 2015-09-23 12:12:59 -0600 |
---|---|---|
committer | Tom Warren <twarren@nvidia.com> | 2015-10-02 11:04:34 -0700 |
commit | f9d3cab091522c8470e9ebd4a8967d00f49efc4a (patch) | |
tree | cdbced093fcd36fdc7bc33b32b5dfe8fdb440c53 /drivers/gpio | |
parent | cb96bf991be6af65e308600de52f36224a3c3c3f (diff) | |
download | u-boot-imx-f9d3cab091522c8470e9ebd4a8967d00f49efc4a.zip u-boot-imx-f9d3cab091522c8470e9ebd4a8967d00f49efc4a.tar.gz u-boot-imx-f9d3cab091522c8470e9ebd4a8967d00f49efc4a.tar.bz2 |
ARM: tegra: fix GPIO init table programming
Tegra's gpio_config_table() currently uses common GPIO APIs. These used
to work without requesting the GPIO, but since commit 2fccd2d96bad "tegra:
Convert tegra GPIO driver to use driver model" no longer do so. This
prevents any of the GPIO initialization table from being applied to HW.
Fix gpio_config_table() to directly program the HW to solve this.
Fixes: 2fccd2d96bad ("tegra: Convert tegra GPIO driver to use driver model")
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/tegra_gpio.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpio/tegra_gpio.c b/drivers/gpio/tegra_gpio.c index 4921f0f..c0ae771 100644 --- a/drivers/gpio/tegra_gpio.c +++ b/drivers/gpio/tegra_gpio.c @@ -211,13 +211,15 @@ void gpio_config_table(const struct tegra_gpio_config *config, int len) for (i = 0; i < len; i++) { switch (config[i].init) { case TEGRA_GPIO_INIT_IN: - gpio_direction_input(config[i].gpio); + set_direction(config[i].gpio, 0); break; case TEGRA_GPIO_INIT_OUT0: - gpio_direction_output(config[i].gpio, 0); + set_level(config[i].gpio, 0); + set_direction(config[i].gpio, 1); break; case TEGRA_GPIO_INIT_OUT1: - gpio_direction_output(config[i].gpio, 1); + set_level(config[i].gpio, 1); + set_direction(config[i].gpio, 1); break; } set_config(config[i].gpio, 1); |