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 commit2fccd2d96b
"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:2fccd2d96b
("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>
This commit is contained in:
parent
cb96bf991b
commit
f9d3cab091
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user