mirror of
https://xff.cz/git/u-boot/
synced 2025-09-02 01:02:19 +02:00
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:
@@ -435,6 +435,10 @@ static int xilinx_gpio_get_function(struct udevice *dev, unsigned offset)
|
|||||||
int val, ret;
|
int val, ret;
|
||||||
u32 bank, pin;
|
u32 bank, pin;
|
||||||
|
|
||||||
|
ret = xilinx_gpio_get_bank_pin(offset, &bank, &pin, dev);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
/* Check if all pins are inputs */
|
/* Check if all pins are inputs */
|
||||||
if (platdata->bank_input[bank])
|
if (platdata->bank_input[bank])
|
||||||
return GPIOF_INPUT;
|
return GPIOF_INPUT;
|
||||||
@@ -443,10 +447,6 @@ static int xilinx_gpio_get_function(struct udevice *dev, unsigned offset)
|
|||||||
if (platdata->bank_output[bank])
|
if (platdata->bank_output[bank])
|
||||||
return GPIOF_OUTPUT;
|
return GPIOF_OUTPUT;
|
||||||
|
|
||||||
ret = xilinx_gpio_get_bank_pin(offset, &bank, &pin, dev);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
/* FIXME test on dual */
|
/* FIXME test on dual */
|
||||||
val = readl(&platdata->regs->gpiodir + bank * 2);
|
val = readl(&platdata->regs->gpiodir + bank * 2);
|
||||||
val = !(val & (1 << pin));
|
val = !(val & (1 << pin));
|
||||||
|
Reference in New Issue
Block a user