Commit 7e2e6c57 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Samuel Ortiz

mfd: twl-core: Do not create dummy pdata when booted with DT

When booted with DT we can manage without the dummy pdata.
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent e581238f
...@@ -1165,6 +1165,11 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) ...@@ -1165,6 +1165,11 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
int status; int status;
unsigned i, num_slaves; unsigned i, num_slaves;
if (!node && !pdata) {
dev_err(&client->dev, "no platform data\n");
return -EINVAL;
}
pdev = platform_device_alloc(DRIVER_NAME, -1); pdev = platform_device_alloc(DRIVER_NAME, -1);
if (!pdev) { if (!pdev) {
dev_err(&client->dev, "can't alloc pdev\n"); dev_err(&client->dev, "can't alloc pdev\n");
...@@ -1177,28 +1182,6 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) ...@@ -1177,28 +1182,6 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
return status; return status;
} }
if (node && !pdata) {
/*
* XXX: Temporary pdata until the information is correctly
* retrieved by every TWL modules from DT.
*/
pdata = devm_kzalloc(&client->dev,
sizeof(struct twl4030_platform_data),
GFP_KERNEL);
if (!pdata) {
status = -ENOMEM;
goto free;
}
}
if (!pdata) {
dev_dbg(&client->dev, "no platform data?\n");
status = -EINVAL;
goto free;
}
platform_set_drvdata(pdev, pdata);
if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C) == 0) { if (i2c_check_functionality(client->adapter, I2C_FUNC_I2C) == 0) {
dev_dbg(&client->dev, "can't talk I2C?\n"); dev_dbg(&client->dev, "can't talk I2C?\n");
status = -EIO; status = -EIO;
...@@ -1264,7 +1247,7 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) ...@@ -1264,7 +1247,7 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
inuse = true; inuse = true;
/* setup clock framework */ /* setup clock framework */
clocks_init(&pdev->dev, pdata->clock); clocks_init(&pdev->dev, pdata ? pdata->clock : NULL);
/* read TWL IDCODE Register */ /* read TWL IDCODE Register */
if (twl_id == TWL4030_CLASS_ID) { if (twl_id == TWL4030_CLASS_ID) {
...@@ -1273,7 +1256,7 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id) ...@@ -1273,7 +1256,7 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
} }
/* load power event scripts */ /* load power event scripts */
if (IS_ENABLED(CONFIG_TWL4030_POWER) && pdata->power) if (IS_ENABLED(CONFIG_TWL4030_POWER) && pdata && pdata->power)
twl4030_power_init(pdata->power); twl4030_power_init(pdata->power);
/* Maybe init the T2 Interrupt subsystem */ /* Maybe init the T2 Interrupt subsystem */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment