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

The GPIO bank numbers do not appear in the device tree, so this patch makes the gpio name based on the address (ie gpio@49054000_31 vs gpio4_31)
adam
Signed-off-by: Adam Ford aford173@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;

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@49054000_31 vs gpio4_31)
adam
Signed-off-by: Adam Ford aford173@gmail.com
Works for omap3-evm and omap3-beagle-xm.
OMAP3_EVM # gpio status Bank gpio@48310000_: gpio@48310000_7: output: 1 [x] OMAP3_EVM # gpio status -a Bank gpio@48310000_: gpio@48310000_0: input: 0 [ ] gpio@48310000_1: input: 0 [ ] gpio@48310000_2: input: 0 [ ] gpio@48310000_3: input: 0 [ ] gpio@48310000_4: input: 0 [ ] gpio@48310000_5: input: 1 [ ] gpio@48310000_6: input: 1 [ ] gpio@48310000_7: output: 1 [x] gpio@48310000_8: input: 0 [ ] gpio@48310000_9: input: 0 [ ] [...]
BeagleBoard # gpio status Bank gpio@49056000_: gpio@49056000_19: output: 1 [x] USB PHY1 reset gpio@49056000_21: output: 1 [x] led gpio@49056000_22: output: 1 [x] led
Bank gpio@49058000_: gpio@49058000_11: input: 0 [x] rev0 gpio@49058000_12: input: 1 [x] rev1 gpio@49058000_13: input: 0 [x] rev2 BeagleBoard # gpio status -a Bank gpio@48310000_: gpio@48310000_0: input: 0 [ ] gpio@48310000_1: input: 0 [ ] gpio@48310000_2: input: 0 [ ] gpio@48310000_3: input: 0 [ ] gpio@48310000_4: input: 0 [ ] gpio@48310000_5: input: 0 [ ] gpio@48310000_6: input: 0 [ ] gpio@48310000_7: input: 0 [ ] gpio@48310000_8: input: 0 [ ] gpio@48310000_9: input: 0 [ ] [...]
Tested-by: Derald D. Woods woods.technical@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@lists.denx.de https://lists.denx.de/listinfo/u-boot

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@49054000_31 vs gpio4_31)
adam
Signed-off-by: Adam Ford aford173@gmail.com Tested-by: Derald D. Woods woods.technical@gmail.com
diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c index 651f6994e4..0f1ddeff92 100644
Applied to u-boot/master, thanks!
participants (3)
-
Adam Ford
-
Derald D. Woods
-
Tom Rini