[U-Boot] [PATCH] GPIO: omap_gpio: Fix gpio name names with device tree

Derald D. Woods woods.technical at gmail.com
Sun Aug 26 19:54:55 UTC 2018


On Fri, Aug 17, 2018 at 02:37:58PM -0500, Adam Ford wrote:
> The GPIO bank numbers do not appear in the device tree, so this
> patch makes the gpio name based on the address
> (ie gpio at 49054000_31 vs gpio4_31)
> 
> adam
> 
> Signed-off-by: Adam Ford <aford173 at gmail.com>

Works for omap3-evm and omap3-beagle-xm.

OMAP3_EVM # gpio status   
Bank gpio at 48310000_:
gpio at 48310000_7: output: 1 [x]
OMAP3_EVM # gpio status -a
Bank gpio at 48310000_:
gpio at 48310000_0: input: 0 [ ]
gpio at 48310000_1: input: 0 [ ]
gpio at 48310000_2: input: 0 [ ]
gpio at 48310000_3: input: 0 [ ]
gpio at 48310000_4: input: 0 [ ]
gpio at 48310000_5: input: 1 [ ]
gpio at 48310000_6: input: 1 [ ]
gpio at 48310000_7: output: 1 [x] 
gpio at 48310000_8: input: 0 [ ]
gpio at 48310000_9: input: 0 [ ]
[...]

BeagleBoard # gpio status
Bank gpio at 49056000_:
gpio at 49056000_19: output: 1 [x] USB PHY1 reset
gpio at 49056000_21: output: 1 [x] led
gpio at 49056000_22: output: 1 [x] led

Bank gpio at 49058000_:
gpio at 49058000_11: input: 0 [x] rev0
gpio at 49058000_12: input: 1 [x] rev1
gpio at 49058000_13: input: 0 [x] rev2
BeagleBoard # gpio status -a
Bank gpio at 48310000_:
gpio at 48310000_0: input: 0 [ ]
gpio at 48310000_1: input: 0 [ ]
gpio at 48310000_2: input: 0 [ ]
gpio at 48310000_3: input: 0 [ ]
gpio at 48310000_4: input: 0 [ ]
gpio at 48310000_5: input: 0 [ ]
gpio at 48310000_6: input: 0 [ ]
gpio at 48310000_7: input: 0 [ ]
gpio at 48310000_8: input: 0 [ ]
gpio at 48310000_9: input: 0 [ ]
[...]

Tested-by: Derald D. Woods <woods.technical at gmail.com>

> 
> diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c
> index 651f6994e4..0f1ddeff92 100644
> --- a/drivers/gpio/omap_gpio.c
> +++ b/drivers/gpio/omap_gpio.c
> @@ -288,11 +288,9 @@ static int omap_gpio_probe(struct udevice *dev)
>  	struct gpio_bank *bank = dev_get_priv(dev);
>  	struct omap_gpio_platdata *plat = dev_get_platdata(dev);
>  	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
> -	int banknum;
>  	char name[18], *str;
>  
> -	banknum = plat->bank_index;
> -	sprintf(name, "GPIO%d_", banknum + 1);
> +	sprintf(name, "gpio@%4x_", (unsigned int)plat->base);
>  	str = strdup(name);
>  	if (!str)
>  		return -ENOMEM;
> -- 
> 2.17.1
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot


More information about the U-Boot mailing list