Commit 880d3fcb authored by Biju Das's avatar Biju Das Committed by Linus Walleij
Browse files

pinctrl: mcp23s08_i2c: Extend match support for OF tables



The driver has OF match table, still it uses ID lookup table for
retrieving match data. Currently the driver is working on the
assumption that a I2C device registered via OF will always match a
legacy I2C device ID. The correct approach is to have an OF device ID
table using of_device_match_data() if the devices are registered via OF.

Signed-off-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20231001150113.7752-2-biju.das.jz@bp.renesas.com


Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 0aa5369f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -10,16 +10,16 @@

static int mcp230xx_probe(struct i2c_client *client)
{
	const struct i2c_device_id *id = i2c_client_get_device_id(client);
	struct device *dev = &client->dev;
	unsigned int type = id->driver_data;
	struct mcp23s08 *mcp;
	unsigned int type;
	int ret;

	mcp = devm_kzalloc(dev, sizeof(*mcp), GFP_KERNEL);
	if (!mcp)
		return -ENOMEM;

	type = (uintptr_t)i2c_get_match_data(client);
	switch (type) {
	case MCP_TYPE_008:
		mcp->regmap = devm_regmap_init_i2c(client, &mcp23x08_regmap);