[U-Boot] [PATCH v2 06/17] gpio: bcm6345: convert to use live dt

Álvaro Fernández Rojas noltari at gmail.com
Thu Mar 22 18:39:32 UTC 2018


Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
Reviewed-by: Simon Glass <sjg at chromium.org>
---
 v2: Introduce changes suggested by Daniel Schwierzeck:
  - Use generic dev_remap_addr_index function.

 drivers/gpio/bcm6345_gpio.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)

diff --git a/drivers/gpio/bcm6345_gpio.c b/drivers/gpio/bcm6345_gpio.c
index b9100cdc58..847b6ca076 100644
--- a/drivers/gpio/bcm6345_gpio.c
+++ b/drivers/gpio/bcm6345_gpio.c
@@ -14,8 +14,6 @@
 #include <asm/gpio.h>
 #include <asm/io.h>
 
-DECLARE_GLOBAL_DATA_PTR;
-
 struct bcm6345_gpio_priv {
 	void __iomem *reg_dirout;
 	void __iomem *reg_data;
@@ -91,22 +89,16 @@ static int bcm6345_gpio_probe(struct udevice *dev)
 {
 	struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
 	struct bcm6345_gpio_priv *priv = dev_get_priv(dev);
-	fdt_addr_t data_addr, dirout_addr;
-	fdt_size_t data_size, dirout_size;
 
-	dirout_addr = devfdt_get_addr_size_index(dev, 0, &dirout_size);
-	if (dirout_addr == FDT_ADDR_T_NONE)
+	priv->reg_dirout = dev_remap_addr_index(dev, 0);
+	if (!priv->reg_dirout)
 		return -EINVAL;
 
-	data_addr = devfdt_get_addr_size_index(dev, 1, &data_size);
-	if (data_addr == FDT_ADDR_T_NONE)
+	priv->reg_data = dev_remap_addr_index(dev, 1);
+	if (!priv->reg_data)
 		return -EINVAL;
 
-	priv->reg_data = ioremap(data_addr, data_size);
-	priv->reg_dirout = ioremap(dirout_addr, dirout_size);
-
-	uc_priv->gpio_count = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
-					      "ngpios", 32);
+	uc_priv->gpio_count = dev_read_u32_default(dev, "ngpios", 32);
 	uc_priv->bank_name = dev->name;
 
 	return 0;
-- 
2.11.0



More information about the U-Boot mailing list