Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f9843709 authored by Tony Lindgren's avatar Tony Lindgren Committed by Lee Jones
Browse files

mfd: twl-core: Fix passing of platform data in the device tree case



Since we still need to rely on a mix of device tree initialized
drivers and legacy platform data initialize drivers, let's fix
the passing of platform data to twl4030-gpio.

As the twl4030 GPIO is initialized by twl-core.c, we need to register
the auxdata for twl4030 GPIO in twl-core.c.

Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 5e01dc7b
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -1133,6 +1133,11 @@ static int twl_remove(struct i2c_client *client)
	return 0;
}

static struct of_dev_auxdata twl_auxdata_lookup[] = {
	OF_DEV_AUXDATA("ti,twl4030-gpio", 0, "twl4030-gpio", NULL),
	{ /* sentinel */ },
};

/* NOTE: This driver only handles a single twl4030/tps659x0 chip */
static int
twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
@@ -1271,10 +1276,14 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
		twl_i2c_write_u8(TWL4030_MODULE_INTBR, temp, REG_GPPUPDCTR1);
	}

	if (node)
		status = of_platform_populate(node, NULL, NULL, &client->dev);
	else
	if (node) {
		if (pdata)
			twl_auxdata_lookup[0].platform_data = pdata->gpio;
		status = of_platform_populate(node, NULL, twl_auxdata_lookup,
					      &client->dev);
	} else {
		status = add_children(pdata, irq_base, id->driver_data);
	}

fail:
	if (status < 0)