summaryrefslogtreecommitdiff
path: root/drivers/gpio/s5p_gpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpio/s5p_gpio.c')
-rw-r--r--drivers/gpio/s5p_gpio.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/drivers/gpio/s5p_gpio.c b/drivers/gpio/s5p_gpio.c
index c78227f4da..9de9541c87 100644
--- a/drivers/gpio/s5p_gpio.c
+++ b/drivers/gpio/s5p_gpio.c
@@ -34,7 +34,7 @@ DECLARE_GLOBAL_DATA_PTR;
#define RATE_SET(gpio) (0x1 << (gpio + 16))
/* Platform data for each bank */
-struct exynos_gpio_platdata {
+struct exynos_gpio_plat {
struct s5p_gpio_bank *bank;
const char *bank_name; /* Name of port, e.g. 'gpa0" */
};
@@ -287,7 +287,7 @@ static int gpio_exynos_probe(struct udevice *dev)
{
struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev);
struct exynos_bank_info *priv = dev->priv;
- struct exynos_gpio_platdata *plat = dev->platdata;
+ struct exynos_gpio_plat *plat = dev->plat;
/* Only child devices have ports */
if (!plat)
@@ -307,7 +307,7 @@ static int gpio_exynos_probe(struct udevice *dev)
*/
static int gpio_exynos_bind(struct udevice *parent)
{
- struct exynos_gpio_platdata *plat = parent->platdata;
+ struct exynos_gpio_plat *plat = parent->plat;
struct s5p_gpio_bank *bank, *base;
const void *blob = gd->fdt_blob;
int node;
@@ -320,7 +320,7 @@ static int gpio_exynos_bind(struct udevice *parent)
for (node = fdt_first_subnode(blob, dev_of_offset(parent)), bank = base;
node > 0;
node = fdt_next_subnode(blob, node), bank++) {
- struct exynos_gpio_platdata *plat;
+ struct exynos_gpio_plat *plat;
struct udevice *dev;
fdt_addr_t reg;
int ret;
@@ -332,13 +332,11 @@ static int gpio_exynos_bind(struct udevice *parent)
return -ENOMEM;
plat->bank_name = fdt_get_name(blob, node, NULL);
- ret = device_bind(parent, parent->driver,
- plat->bank_name, plat, -1, &dev);
+ ret = device_bind(parent, parent->driver, plat->bank_name, plat,
+ offset_to_ofnode(node), &dev);
if (ret)
return ret;
- dev_set_of_offset(dev, node);
-
reg = dev_read_addr(dev);
if (reg != FDT_ADDR_T_NONE)
bank = (struct s5p_gpio_bank *)((ulong)base + reg);
@@ -367,7 +365,7 @@ U_BOOT_DRIVER(gpio_exynos) = {
.of_match = exynos_gpio_ids,
.bind = gpio_exynos_bind,
.probe = gpio_exynos_probe,
- .priv_auto_alloc_size = sizeof(struct exynos_bank_info),
+ .priv_auto = sizeof(struct exynos_bank_info),
.ops = &gpio_exynos_ops,
};
#endif