gpio: xilinx: Find out bank before use in xilinx_gpio_get_function()
Call xilinx_gpio_get_bank_pin() before use. Reported-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net> Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
This commit is contained in:
parent
2570e12960
commit
ddd7b3fa33
@ -435,6 +435,10 @@ static int xilinx_gpio_get_function(struct udevice *dev, unsigned offset)
|
||||
int val, ret;
|
||||
u32 bank, pin;
|
||||
|
||||
ret = xilinx_gpio_get_bank_pin(offset, &bank, &pin, dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Check if all pins are inputs */
|
||||
if (platdata->bank_input[bank])
|
||||
return GPIOF_INPUT;
|
||||
@ -443,10 +447,6 @@ static int xilinx_gpio_get_function(struct udevice *dev, unsigned offset)
|
||||
if (platdata->bank_output[bank])
|
||||
return GPIOF_OUTPUT;
|
||||
|
||||
ret = xilinx_gpio_get_bank_pin(offset, &bank, &pin, dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* FIXME test on dual */
|
||||
val = readl(&platdata->regs->gpiodir + bank * 2);
|
||||
val = !(val & (1 << pin));
|
||||
|
Loading…
Reference in New Issue
Block a user