Commit ea057871 authored by Biju Das's avatar Biju Das Committed by Bartosz Golaszewski
Browse files

gpio: pca953x: Use i2c_get_match_data()



Replace device_get_match_data() and id lookup for retrieving match data
by i2c_get_match_data().

Signed-off-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
parent 1d2a22fa
Loading
Loading
Loading
Loading
+3 −15
Original line number Diff line number Diff line
@@ -1051,7 +1051,6 @@ static int device_pca957x_init(struct pca953x_chip *chip, u32 invert)

static int pca953x_probe(struct i2c_client *client)
{
	const struct i2c_device_id *i2c_id = i2c_client_get_device_id(client);
	struct pca953x_platform_data *pdata;
	struct pca953x_chip *chip;
	int irq_base = 0;
@@ -1090,6 +1089,9 @@ static int pca953x_probe(struct i2c_client *client)
	}

	chip->client = client;
	chip->driver_data = (uintptr_t)i2c_get_match_data(client);
	if (!chip->driver_data)
		return -ENODEV;

	reg = devm_regulator_get(&client->dev, "vcc");
	if (IS_ERR(reg))
@@ -1102,20 +1104,6 @@ static int pca953x_probe(struct i2c_client *client)
	}
	chip->regulator = reg;

	if (i2c_id) {
		chip->driver_data = i2c_id->driver_data;
	} else {
		const void *match;

		match = device_get_match_data(&client->dev);
		if (!match) {
			ret = -ENODEV;
			goto err_exit;
		}

		chip->driver_data = (uintptr_t)match;
	}

	i2c_set_clientdata(client, chip);

	pca953x_setup_gpio(chip, chip->driver_data & PCA_GPIO_MASK);