public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] Match data improvements for mcp23s08 driver
@ 2023-09-09 12:18 Biju Das
  2023-09-09 12:19 ` [PATCH v2 1/4] pinctrl: mcp23s08_i2c: Extend match support for OF tables Biju Das
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Biju Das @ 2023-09-09 12:18 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Biju Das, linux-gpio, linux-kernel, Biju Das, Andy Shevchenko

This patch series aims to add match data improvements for mcp23s08 driver.
This patch series is only compile tested.

v1->v2:
 * Arranged variable declaration in reverse xmas tree for patch#1.
 * Updated commit description for patch#2.
 * Dropped printing 'type' in error path for i2c_get_match_data().
 * Added similar simplification for SPI driver.
Biju Das (4):
  pinctrl: mcp23s08_i2c: Extend match support for OF tables
  pinctrl: mcp23s08_i2c: Simplify probe()
  pinctrl: mcp23s08_spi: Simplify probe()
  pinctrl: mcp23s08_spi: Simplify mcp23s08_spi_regmap_init()

 drivers/pinctrl/pinctrl-mcp23s08_i2c.c | 101 ++++++++++++-------------
 drivers/pinctrl/pinctrl-mcp23s08_spi.c | 101 +++++++++++++------------
 2 files changed, 100 insertions(+), 102 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 1/4] pinctrl: mcp23s08_i2c: Extend match support for OF tables
  2023-09-09 12:18 [PATCH v2 0/4] Match data improvements for mcp23s08 driver Biju Das
@ 2023-09-09 12:19 ` Biju Das
  2023-09-09 12:19 ` [PATCH v2 2/4] pinctrl: mcp23s08_i2c: Simplify probe() Biju Das
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Biju Das @ 2023-09-09 12:19 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Biju Das, linux-gpio, linux-kernel, Biju Das, Andy Shevchenko

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: Biju Das <biju.das.jz@bp.renesas.com>
---
v1->v2:
 * Arranged variable declaration in reverse xmas tree.
---
 drivers/pinctrl/pinctrl-mcp23s08_i2c.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-mcp23s08_i2c.c b/drivers/pinctrl/pinctrl-mcp23s08_i2c.c
index 3dd1bd8e73eb..41ea2650a7e4 100644
--- a/drivers/pinctrl/pinctrl-mcp23s08_i2c.c
+++ b/drivers/pinctrl/pinctrl-mcp23s08_i2c.c
@@ -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);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/4] pinctrl: mcp23s08_i2c: Simplify probe()
  2023-09-09 12:18 [PATCH v2 0/4] Match data improvements for mcp23s08 driver Biju Das
  2023-09-09 12:19 ` [PATCH v2 1/4] pinctrl: mcp23s08_i2c: Extend match support for OF tables Biju Das
@ 2023-09-09 12:19 ` Biju Das
  2023-09-09 12:19 ` [PATCH v2 3/4] pinctrl: mcp23s08_spi: " Biju Das
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Biju Das @ 2023-09-09 12:19 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Biju Das, linux-gpio, linux-kernel, Biju Das, Andy Shevchenko

Add struct mcp23s08_i2c_info and simplify probe() by replacing
match data 'type' with 'struct mcp23s08_i2c_info'.

While at it, replace 'dev_err()'->'dev_err_probe()' and drop printing
'type' in error path for i2c_get_match_data().

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v1->v2:
 * Updated commit description
 * Dropped printing 'type' in error path for i2c_get_match_data().
---
 drivers/pinctrl/pinctrl-mcp23s08_i2c.c | 101 ++++++++++++-------------
 1 file changed, 49 insertions(+), 52 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-mcp23s08_i2c.c b/drivers/pinctrl/pinctrl-mcp23s08_i2c.c
index 41ea2650a7e4..34b2cfb45860 100644
--- a/drivers/pinctrl/pinctrl-mcp23s08_i2c.c
+++ b/drivers/pinctrl/pinctrl-mcp23s08_i2c.c
@@ -8,52 +8,40 @@
 
 #include "pinctrl-mcp23s08.h"
 
+struct mcp23s08_i2c_info {
+	const struct regmap_config *regmap;
+	const char *label;
+	unsigned int type;
+	u16 ngpio;
+	bool reg_shift;
+};
+
 static int mcp230xx_probe(struct i2c_client *client)
 {
+	const struct mcp23s08_i2c_info *info;
 	struct device *dev = &client->dev;
 	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);
-		mcp->reg_shift = 0;
-		mcp->chip.ngpio = 8;
-		mcp->chip.label = "mcp23008";
-		break;
-
-	case MCP_TYPE_017:
-		mcp->regmap = devm_regmap_init_i2c(client, &mcp23x17_regmap);
-		mcp->reg_shift = 1;
-		mcp->chip.ngpio = 16;
-		mcp->chip.label = "mcp23017";
-		break;
-
-	case MCP_TYPE_018:
-		mcp->regmap = devm_regmap_init_i2c(client, &mcp23x17_regmap);
-		mcp->reg_shift = 1;
-		mcp->chip.ngpio = 16;
-		mcp->chip.label = "mcp23018";
-		break;
-
-	default:
-		dev_err(dev, "invalid device type (%d)\n", type);
-		return -EINVAL;
-	}
+	info = i2c_get_match_data(client);
+	if (!info)
+		return dev_err_probe(dev, -EINVAL, "invalid device type\n");
 
+	mcp->reg_shift = info->reg_shift;
+	mcp->chip.ngpio = info->ngpio;
+	mcp->chip.label = info->label;
+	mcp->regmap = devm_regmap_init_i2c(client, info->regmap);
 	if (IS_ERR(mcp->regmap))
 		return PTR_ERR(mcp->regmap);
 
 	mcp->irq = client->irq;
 	mcp->pinctrl_desc.name = "mcp23xxx-pinctrl";
 
-	ret = mcp23s08_probe_one(mcp, dev, client->addr, type, -1);
+	ret = mcp23s08_probe_one(mcp, dev, client->addr, info->type, -1);
 	if (ret)
 		return ret;
 
@@ -62,36 +50,45 @@ static int mcp230xx_probe(struct i2c_client *client)
 	return 0;
 }
 
+static const struct mcp23s08_i2c_info mcp23s08_i2c_0008 = {
+	.regmap = &mcp23x08_regmap,
+	.label = "mcp23008",
+	.type = MCP_TYPE_008,
+	.ngpio = 8,
+	.reg_shift = 0,
+};
+
+static const struct mcp23s08_i2c_info mcp23s08_i2c_0017 = {
+	.regmap = &mcp23x17_regmap,
+	.label = "mcp23017",
+	.type = MCP_TYPE_017,
+	.ngpio = 16,
+	.reg_shift = 1,
+};
+
+static const struct mcp23s08_i2c_info mcp23s08_i2c_0018 = {
+	.regmap = &mcp23x17_regmap,
+	.label = "mcp23018",
+	.type = MCP_TYPE_018,
+	.ngpio = 16,
+	.reg_shift = 1,
+};
+
 static const struct i2c_device_id mcp230xx_id[] = {
-	{ "mcp23008", MCP_TYPE_008 },
-	{ "mcp23017", MCP_TYPE_017 },
-	{ "mcp23018", MCP_TYPE_018 },
+	{ "mcp23008", (kernel_ulong_t)&mcp23s08_i2c_0008 },
+	{ "mcp23017", (kernel_ulong_t)&mcp23s08_i2c_0017 },
+	{ "mcp23018", (kernel_ulong_t)&mcp23s08_i2c_0018 },
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, mcp230xx_id);
 
 static const struct of_device_id mcp23s08_i2c_of_match[] = {
-	{
-		.compatible = "microchip,mcp23008",
-		.data = (void *) MCP_TYPE_008,
-	},
-	{
-		.compatible = "microchip,mcp23017",
-		.data = (void *) MCP_TYPE_017,
-	},
-	{
-		.compatible = "microchip,mcp23018",
-		.data = (void *) MCP_TYPE_018,
-	},
+	{ .compatible = "microchip,mcp23008", .data = &mcp23s08_i2c_0008 },
+	{ .compatible = "microchip,mcp23017", .data = &mcp23s08_i2c_0017 },
+	{ .compatible = "microchip,mcp23018", .data = &mcp23s08_i2c_0018 },
 /* NOTE: The use of the mcp prefix is deprecated and will be removed. */
-	{
-		.compatible = "mcp,mcp23008",
-		.data = (void *) MCP_TYPE_008,
-	},
-	{
-		.compatible = "mcp,mcp23017",
-		.data = (void *) MCP_TYPE_017,
-	},
+	{ .compatible = "mcp,mcp23008", .data = &mcp23s08_i2c_0008 },
+	{ .compatible = "mcp,mcp23017", .data = &mcp23s08_i2c_0017 },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, mcp23s08_i2c_of_match);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 3/4] pinctrl: mcp23s08_spi: Simplify probe()
  2023-09-09 12:18 [PATCH v2 0/4] Match data improvements for mcp23s08 driver Biju Das
  2023-09-09 12:19 ` [PATCH v2 1/4] pinctrl: mcp23s08_i2c: Extend match support for OF tables Biju Das
  2023-09-09 12:19 ` [PATCH v2 2/4] pinctrl: mcp23s08_i2c: Simplify probe() Biju Das
@ 2023-09-09 12:19 ` Biju Das
  2023-09-09 12:19 ` [PATCH v2 4/4] pinctrl: mcp23s08_spi: Simplify mcp23s08_spi_regmap_init() Biju Das
  2023-09-11 10:10 ` [PATCH v2 0/4] Match data improvements for mcp23s08 driver Andy Shevchenko
  4 siblings, 0 replies; 6+ messages in thread
From: Biju Das @ 2023-09-09 12:19 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Biju Das, linux-gpio, linux-kernel, Biju Das, Andy Shevchenko

Simpilfy probe() by replacing device_get_match_data() and ID lookup for
retrieving match data by spi_get_device_match_data().

While at it, replace data type of variable type from 'int'->'unsigned int'
and declare variables following a reverse christmas tree order.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2:
 * New patch.
---
 drivers/pinctrl/pinctrl-mcp23s08_spi.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-mcp23s08_spi.c b/drivers/pinctrl/pinctrl-mcp23s08_spi.c
index ea059b9c5542..caf528284d07 100644
--- a/drivers/pinctrl/pinctrl-mcp23s08_spi.c
+++ b/drivers/pinctrl/pinctrl-mcp23s08_spi.c
@@ -143,22 +143,17 @@ static int mcp23s08_spi_regmap_init(struct mcp23s08 *mcp, struct device *dev,
 
 static int mcp23s08_probe(struct spi_device *spi)
 {
-	struct device *dev = &spi->dev;
 	struct mcp23s08_driver_data *data;
+	struct device *dev = &spi->dev;
 	unsigned long spi_present_mask;
-	const void *match;
-	unsigned int addr;
 	unsigned int ngpio = 0;
+	unsigned int type;
+	unsigned int addr;
 	int chips;
-	int type;
 	int ret;
 	u32 v;
 
-	match = device_get_match_data(dev);
-	if (match)
-		type = (int)(uintptr_t)match;
-	else
-		type = spi_get_device_id(spi)->driver_data;
+	type = (uintptr_t)spi_get_device_match_data(spi);
 
 	ret = device_property_read_u32(dev, "microchip,spi-present-mask", &v);
 	if (ret) {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 4/4] pinctrl: mcp23s08_spi: Simplify mcp23s08_spi_regmap_init()
  2023-09-09 12:18 [PATCH v2 0/4] Match data improvements for mcp23s08 driver Biju Das
                   ` (2 preceding siblings ...)
  2023-09-09 12:19 ` [PATCH v2 3/4] pinctrl: mcp23s08_spi: " Biju Das
@ 2023-09-09 12:19 ` Biju Das
  2023-09-11 10:10 ` [PATCH v2 0/4] Match data improvements for mcp23s08 driver Andy Shevchenko
  4 siblings, 0 replies; 6+ messages in thread
From: Biju Das @ 2023-09-09 12:19 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Biju Das, linux-gpio, linux-kernel, Biju Das, Andy Shevchenko

Add struct mcp23s08_spi_info and simplify mcp23s08_spi_regmap_init() by
replacing match data 'type' with 'struct mcp23s08_spi_info'.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v2:
 * New patch
---
 drivers/pinctrl/pinctrl-mcp23s08_spi.c | 92 ++++++++++++++------------
 1 file changed, 49 insertions(+), 43 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-mcp23s08_spi.c b/drivers/pinctrl/pinctrl-mcp23s08_spi.c
index caf528284d07..b7f5b4109007 100644
--- a/drivers/pinctrl/pinctrl-mcp23s08_spi.c
+++ b/drivers/pinctrl/pinctrl-mcp23s08_spi.c
@@ -11,6 +11,13 @@
 
 #define MCP_MAX_DEV_PER_CS	8
 
+struct mcp23s08_spi_info {
+	const struct regmap_config *regmap;
+	unsigned int type;
+	u16 ngpio;
+	bool reg_shift;
+};
+
 /*
  * A given spi_device can represent up to eight mcp23sxx chips
  * sharing the same chipselect but using different addresses
@@ -80,21 +87,18 @@ static const struct regmap_bus mcp23sxx_spi_regmap = {
 };
 
 static int mcp23s08_spi_regmap_init(struct mcp23s08 *mcp, struct device *dev,
-				    unsigned int addr, unsigned int type)
+				    unsigned int addr,
+				    const struct mcp23s08_spi_info *info)
 {
-	const struct regmap_config *config;
 	struct regmap_config *copy;
 	const char *name;
 
-	switch (type) {
+	switch (info->type) {
 	case MCP_TYPE_S08:
-		mcp->reg_shift = 0;
-		mcp->chip.ngpio = 8;
 		mcp->chip.label = devm_kasprintf(dev, GFP_KERNEL, "mcp23s08.%d", addr);
 		if (!mcp->chip.label)
 			return -ENOMEM;
 
-		config = &mcp23x08_regmap;
 		name = devm_kasprintf(dev, GFP_KERNEL, "%d", addr);
 		if (!name)
 			return -ENOMEM;
@@ -102,13 +106,10 @@ static int mcp23s08_spi_regmap_init(struct mcp23s08 *mcp, struct device *dev,
 		break;
 
 	case MCP_TYPE_S17:
-		mcp->reg_shift = 1;
-		mcp->chip.ngpio = 16;
 		mcp->chip.label = devm_kasprintf(dev, GFP_KERNEL, "mcp23s17.%d", addr);
 		if (!mcp->chip.label)
 			return -ENOMEM;
 
-		config = &mcp23x17_regmap;
 		name = devm_kasprintf(dev, GFP_KERNEL, "%d", addr);
 		if (!name)
 			return -ENOMEM;
@@ -116,20 +117,18 @@ static int mcp23s08_spi_regmap_init(struct mcp23s08 *mcp, struct device *dev,
 		break;
 
 	case MCP_TYPE_S18:
-		mcp->reg_shift = 1;
-		mcp->chip.ngpio = 16;
 		mcp->chip.label = "mcp23s18";
-
-		config = &mcp23x17_regmap;
-		name = config->name;
+		name = info->regmap->name;
 		break;
 
 	default:
-		dev_err(dev, "invalid device type (%d)\n", type);
+		dev_err(dev, "invalid device type (%d)\n", info->type);
 		return -EINVAL;
 	}
 
-	copy = devm_kmemdup(dev, config, sizeof(*config), GFP_KERNEL);
+	mcp->reg_shift = info->reg_shift;
+	mcp->chip.ngpio = info->ngpio;
+	copy = devm_kmemdup(dev, info->regmap, sizeof(*info->regmap), GFP_KERNEL);
 	if (!copy)
 		return -ENOMEM;
 
@@ -143,17 +142,17 @@ static int mcp23s08_spi_regmap_init(struct mcp23s08 *mcp, struct device *dev,
 
 static int mcp23s08_probe(struct spi_device *spi)
 {
+	const struct mcp23s08_spi_info *info;
 	struct mcp23s08_driver_data *data;
 	struct device *dev = &spi->dev;
 	unsigned long spi_present_mask;
 	unsigned int ngpio = 0;
-	unsigned int type;
 	unsigned int addr;
 	int chips;
 	int ret;
 	u32 v;
 
-	type = (uintptr_t)spi_get_device_match_data(spi);
+	info = spi_get_device_match_data(spi);
 
 	ret = device_property_read_u32(dev, "microchip,spi-present-mask", &v);
 	if (ret) {
@@ -182,7 +181,7 @@ static int mcp23s08_probe(struct spi_device *spi)
 		data->mcp[addr] = &data->chip[--chips];
 		data->mcp[addr]->irq = spi->irq;
 
-		ret = mcp23s08_spi_regmap_init(data->mcp[addr], dev, addr, type);
+		ret = mcp23s08_spi_regmap_init(data->mcp[addr], dev, addr, info);
 		if (ret)
 			return ret;
 
@@ -192,7 +191,8 @@ static int mcp23s08_probe(struct spi_device *spi)
 		if (!data->mcp[addr]->pinctrl_desc.name)
 			return -ENOMEM;
 
-		ret = mcp23s08_probe_one(data->mcp[addr], dev, 0x40 | (addr << 1), type, -1);
+		ret = mcp23s08_probe_one(data->mcp[addr], dev, 0x40 | (addr << 1),
+					 info->type, -1);
 		if (ret < 0)
 			return ret;
 
@@ -203,36 +203,42 @@ static int mcp23s08_probe(struct spi_device *spi)
 	return 0;
 }
 
+static const struct mcp23s08_spi_info mcp23s08_spi_s08 = {
+	.regmap = &mcp23x08_regmap,
+	.type = MCP_TYPE_S08,
+	.ngpio = 8,
+	.reg_shift = 0,
+};
+
+static const struct mcp23s08_spi_info mcp23s08_spi_s17 = {
+	.regmap = &mcp23x17_regmap,
+	.type = MCP_TYPE_S17,
+	.ngpio = 16,
+	.reg_shift = 1,
+};
+
+static const struct mcp23s08_spi_info mcp23s08_spi_s18 = {
+	.regmap = &mcp23x17_regmap,
+	.type = MCP_TYPE_S18,
+	.ngpio = 16,
+	.reg_shift = 1,
+};
+
 static const struct spi_device_id mcp23s08_ids[] = {
-	{ "mcp23s08", MCP_TYPE_S08 },
-	{ "mcp23s17", MCP_TYPE_S17 },
-	{ "mcp23s18", MCP_TYPE_S18 },
+	{ "mcp23s08", (kernel_ulong_t)&mcp23s08_spi_s08 },
+	{ "mcp23s17", (kernel_ulong_t)&mcp23s08_spi_s17 },
+	{ "mcp23s18", (kernel_ulong_t)&mcp23s08_spi_s18 },
 	{ }
 };
 MODULE_DEVICE_TABLE(spi, mcp23s08_ids);
 
 static const struct of_device_id mcp23s08_spi_of_match[] = {
-	{
-		.compatible = "microchip,mcp23s08",
-		.data = (void *) MCP_TYPE_S08,
-	},
-	{
-		.compatible = "microchip,mcp23s17",
-		.data = (void *) MCP_TYPE_S17,
-	},
-	{
-		.compatible = "microchip,mcp23s18",
-		.data = (void *) MCP_TYPE_S18,
-	},
+	{ .compatible = "microchip,mcp23s08", .data = &mcp23s08_spi_s08 },
+	{ .compatible = "microchip,mcp23s17", .data = &mcp23s08_spi_s17 },
+	{ .compatible = "microchip,mcp23s18", .data = &mcp23s08_spi_s18 },
 /* NOTE: The use of the mcp prefix is deprecated and will be removed. */
-	{
-		.compatible = "mcp,mcp23s08",
-		.data = (void *) MCP_TYPE_S08,
-	},
-	{
-		.compatible = "mcp,mcp23s17",
-		.data = (void *) MCP_TYPE_S17,
-	},
+	{ .compatible = "mcp,mcp23s08", .data = &mcp23s08_spi_s08 },
+	{ .compatible = "mcp,mcp23s17", .data = &mcp23s08_spi_s17 },
 	{ }
 };
 MODULE_DEVICE_TABLE(of, mcp23s08_spi_of_match);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 0/4] Match data improvements for mcp23s08 driver
  2023-09-09 12:18 [PATCH v2 0/4] Match data improvements for mcp23s08 driver Biju Das
                   ` (3 preceding siblings ...)
  2023-09-09 12:19 ` [PATCH v2 4/4] pinctrl: mcp23s08_spi: Simplify mcp23s08_spi_regmap_init() Biju Das
@ 2023-09-11 10:10 ` Andy Shevchenko
  4 siblings, 0 replies; 6+ messages in thread
From: Andy Shevchenko @ 2023-09-11 10:10 UTC (permalink / raw)
  To: Biju Das; +Cc: Linus Walleij, linux-gpio, linux-kernel, Biju Das

On Sat, Sep 09, 2023 at 01:18:59PM +0100, Biju Das wrote:
> This patch series aims to add match data improvements for mcp23s08 driver.
> This patch series is only compile tested.

Now, do you see the common grounds for unifying two data structure types you
created?

IN the common header you may introduce a type and use it in the both files.

For the patches 1 & 3 (the API simplification):
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-09-11 22:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-09 12:18 [PATCH v2 0/4] Match data improvements for mcp23s08 driver Biju Das
2023-09-09 12:19 ` [PATCH v2 1/4] pinctrl: mcp23s08_i2c: Extend match support for OF tables Biju Das
2023-09-09 12:19 ` [PATCH v2 2/4] pinctrl: mcp23s08_i2c: Simplify probe() Biju Das
2023-09-09 12:19 ` [PATCH v2 3/4] pinctrl: mcp23s08_spi: " Biju Das
2023-09-09 12:19 ` [PATCH v2 4/4] pinctrl: mcp23s08_spi: Simplify mcp23s08_spi_regmap_init() Biju Das
2023-09-11 10:10 ` [PATCH v2 0/4] Match data improvements for mcp23s08 driver Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox