gpio/rockchip: rk_gpio correct pin count for each bank
Do 'gpio status -a' will cause system crash, due to the pins number error for gpio4 (last gpio controller). Test on RV1126 IOTEST board, which has only 8 pins for GPIO4. Change-Id: I4150abd0ca97bc4f3043eb7fcae2287818125031 Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
This commit is contained in:
parent
33f8d8a65e
commit
7d13e745d6
|
|
@ -101,6 +101,7 @@ static int rockchip_gpio_probe(struct udevice *dev)
|
|||
struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
|
||||
struct rockchip_gpio_priv *priv = dev_get_priv(dev);
|
||||
char *end;
|
||||
int pins_num;
|
||||
int ret;
|
||||
|
||||
priv->regs = dev_read_addr_ptr(dev);
|
||||
|
|
@ -114,6 +115,10 @@ static int rockchip_gpio_probe(struct udevice *dev)
|
|||
priv->name[0] = 'A' + priv->bank;
|
||||
uc_priv->bank_name = priv->name;
|
||||
|
||||
pins_num = pinctrl_get_pins_count(priv->pinctrl);
|
||||
if ((priv->bank + 1) * ROCKCHIP_GPIOS_PER_BANK >= pins_num)
|
||||
uc_priv->gpio_count = pins_num - priv->bank * ROCKCHIP_GPIOS_PER_BANK;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue