linux-leds.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up
@ 2023-05-24 12:46 Henning Schild
  2023-05-24 12:46 ` [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables Henning Schild
                   ` (5 more replies)
  0 siblings, 6 replies; 18+ messages in thread
From: Henning Schild @ 2023-05-24 12:46 UTC (permalink / raw)
  To: Pavel Machek, Lee Jones, Hans de Goede, Mark Gross,
	Andy Shevchenko, linux-kernel, linux-leds, platform-driver-x86
  Cc: Henning Schild

changes since v3:
 - add terminator entries to all gpio lookup tables as new p1

changes since v2:
 - some more style changes from review

changes since v1:
 - move from header- to -core.c-based implementation
 - style changes from review

This series mainly splits the one GPIO driver into two. The split allows
to clearly model runtime and compile time dependencies on the GPIO chip
drivers.

p2 is kind of not too related to that split but also prepares for more
GPIO based drivers to come.

p3 takes the driver we had and puts some of its content into a -core,
to be used by the two drivers.

p4 deals with more fine-grained configuration posibilities and compile
time dependencies.

Henning Schild (4):
  leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  leds: simatic-ipc-leds-gpio: move two extra gpio pins into another
    table
  leds: simatic-ipc-leds-gpio: split up into multiple drivers
  leds: simatic-ipc-leds-gpio: introduce more Kconfig switches

 drivers/leds/simple/Kconfig                   |  31 +++-
 drivers/leds/simple/Makefile                  |   5 +-
 .../simple/simatic-ipc-leds-gpio-apollolake.c |  66 +++++++++
 .../leds/simple/simatic-ipc-leds-gpio-core.c  | 104 +++++++++++++
 .../simple/simatic-ipc-leds-gpio-f7188x.c     |  66 +++++++++
 drivers/leds/simple/simatic-ipc-leds-gpio.c   | 139 ------------------
 drivers/leds/simple/simatic-ipc-leds-gpio.h   |  22 +++
 drivers/leds/simple/simatic-ipc-leds.c        |   1 -
 drivers/platform/x86/simatic-ipc.c            |   7 +-
 9 files changed, 293 insertions(+), 148 deletions(-)
 create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-apollolake.c
 create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-core.c
 create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-f7188x.c
 delete mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.c
 create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.h

-- 
2.39.3


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

* [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  2023-05-24 12:46 [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Henning Schild
@ 2023-05-24 12:46 ` Henning Schild
  2023-05-27  8:54   ` Andy Shevchenko
  2023-06-08 17:25   ` Lee Jones
  2023-05-24 12:46 ` [PATCH v4 2/4] leds: simatic-ipc-leds-gpio: move two extra gpio pins into another table Henning Schild
                   ` (4 subsequent siblings)
  5 siblings, 2 replies; 18+ messages in thread
From: Henning Schild @ 2023-05-24 12:46 UTC (permalink / raw)
  To: Pavel Machek, Lee Jones, Hans de Goede, Mark Gross,
	Andy Shevchenko, linux-kernel, linux-leds, platform-driver-x86
  Cc: Henning Schild

The entries do not seem to be stricly needed when the number of entries
is given via the number of LEDs. But adding them is a safeguard should
anyone ever iterate over the tables to their end, it also gets us in
line with other drivers that register "leds-gpio" tables.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 drivers/leds/simple/simatic-ipc-leds-gpio.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio.c b/drivers/leds/simple/simatic-ipc-leds-gpio.c
index e8d329b5a68c..1a1cfdad6218 100644
--- a/drivers/leds/simple/simatic-ipc-leds-gpio.c
+++ b/drivers/leds/simple/simatic-ipc-leds-gpio.c
@@ -28,6 +28,7 @@ static struct gpiod_lookup_table simatic_ipc_led_gpio_table_127e = {
 		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 51, NULL, 5, GPIO_ACTIVE_LOW),
 		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 56, NULL, 6, GPIO_ACTIVE_LOW),
 		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 59, NULL, 7, GPIO_ACTIVE_HIGH),
+		{} /* Terminating entry */
 	},
 };
 
@@ -42,6 +43,7 @@ static struct gpiod_lookup_table simatic_ipc_led_gpio_table_227g = {
 		GPIO_LOOKUP_IDX("gpio-f7188x-2", 5, NULL, 5, GPIO_ACTIVE_LOW),
 		GPIO_LOOKUP_IDX("gpio-f7188x-3", 6, NULL, 6, GPIO_ACTIVE_HIGH),
 		GPIO_LOOKUP_IDX("gpio-f7188x-3", 7, NULL, 7, GPIO_ACTIVE_HIGH),
+		{} /* Terminating entry */
 	}
 };
 
-- 
2.39.3


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

* [PATCH v4 2/4] leds: simatic-ipc-leds-gpio: move two extra gpio pins into another table
  2023-05-24 12:46 [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Henning Schild
  2023-05-24 12:46 ` [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables Henning Schild
@ 2023-05-24 12:46 ` Henning Schild
  2023-06-08 17:26   ` Lee Jones
  2023-05-24 12:46 ` [PATCH v4 3/4] leds: simatic-ipc-leds-gpio: split up into multiple drivers Henning Schild
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 18+ messages in thread
From: Henning Schild @ 2023-05-24 12:46 UTC (permalink / raw)
  To: Pavel Machek, Lee Jones, Hans de Goede, Mark Gross,
	Andy Shevchenko, linux-kernel, linux-leds, platform-driver-x86
  Cc: Henning Schild

There are two special pins needed to init the LEDs. We used to have them
at the end of the gpiod_lookup table to give to "leds-gpio". A cleaner
way is to have a dedicated table for the special pins.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 drivers/leds/simple/simatic-ipc-leds-gpio.c | 28 ++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio.c b/drivers/leds/simple/simatic-ipc-leds-gpio.c
index 1a1cfdad6218..0f1fde44e8d9 100644
--- a/drivers/leds/simple/simatic-ipc-leds-gpio.c
+++ b/drivers/leds/simple/simatic-ipc-leds-gpio.c
@@ -16,6 +16,7 @@
 #include <linux/platform_data/x86/simatic-ipc-base.h>
 
 static struct gpiod_lookup_table *simatic_ipc_led_gpio_table;
+static struct gpiod_lookup_table *simatic_ipc_led_gpio_table_extra;
 
 static struct gpiod_lookup_table simatic_ipc_led_gpio_table_127e = {
 	.dev_id = "leds-gpio",
@@ -26,6 +27,13 @@ static struct gpiod_lookup_table simatic_ipc_led_gpio_table_127e = {
 		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 58, NULL, 3, GPIO_ACTIVE_LOW),
 		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 60, NULL, 4, GPIO_ACTIVE_LOW),
 		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 51, NULL, 5, GPIO_ACTIVE_LOW),
+		{} /* Terminating entry */
+	},
+};
+
+static struct gpiod_lookup_table simatic_ipc_led_gpio_table_127e_extra = {
+	.dev_id = NULL, /* Filled during initialization */
+	.table = {
 		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 56, NULL, 6, GPIO_ACTIVE_LOW),
 		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 59, NULL, 7, GPIO_ACTIVE_HIGH),
 		{} /* Terminating entry */
@@ -41,10 +49,17 @@ static struct gpiod_lookup_table simatic_ipc_led_gpio_table_227g = {
 		GPIO_LOOKUP_IDX("gpio-f7188x-2", 3, NULL, 3, GPIO_ACTIVE_LOW),
 		GPIO_LOOKUP_IDX("gpio-f7188x-2", 4, NULL, 4, GPIO_ACTIVE_LOW),
 		GPIO_LOOKUP_IDX("gpio-f7188x-2", 5, NULL, 5, GPIO_ACTIVE_LOW),
+		{} /* Terminating entry */
+	},
+};
+
+static struct gpiod_lookup_table simatic_ipc_led_gpio_table_227g_extra = {
+	.dev_id = NULL, /* Filled during initialization */
+	.table = {
 		GPIO_LOOKUP_IDX("gpio-f7188x-3", 6, NULL, 6, GPIO_ACTIVE_HIGH),
 		GPIO_LOOKUP_IDX("gpio-f7188x-3", 7, NULL, 7, GPIO_ACTIVE_HIGH),
 		{} /* Terminating entry */
-	}
+	},
 };
 
 static const struct gpio_led simatic_ipc_gpio_leds[] = {
@@ -66,6 +81,7 @@ static struct platform_device *simatic_leds_pdev;
 static int simatic_ipc_leds_gpio_remove(struct platform_device *pdev)
 {
 	gpiod_remove_lookup_table(simatic_ipc_led_gpio_table);
+	gpiod_remove_lookup_table(simatic_ipc_led_gpio_table_extra);
 	platform_device_unregister(simatic_leds_pdev);
 
 	return 0;
@@ -74,6 +90,7 @@ static int simatic_ipc_leds_gpio_remove(struct platform_device *pdev)
 static int simatic_ipc_leds_gpio_probe(struct platform_device *pdev)
 {
 	const struct simatic_ipc_platform *plat = pdev->dev.platform_data;
+	struct device *dev = &pdev->dev;
 	struct gpio_desc *gpiod;
 	int err;
 
@@ -82,12 +99,14 @@ static int simatic_ipc_leds_gpio_probe(struct platform_device *pdev)
 		if (!IS_ENABLED(CONFIG_PINCTRL_BROXTON))
 			return -ENODEV;
 		simatic_ipc_led_gpio_table = &simatic_ipc_led_gpio_table_127e;
+		simatic_ipc_led_gpio_table_extra = &simatic_ipc_led_gpio_table_127e_extra;
 		break;
 	case SIMATIC_IPC_DEVICE_227G:
 		if (!IS_ENABLED(CONFIG_GPIO_F7188X))
 			return -ENODEV;
 		request_module("gpio-f7188x");
 		simatic_ipc_led_gpio_table = &simatic_ipc_led_gpio_table_227g;
+		simatic_ipc_led_gpio_table_extra = &simatic_ipc_led_gpio_table_227g_extra;
 		break;
 	default:
 		return -ENODEV;
@@ -103,8 +122,11 @@ static int simatic_ipc_leds_gpio_probe(struct platform_device *pdev)
 		goto out;
 	}
 
+	simatic_ipc_led_gpio_table_extra->dev_id = dev_name(dev);
+	gpiod_add_lookup_table(simatic_ipc_led_gpio_table_extra);
+
 	/* PM_BIOS_BOOT_N */
-	gpiod = gpiod_get_index(&simatic_leds_pdev->dev, NULL, 6, GPIOD_OUT_LOW);
+	gpiod = gpiod_get_index(dev, NULL, 6, GPIOD_OUT_LOW);
 	if (IS_ERR(gpiod)) {
 		err = PTR_ERR(gpiod);
 		goto out;
@@ -112,7 +134,7 @@ static int simatic_ipc_leds_gpio_probe(struct platform_device *pdev)
 	gpiod_put(gpiod);
 
 	/* PM_WDT_OUT */
-	gpiod = gpiod_get_index(&simatic_leds_pdev->dev, NULL, 7, GPIOD_OUT_LOW);
+	gpiod = gpiod_get_index(dev, NULL, 7, GPIOD_OUT_LOW);
 	if (IS_ERR(gpiod)) {
 		err = PTR_ERR(gpiod);
 		goto out;
-- 
2.39.3


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

* [PATCH v4 3/4] leds: simatic-ipc-leds-gpio: split up into multiple drivers
  2023-05-24 12:46 [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Henning Schild
  2023-05-24 12:46 ` [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables Henning Schild
  2023-05-24 12:46 ` [PATCH v4 2/4] leds: simatic-ipc-leds-gpio: move two extra gpio pins into another table Henning Schild
@ 2023-05-24 12:46 ` Henning Schild
  2023-06-08 17:27   ` Lee Jones
  2023-05-24 12:46 ` [PATCH v4 4/4] leds: simatic-ipc-leds-gpio: introduce more Kconfig switches Henning Schild
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 18+ messages in thread
From: Henning Schild @ 2023-05-24 12:46 UTC (permalink / raw)
  To: Pavel Machek, Lee Jones, Hans de Goede, Mark Gross,
	Andy Shevchenko, linux-kernel, linux-leds, platform-driver-x86
  Cc: Henning Schild

In order to clearly describe the dependencies between the GPIO
controller drivers and the users the driver is split up into a core,
two drivers and a common header.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 drivers/leds/simple/Makefile                  |   4 +-
 .../simple/simatic-ipc-leds-gpio-apollolake.c |  66 +++++++
 .../leds/simple/simatic-ipc-leds-gpio-core.c  | 104 +++++++++++
 .../simple/simatic-ipc-leds-gpio-f7188x.c     |  66 +++++++
 drivers/leds/simple/simatic-ipc-leds-gpio.c   | 163 ------------------
 drivers/leds/simple/simatic-ipc-leds-gpio.h   |  22 +++
 drivers/leds/simple/simatic-ipc-leds.c        |   1 -
 drivers/platform/x86/simatic-ipc.c            |   7 +-
 8 files changed, 265 insertions(+), 168 deletions(-)
 create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-apollolake.c
 create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-core.c
 create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-f7188x.c
 delete mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.c
 create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.h

diff --git a/drivers/leds/simple/Makefile b/drivers/leds/simple/Makefile
index 1c7ef5e1324b..ed9057f7b6da 100644
--- a/drivers/leds/simple/Makefile
+++ b/drivers/leds/simple/Makefile
@@ -1,3 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
 obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)	+= simatic-ipc-leds.o
-obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)	+= simatic-ipc-leds-gpio.o
+obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)  += simatic-ipc-leds-gpio-core.o
+obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)	+= simatic-ipc-leds-gpio-apollolake.o
+obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)	+= simatic-ipc-leds-gpio-f7188x.o
diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio-apollolake.c b/drivers/leds/simple/simatic-ipc-leds-gpio-apollolake.c
new file mode 100644
index 000000000000..e1c712729dcf
--- /dev/null
+++ b/drivers/leds/simple/simatic-ipc-leds-gpio-apollolake.c
@@ -0,0 +1,66 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Siemens SIMATIC IPC driver for GPIO based LEDs
+ *
+ * Copyright (c) Siemens AG, 2023
+ *
+ * Author:
+ *  Henning Schild <henning.schild@siemens.com>
+ */
+
+#include <linux/gpio/machine.h>
+#include <linux/gpio/consumer.h>
+#include <linux/leds.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/platform_data/x86/simatic-ipc-base.h>
+
+#include "simatic-ipc-leds-gpio.h"
+
+static struct gpiod_lookup_table simatic_ipc_led_gpio_table = {
+	.dev_id = "leds-gpio",
+	.table = {
+		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 52, NULL, 0, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 53, NULL, 1, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 57, NULL, 2, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 58, NULL, 3, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 60, NULL, 4, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 51, NULL, 5, GPIO_ACTIVE_LOW),
+		{} /* Terminating entry */
+	},
+};
+
+static struct gpiod_lookup_table simatic_ipc_led_gpio_table_extra = {
+	.dev_id = NULL, /* Filled during initialization */
+	.table = {
+		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 56, NULL, 6, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 59, NULL, 7, GPIO_ACTIVE_HIGH),
+		{} /* Terminating entry */
+	},
+};
+
+static int simatic_ipc_leds_gpio_apollolake_probe(struct platform_device *pdev)
+{
+	return simatic_ipc_leds_gpio_probe(pdev, &simatic_ipc_led_gpio_table,
+					   &simatic_ipc_led_gpio_table_extra);
+}
+
+static int simatic_ipc_leds_gpio_apollolake_remove(struct platform_device *pdev)
+{
+	return simatic_ipc_leds_gpio_remove(pdev, &simatic_ipc_led_gpio_table,
+					    &simatic_ipc_led_gpio_table_extra);
+}
+
+static struct platform_driver simatic_ipc_led_gpio_apollolake_driver = {
+	.probe = simatic_ipc_leds_gpio_apollolake_probe,
+	.remove = simatic_ipc_leds_gpio_apollolake_remove,
+	.driver = {
+		.name = KBUILD_MODNAME,
+	},
+};
+module_platform_driver(simatic_ipc_led_gpio_apollolake_driver);
+
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" KBUILD_MODNAME);
+MODULE_SOFTDEP("pre: simatic-ipc-leds-gpio-core platform:apollolake-pinctrl");
+MODULE_AUTHOR("Henning Schild <henning.schild@siemens.com>");
diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio-core.c b/drivers/leds/simple/simatic-ipc-leds-gpio-core.c
new file mode 100644
index 000000000000..2a21b663df87
--- /dev/null
+++ b/drivers/leds/simple/simatic-ipc-leds-gpio-core.c
@@ -0,0 +1,104 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Siemens SIMATIC IPC driver for GPIO based LEDs
+ *
+ * Copyright (c) Siemens AG, 2023
+ *
+ * Author:
+ *  Henning Schild <henning.schild@siemens.com>
+ */
+
+#include <linux/gpio/machine.h>
+#include <linux/gpio/consumer.h>
+#include <linux/leds.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/platform_data/x86/simatic-ipc-base.h>
+
+#include "simatic-ipc-leds-gpio.h"
+
+static struct platform_device *simatic_leds_pdev;
+
+static const struct gpio_led simatic_ipc_gpio_leds[] = {
+	{ .name = "red:" LED_FUNCTION_STATUS "-1" },
+	{ .name = "green:" LED_FUNCTION_STATUS "-1" },
+	{ .name = "red:" LED_FUNCTION_STATUS "-2" },
+	{ .name = "green:" LED_FUNCTION_STATUS "-2" },
+	{ .name = "red:" LED_FUNCTION_STATUS "-3" },
+	{ .name = "green:" LED_FUNCTION_STATUS "-3" },
+};
+
+static const struct gpio_led_platform_data simatic_ipc_gpio_leds_pdata = {
+	.num_leds	= ARRAY_SIZE(simatic_ipc_gpio_leds),
+	.leds		= simatic_ipc_gpio_leds,
+};
+
+int simatic_ipc_leds_gpio_remove(struct platform_device *pdev,
+				 struct gpiod_lookup_table *table,
+				 struct gpiod_lookup_table *table_extra)
+{
+	gpiod_remove_lookup_table(table);
+	gpiod_remove_lookup_table(table_extra);
+	platform_device_unregister(simatic_leds_pdev);
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(simatic_ipc_leds_gpio_remove);
+
+int simatic_ipc_leds_gpio_probe(struct platform_device *pdev,
+				struct gpiod_lookup_table *table,
+				struct gpiod_lookup_table *table_extra)
+{
+	const struct simatic_ipc_platform *plat = pdev->dev.platform_data;
+	struct device *dev = &pdev->dev;
+	struct gpio_desc *gpiod;
+	int err;
+
+	switch (plat->devmode) {
+	case SIMATIC_IPC_DEVICE_127E:
+	case SIMATIC_IPC_DEVICE_227G:
+		break;
+	default:
+		return -ENODEV;
+	}
+
+	gpiod_add_lookup_table(table);
+	simatic_leds_pdev = platform_device_register_resndata(NULL,
+		"leds-gpio", PLATFORM_DEVID_NONE, NULL, 0,
+		&simatic_ipc_gpio_leds_pdata,
+		sizeof(simatic_ipc_gpio_leds_pdata));
+	if (IS_ERR(simatic_leds_pdev)) {
+		err = PTR_ERR(simatic_leds_pdev);
+		goto out;
+	}
+
+	table_extra->dev_id = dev_name(dev);
+	gpiod_add_lookup_table(table_extra);
+
+	/* PM_BIOS_BOOT_N */
+	gpiod = gpiod_get_index(dev, NULL, 6, GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod)) {
+		err = PTR_ERR(gpiod);
+		goto out;
+	}
+	gpiod_put(gpiod);
+
+	/* PM_WDT_OUT */
+	gpiod = gpiod_get_index(dev, NULL, 7, GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod)) {
+		err = PTR_ERR(gpiod);
+		goto out;
+	}
+	gpiod_put(gpiod);
+
+	return 0;
+out:
+	simatic_ipc_leds_gpio_remove(pdev, table, table_extra);
+
+	return err;
+}
+EXPORT_SYMBOL_GPL(simatic_ipc_leds_gpio_probe);
+
+MODULE_LICENSE("GPL v2");
+MODULE_SOFTDEP("pre: platform:leds-gpio");
+MODULE_AUTHOR("Henning Schild <henning.schild@siemens.com>");
diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio-f7188x.c b/drivers/leds/simple/simatic-ipc-leds-gpio-f7188x.c
new file mode 100644
index 000000000000..583a6b6c7c22
--- /dev/null
+++ b/drivers/leds/simple/simatic-ipc-leds-gpio-f7188x.c
@@ -0,0 +1,66 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Siemens SIMATIC IPC driver for GPIO based LEDs
+ *
+ * Copyright (c) Siemens AG, 2023
+ *
+ * Author:
+ *  Henning Schild <henning.schild@siemens.com>
+ */
+
+#include <linux/gpio/machine.h>
+#include <linux/gpio/consumer.h>
+#include <linux/leds.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/platform_data/x86/simatic-ipc-base.h>
+
+#include "simatic-ipc-leds-gpio.h"
+
+static struct gpiod_lookup_table simatic_ipc_led_gpio_table = {
+	.dev_id = "leds-gpio",
+	.table = {
+		GPIO_LOOKUP_IDX("gpio-f7188x-2", 0, NULL, 0, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("gpio-f7188x-2", 1, NULL, 1, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("gpio-f7188x-2", 2, NULL, 2, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("gpio-f7188x-2", 3, NULL, 3, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("gpio-f7188x-2", 4, NULL, 4, GPIO_ACTIVE_LOW),
+		GPIO_LOOKUP_IDX("gpio-f7188x-2", 5, NULL, 5, GPIO_ACTIVE_LOW),
+		{} /* Terminating entry */
+	},
+};
+
+static struct gpiod_lookup_table simatic_ipc_led_gpio_table_extra = {
+	.dev_id = NULL, /* Filled during initialization */
+	.table = {
+		GPIO_LOOKUP_IDX("gpio-f7188x-3", 6, NULL, 6, GPIO_ACTIVE_HIGH),
+		GPIO_LOOKUP_IDX("gpio-f7188x-3", 7, NULL, 7, GPIO_ACTIVE_HIGH),
+		{} /* Terminating entry */
+	},
+};
+
+static int simatic_ipc_leds_gpio_f7188x_probe(struct platform_device *pdev)
+{
+	return simatic_ipc_leds_gpio_probe(pdev, &simatic_ipc_led_gpio_table,
+					   &simatic_ipc_led_gpio_table_extra);
+}
+
+static int simatic_ipc_leds_gpio_f7188x_remove(struct platform_device *pdev)
+{
+	return simatic_ipc_leds_gpio_remove(pdev, &simatic_ipc_led_gpio_table,
+					    &simatic_ipc_led_gpio_table_extra);
+}
+
+static struct platform_driver simatic_ipc_led_gpio_driver = {
+	.probe = simatic_ipc_leds_gpio_f7188x_probe,
+	.remove = simatic_ipc_leds_gpio_f7188x_remove,
+	.driver = {
+		.name = KBUILD_MODNAME,
+	},
+};
+module_platform_driver(simatic_ipc_led_gpio_driver);
+
+MODULE_LICENSE("GPL v2");
+MODULE_ALIAS("platform:" KBUILD_MODNAME);
+MODULE_SOFTDEP("pre: simatic-ipc-leds-gpio-core gpio_f7188x");
+MODULE_AUTHOR("Henning Schild <henning.schild@siemens.com>");
diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio.c b/drivers/leds/simple/simatic-ipc-leds-gpio.c
deleted file mode 100644
index 0f1fde44e8d9..000000000000
--- a/drivers/leds/simple/simatic-ipc-leds-gpio.c
+++ /dev/null
@@ -1,163 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Siemens SIMATIC IPC driver for GPIO based LEDs
- *
- * Copyright (c) Siemens AG, 2022
- *
- * Authors:
- *  Henning Schild <henning.schild@siemens.com>
- */
-
-#include <linux/gpio/machine.h>
-#include <linux/gpio/consumer.h>
-#include <linux/leds.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/platform_data/x86/simatic-ipc-base.h>
-
-static struct gpiod_lookup_table *simatic_ipc_led_gpio_table;
-static struct gpiod_lookup_table *simatic_ipc_led_gpio_table_extra;
-
-static struct gpiod_lookup_table simatic_ipc_led_gpio_table_127e = {
-	.dev_id = "leds-gpio",
-	.table = {
-		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 52, NULL, 0, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 53, NULL, 1, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 57, NULL, 2, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 58, NULL, 3, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 60, NULL, 4, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 51, NULL, 5, GPIO_ACTIVE_LOW),
-		{} /* Terminating entry */
-	},
-};
-
-static struct gpiod_lookup_table simatic_ipc_led_gpio_table_127e_extra = {
-	.dev_id = NULL, /* Filled during initialization */
-	.table = {
-		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 56, NULL, 6, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 59, NULL, 7, GPIO_ACTIVE_HIGH),
-		{} /* Terminating entry */
-	},
-};
-
-static struct gpiod_lookup_table simatic_ipc_led_gpio_table_227g = {
-	.dev_id = "leds-gpio",
-	.table = {
-		GPIO_LOOKUP_IDX("gpio-f7188x-2", 0, NULL, 0, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("gpio-f7188x-2", 1, NULL, 1, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("gpio-f7188x-2", 2, NULL, 2, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("gpio-f7188x-2", 3, NULL, 3, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("gpio-f7188x-2", 4, NULL, 4, GPIO_ACTIVE_LOW),
-		GPIO_LOOKUP_IDX("gpio-f7188x-2", 5, NULL, 5, GPIO_ACTIVE_LOW),
-		{} /* Terminating entry */
-	},
-};
-
-static struct gpiod_lookup_table simatic_ipc_led_gpio_table_227g_extra = {
-	.dev_id = NULL, /* Filled during initialization */
-	.table = {
-		GPIO_LOOKUP_IDX("gpio-f7188x-3", 6, NULL, 6, GPIO_ACTIVE_HIGH),
-		GPIO_LOOKUP_IDX("gpio-f7188x-3", 7, NULL, 7, GPIO_ACTIVE_HIGH),
-		{} /* Terminating entry */
-	},
-};
-
-static const struct gpio_led simatic_ipc_gpio_leds[] = {
-	{ .name = "red:" LED_FUNCTION_STATUS "-1" },
-	{ .name = "green:" LED_FUNCTION_STATUS "-1" },
-	{ .name = "red:" LED_FUNCTION_STATUS "-2" },
-	{ .name = "green:" LED_FUNCTION_STATUS "-2" },
-	{ .name = "red:" LED_FUNCTION_STATUS "-3" },
-	{ .name = "green:" LED_FUNCTION_STATUS "-3" },
-};
-
-static const struct gpio_led_platform_data simatic_ipc_gpio_leds_pdata = {
-	.num_leds	= ARRAY_SIZE(simatic_ipc_gpio_leds),
-	.leds		= simatic_ipc_gpio_leds,
-};
-
-static struct platform_device *simatic_leds_pdev;
-
-static int simatic_ipc_leds_gpio_remove(struct platform_device *pdev)
-{
-	gpiod_remove_lookup_table(simatic_ipc_led_gpio_table);
-	gpiod_remove_lookup_table(simatic_ipc_led_gpio_table_extra);
-	platform_device_unregister(simatic_leds_pdev);
-
-	return 0;
-}
-
-static int simatic_ipc_leds_gpio_probe(struct platform_device *pdev)
-{
-	const struct simatic_ipc_platform *plat = pdev->dev.platform_data;
-	struct device *dev = &pdev->dev;
-	struct gpio_desc *gpiod;
-	int err;
-
-	switch (plat->devmode) {
-	case SIMATIC_IPC_DEVICE_127E:
-		if (!IS_ENABLED(CONFIG_PINCTRL_BROXTON))
-			return -ENODEV;
-		simatic_ipc_led_gpio_table = &simatic_ipc_led_gpio_table_127e;
-		simatic_ipc_led_gpio_table_extra = &simatic_ipc_led_gpio_table_127e_extra;
-		break;
-	case SIMATIC_IPC_DEVICE_227G:
-		if (!IS_ENABLED(CONFIG_GPIO_F7188X))
-			return -ENODEV;
-		request_module("gpio-f7188x");
-		simatic_ipc_led_gpio_table = &simatic_ipc_led_gpio_table_227g;
-		simatic_ipc_led_gpio_table_extra = &simatic_ipc_led_gpio_table_227g_extra;
-		break;
-	default:
-		return -ENODEV;
-	}
-
-	gpiod_add_lookup_table(simatic_ipc_led_gpio_table);
-	simatic_leds_pdev = platform_device_register_resndata(NULL,
-		"leds-gpio", PLATFORM_DEVID_NONE, NULL, 0,
-		&simatic_ipc_gpio_leds_pdata,
-		sizeof(simatic_ipc_gpio_leds_pdata));
-	if (IS_ERR(simatic_leds_pdev)) {
-		err = PTR_ERR(simatic_leds_pdev);
-		goto out;
-	}
-
-	simatic_ipc_led_gpio_table_extra->dev_id = dev_name(dev);
-	gpiod_add_lookup_table(simatic_ipc_led_gpio_table_extra);
-
-	/* PM_BIOS_BOOT_N */
-	gpiod = gpiod_get_index(dev, NULL, 6, GPIOD_OUT_LOW);
-	if (IS_ERR(gpiod)) {
-		err = PTR_ERR(gpiod);
-		goto out;
-	}
-	gpiod_put(gpiod);
-
-	/* PM_WDT_OUT */
-	gpiod = gpiod_get_index(dev, NULL, 7, GPIOD_OUT_LOW);
-	if (IS_ERR(gpiod)) {
-		err = PTR_ERR(gpiod);
-		goto out;
-	}
-	gpiod_put(gpiod);
-
-	return 0;
-out:
-	simatic_ipc_leds_gpio_remove(pdev);
-
-	return err;
-}
-
-static struct platform_driver simatic_ipc_led_gpio_driver = {
-	.probe = simatic_ipc_leds_gpio_probe,
-	.remove = simatic_ipc_leds_gpio_remove,
-	.driver = {
-		.name = KBUILD_MODNAME,
-	}
-};
-module_platform_driver(simatic_ipc_led_gpio_driver);
-
-MODULE_LICENSE("GPL v2");
-MODULE_ALIAS("platform:" KBUILD_MODNAME);
-MODULE_SOFTDEP("pre: platform:leds-gpio");
-MODULE_AUTHOR("Henning Schild <henning.schild@siemens.com>");
diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio.h b/drivers/leds/simple/simatic-ipc-leds-gpio.h
new file mode 100644
index 000000000000..bf258c32f83d
--- /dev/null
+++ b/drivers/leds/simple/simatic-ipc-leds-gpio.h
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Siemens SIMATIC IPC driver for GPIO based LEDs
+ *
+ * Copyright (c) Siemens AG, 2023
+ *
+ * Author:
+ *  Henning Schild <henning.schild@siemens.com>
+ */
+
+#ifndef _SIMATIC_IPC_LEDS_GPIO_H
+#define _SIMATIC_IPC_LEDS_GPIO_H
+
+int simatic_ipc_leds_gpio_probe(struct platform_device *pdev,
+				struct gpiod_lookup_table *table,
+				struct gpiod_lookup_table *table_extra);
+
+int simatic_ipc_leds_gpio_remove(struct platform_device *pdev,
+				 struct gpiod_lookup_table *table,
+				 struct gpiod_lookup_table *table_extra);
+
+#endif /* _SIMATIC_IPC_LEDS_GPIO_H */
diff --git a/drivers/leds/simple/simatic-ipc-leds.c b/drivers/leds/simple/simatic-ipc-leds.c
index 4894c228c165..2124f6d09930 100644
--- a/drivers/leds/simple/simatic-ipc-leds.c
+++ b/drivers/leds/simple/simatic-ipc-leds.c
@@ -126,7 +126,6 @@ static struct platform_driver simatic_ipc_led_driver = {
 		.name = KBUILD_MODNAME,
 	}
 };
-
 module_platform_driver(simatic_ipc_led_driver);
 
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/platform/x86/simatic-ipc.c b/drivers/platform/x86/simatic-ipc.c
index b3622419cd1a..c773995b230d 100644
--- a/drivers/platform/x86/simatic-ipc.c
+++ b/drivers/platform/x86/simatic-ipc.c
@@ -68,9 +68,10 @@ static int register_platform_devices(u32 station_id)
 	}
 
 	if (ledmode != SIMATIC_IPC_DEVICE_NONE) {
-		if (ledmode == SIMATIC_IPC_DEVICE_127E ||
-		    ledmode == SIMATIC_IPC_DEVICE_227G)
-			pdevname = KBUILD_MODNAME "_leds_gpio";
+		if (ledmode == SIMATIC_IPC_DEVICE_127E)
+			pdevname = KBUILD_MODNAME "_leds_gpio_apollolake";
+		if (ledmode == SIMATIC_IPC_DEVICE_227G)
+			pdevname = KBUILD_MODNAME "_leds_gpio_f7188x";
 		platform_data.devmode = ledmode;
 		ipc_led_platform_device =
 			platform_device_register_data(NULL,
-- 
2.39.3


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

* [PATCH v4 4/4] leds: simatic-ipc-leds-gpio: introduce more Kconfig switches
  2023-05-24 12:46 [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Henning Schild
                   ` (2 preceding siblings ...)
  2023-05-24 12:46 ` [PATCH v4 3/4] leds: simatic-ipc-leds-gpio: split up into multiple drivers Henning Schild
@ 2023-05-24 12:46 ` Henning Schild
  2023-06-08 17:28   ` Lee Jones
  2023-05-25 10:11 ` [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Hans de Goede
  2023-05-27  8:58 ` Andy Shevchenko
  5 siblings, 1 reply; 18+ messages in thread
From: Henning Schild @ 2023-05-24 12:46 UTC (permalink / raw)
  To: Pavel Machek, Lee Jones, Hans de Goede, Mark Gross,
	Andy Shevchenko, linux-kernel, linux-leds, platform-driver-x86
  Cc: Henning Schild

To describe the dependency chain better and allow for potential
fine-grained config tuning, introduce Kconfig switch for the individual
GPIO based drivers.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/leds/simple/Kconfig  | 31 ++++++++++++++++++++++++++++---
 drivers/leds/simple/Makefile |  7 +++----
 2 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/drivers/leds/simple/Kconfig b/drivers/leds/simple/Kconfig
index fd2b8225d926..44fa0f93cb3b 100644
--- a/drivers/leds/simple/Kconfig
+++ b/drivers/leds/simple/Kconfig
@@ -1,11 +1,36 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config LEDS_SIEMENS_SIMATIC_IPC
 	tristate "LED driver for Siemens Simatic IPCs"
-	depends on LEDS_GPIO
 	depends on SIEMENS_SIMATIC_IPC
 	help
 	  This option enables support for the LEDs of several Industrial PCs
 	  from Siemens.
 
-	  To compile this driver as a module, choose M here: the modules
-	  will be called simatic-ipc-leds and simatic-ipc-leds-gpio.
+	  To compile this driver as a module, choose M here: the module
+	  will be called simatic-ipc-leds.
+
+config LEDS_SIEMENS_SIMATIC_IPC_APOLLOLAKE
+	tristate "LED driver for Siemens Simatic IPCs based on Intel Apollo Lake GPIO"
+	depends on LEDS_GPIO
+	depends on PINCTRL_BROXTON
+	depends on SIEMENS_SIMATIC_IPC
+	default LEDS_SIEMENS_SIMATIC_IPC
+	help
+	  This option enables support for the LEDs of several Industrial PCs
+	  from Siemens based on Apollo Lake GPIO i.e. IPC127E.
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called simatic-ipc-leds-gpio-apollolake.
+
+config LEDS_SIEMENS_SIMATIC_IPC_F7188X
+	tristate "LED driver for Siemens Simatic IPCs based on Nuvoton GPIO"
+	depends on LEDS_GPIO
+	depends on GPIO_F7188X
+	depends on SIEMENS_SIMATIC_IPC
+	default LEDS_SIEMENS_SIMATIC_IPC
+	help
+	  This option enables support for the LEDs of several Industrial PCs
+	  from Siemens based on Nuvoton GPIO i.e. IPC227G.
+
+	  To compile this driver as a module, choose M here: the module
+	  will be called simatic-ipc-leds-gpio-f7188x.
diff --git a/drivers/leds/simple/Makefile b/drivers/leds/simple/Makefile
index ed9057f7b6da..e3e840cea275 100644
--- a/drivers/leds/simple/Makefile
+++ b/drivers/leds/simple/Makefile
@@ -1,5 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0
-obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)	+= simatic-ipc-leds.o
-obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)  += simatic-ipc-leds-gpio-core.o
-obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)	+= simatic-ipc-leds-gpio-apollolake.o
-obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)	+= simatic-ipc-leds-gpio-f7188x.o
+obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC)			+= simatic-ipc-leds.o
+obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC_APOLLOLAKE)	+= simatic-ipc-leds-gpio-core.o simatic-ipc-leds-gpio-apollolake.o
+obj-$(CONFIG_LEDS_SIEMENS_SIMATIC_IPC_F7188X)		+= simatic-ipc-leds-gpio-core.o simatic-ipc-leds-gpio-f7188x.o
-- 
2.39.3


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

* Re: [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up
  2023-05-24 12:46 [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Henning Schild
                   ` (3 preceding siblings ...)
  2023-05-24 12:46 ` [PATCH v4 4/4] leds: simatic-ipc-leds-gpio: introduce more Kconfig switches Henning Schild
@ 2023-05-25 10:11 ` Hans de Goede
  2023-05-27  8:58 ` Andy Shevchenko
  5 siblings, 0 replies; 18+ messages in thread
From: Hans de Goede @ 2023-05-25 10:11 UTC (permalink / raw)
  To: Henning Schild, Pavel Machek, Lee Jones, Mark Gross,
	Andy Shevchenko, linux-kernel, linux-leds, platform-driver-x86

Hi,

On 5/24/23 14:46, Henning Schild wrote:
> changes since v3:
>  - add terminator entries to all gpio lookup tables as new p1

Thank you. The entire series looks good to me:

Acked-by: Hans de Goede <hdegoede@redhat.com>

for the entire series.

Regards,

Hans





> 
> changes since v2:
>  - some more style changes from review
> 
> changes since v1:
>  - move from header- to -core.c-based implementation
>  - style changes from review
> 
> This series mainly splits the one GPIO driver into two. The split allows
> to clearly model runtime and compile time dependencies on the GPIO chip
> drivers.
> 
> p2 is kind of not too related to that split but also prepares for more
> GPIO based drivers to come.
> 
> p3 takes the driver we had and puts some of its content into a -core,
> to be used by the two drivers.
> 
> p4 deals with more fine-grained configuration posibilities and compile
> time dependencies.
> 
> Henning Schild (4):
>   leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
>   leds: simatic-ipc-leds-gpio: move two extra gpio pins into another
>     table
>   leds: simatic-ipc-leds-gpio: split up into multiple drivers
>   leds: simatic-ipc-leds-gpio: introduce more Kconfig switches
> 
>  drivers/leds/simple/Kconfig                   |  31 +++-
>  drivers/leds/simple/Makefile                  |   5 +-
>  .../simple/simatic-ipc-leds-gpio-apollolake.c |  66 +++++++++
>  .../leds/simple/simatic-ipc-leds-gpio-core.c  | 104 +++++++++++++
>  .../simple/simatic-ipc-leds-gpio-f7188x.c     |  66 +++++++++
>  drivers/leds/simple/simatic-ipc-leds-gpio.c   | 139 ------------------
>  drivers/leds/simple/simatic-ipc-leds-gpio.h   |  22 +++
>  drivers/leds/simple/simatic-ipc-leds.c        |   1 -
>  drivers/platform/x86/simatic-ipc.c            |   7 +-
>  9 files changed, 293 insertions(+), 148 deletions(-)
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-apollolake.c
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-core.c
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-f7188x.c
>  delete mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.c
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.h
> 


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

* Re: [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  2023-05-24 12:46 ` [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables Henning Schild
@ 2023-05-27  8:54   ` Andy Shevchenko
  2023-05-30 15:11     ` Henning Schild
  2023-06-08 17:25   ` Lee Jones
  1 sibling, 1 reply; 18+ messages in thread
From: Andy Shevchenko @ 2023-05-27  8:54 UTC (permalink / raw)
  To: Henning Schild
  Cc: Pavel Machek, Lee Jones, Hans de Goede, Mark Gross, linux-kernel,
	linux-leds, platform-driver-x86

On Wed, May 24, 2023 at 02:46:25PM +0200, Henning Schild wrote:
> The entries do not seem to be stricly needed when the number of entries
> is given via the number of LEDs. But adding them is a safeguard should
> anyone ever iterate over the tables to their end, it also gets us in
> line with other drivers that register "leds-gpio" tables.

Reported-by?
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
>  drivers/leds/simple/simatic-ipc-leds-gpio.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio.c b/drivers/leds/simple/simatic-ipc-leds-gpio.c
> index e8d329b5a68c..1a1cfdad6218 100644
> --- a/drivers/leds/simple/simatic-ipc-leds-gpio.c
> +++ b/drivers/leds/simple/simatic-ipc-leds-gpio.c
> @@ -28,6 +28,7 @@ static struct gpiod_lookup_table simatic_ipc_led_gpio_table_127e = {
>  		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 51, NULL, 5, GPIO_ACTIVE_LOW),
>  		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 56, NULL, 6, GPIO_ACTIVE_LOW),
>  		GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 59, NULL, 7, GPIO_ACTIVE_HIGH),
> +		{} /* Terminating entry */
>  	},
>  };
>  
> @@ -42,6 +43,7 @@ static struct gpiod_lookup_table simatic_ipc_led_gpio_table_227g = {
>  		GPIO_LOOKUP_IDX("gpio-f7188x-2", 5, NULL, 5, GPIO_ACTIVE_LOW),
>  		GPIO_LOOKUP_IDX("gpio-f7188x-3", 6, NULL, 6, GPIO_ACTIVE_HIGH),
>  		GPIO_LOOKUP_IDX("gpio-f7188x-3", 7, NULL, 7, GPIO_ACTIVE_HIGH),
> +		{} /* Terminating entry */
>  	}
>  };
>  
> -- 
> 2.39.3
> 

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up
  2023-05-24 12:46 [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Henning Schild
                   ` (4 preceding siblings ...)
  2023-05-25 10:11 ` [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Hans de Goede
@ 2023-05-27  8:58 ` Andy Shevchenko
  5 siblings, 0 replies; 18+ messages in thread
From: Andy Shevchenko @ 2023-05-27  8:58 UTC (permalink / raw)
  To: Henning Schild
  Cc: Pavel Machek, Lee Jones, Hans de Goede, Mark Gross, linux-kernel,
	linux-leds, platform-driver-x86

On Wed, May 24, 2023 at 02:46:24PM +0200, Henning Schild wrote:
> changes since v3:
>  - add terminator entries to all gpio lookup tables as new p1
> 
> changes since v2:
>  - some more style changes from review
> 
> changes since v1:
>  - move from header- to -core.c-based implementation
>  - style changes from review
> 
> This series mainly splits the one GPIO driver into two. The split allows
> to clearly model runtime and compile time dependencies on the GPIO chip
> drivers.
> 
> p2 is kind of not too related to that split but also prepares for more
> GPIO based drivers to come.
> 
> p3 takes the driver we had and puts some of its content into a -core,
> to be used by the two drivers.
> 
> p4 deals with more fine-grained configuration posibilities and compile
> time dependencies.

For non-commented patches

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> Henning Schild (4):
>   leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
>   leds: simatic-ipc-leds-gpio: move two extra gpio pins into another
>     table
>   leds: simatic-ipc-leds-gpio: split up into multiple drivers
>   leds: simatic-ipc-leds-gpio: introduce more Kconfig switches
> 
>  drivers/leds/simple/Kconfig                   |  31 +++-
>  drivers/leds/simple/Makefile                  |   5 +-
>  .../simple/simatic-ipc-leds-gpio-apollolake.c |  66 +++++++++
>  .../leds/simple/simatic-ipc-leds-gpio-core.c  | 104 +++++++++++++
>  .../simple/simatic-ipc-leds-gpio-f7188x.c     |  66 +++++++++
>  drivers/leds/simple/simatic-ipc-leds-gpio.c   | 139 ------------------
>  drivers/leds/simple/simatic-ipc-leds-gpio.h   |  22 +++
>  drivers/leds/simple/simatic-ipc-leds.c        |   1 -
>  drivers/platform/x86/simatic-ipc.c            |   7 +-
>  9 files changed, 293 insertions(+), 148 deletions(-)
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-apollolake.c
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-core.c
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-f7188x.c
>  delete mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.c
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.h
> 
> -- 
> 2.39.3
> 

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  2023-05-27  8:54   ` Andy Shevchenko
@ 2023-05-30 15:11     ` Henning Schild
  2023-06-01 16:47       ` Andy Shevchenko
  0 siblings, 1 reply; 18+ messages in thread
From: Henning Schild @ 2023-05-30 15:11 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Pavel Machek, Lee Jones, Hans de Goede, Mark Gross, linux-kernel,
	linux-leds, platform-driver-x86

Am Sat, 27 May 2023 11:54:08 +0300
schrieb Andy Shevchenko <andriy.shevchenko@linux.intel.com>:

> On Wed, May 24, 2023 at 02:46:25PM +0200, Henning Schild wrote:
> > The entries do not seem to be stricly needed when the number of
> > entries is given via the number of LEDs. But adding them is a
> > safeguard should anyone ever iterate over the tables to their end,
> > it also gets us in line with other drivers that register
> > "leds-gpio" tables.  
> 
> Reported-by?
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

I think we could do

Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

on merge. But i would not want to send the whole series again for that
one line.

Thanks!
Henning

> > Signed-off-by: Henning Schild <henning.schild@siemens.com>
> > ---
> >  drivers/leds/simple/simatic-ipc-leds-gpio.c | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio.c
> > b/drivers/leds/simple/simatic-ipc-leds-gpio.c index
> > e8d329b5a68c..1a1cfdad6218 100644 ---
> > a/drivers/leds/simple/simatic-ipc-leds-gpio.c +++
> > b/drivers/leds/simple/simatic-ipc-leds-gpio.c @@ -28,6 +28,7 @@
> > static struct gpiod_lookup_table simatic_ipc_led_gpio_table_127e =
> > { GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 51, NULL, 5,
> > GPIO_ACTIVE_LOW), GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 56, NULL,
> > 6, GPIO_ACTIVE_LOW), GPIO_LOOKUP_IDX("apollolake-pinctrl.0", 59,
> > NULL, 7, GPIO_ACTIVE_HIGH),
> > +		{} /* Terminating entry */
> >  	},
> >  };
> >  
> > @@ -42,6 +43,7 @@ static struct gpiod_lookup_table
> > simatic_ipc_led_gpio_table_227g = {
> > GPIO_LOOKUP_IDX("gpio-f7188x-2", 5, NULL, 5, GPIO_ACTIVE_LOW),
> > GPIO_LOOKUP_IDX("gpio-f7188x-3", 6, NULL, 6, GPIO_ACTIVE_HIGH),
> > GPIO_LOOKUP_IDX("gpio-f7188x-3", 7, NULL, 7, GPIO_ACTIVE_HIGH),
> > +		{} /* Terminating entry */
> >  	}
> >  };
> >  
> > -- 
> > 2.39.3
> >   
> 


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

* Re: [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  2023-05-30 15:11     ` Henning Schild
@ 2023-06-01 16:47       ` Andy Shevchenko
  2023-06-08 17:30         ` Lee Jones
  0 siblings, 1 reply; 18+ messages in thread
From: Andy Shevchenko @ 2023-06-01 16:47 UTC (permalink / raw)
  To: Henning Schild
  Cc: Pavel Machek, Lee Jones, Hans de Goede, Mark Gross, linux-kernel,
	linux-leds, platform-driver-x86

On Tue, May 30, 2023 at 05:11:00PM +0200, Henning Schild wrote:
> Am Sat, 27 May 2023 11:54:08 +0300
> schrieb Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
> 
> > On Wed, May 24, 2023 at 02:46:25PM +0200, Henning Schild wrote:
> > > The entries do not seem to be stricly needed when the number of
> > > entries is given via the number of LEDs. But adding them is a
> > > safeguard should anyone ever iterate over the tables to their end,
> > > it also gets us in line with other drivers that register
> > > "leds-gpio" tables.  
> > 
> > Reported-by?
> > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> 
> I think we could do
> 
> Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> 
> on merge. But i would not want to send the whole series again for that
> one line.

Since you added it, `b4` will happily take it, I believe no manual work even
needed for that, thank you!

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  2023-05-24 12:46 ` [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables Henning Schild
  2023-05-27  8:54   ` Andy Shevchenko
@ 2023-06-08 17:25   ` Lee Jones
  1 sibling, 0 replies; 18+ messages in thread
From: Lee Jones @ 2023-06-08 17:25 UTC (permalink / raw)
  To: Henning Schild
  Cc: Pavel Machek, Hans de Goede, Mark Gross, Andy Shevchenko,
	linux-kernel, linux-leds, platform-driver-x86

On Wed, 24 May 2023, Henning Schild wrote:

> The entries do not seem to be stricly needed when the number of entries
> is given via the number of LEDs. But adding them is a safeguard should
> anyone ever iterate over the tables to their end, it also gets us in
> line with other drivers that register "leds-gpio" tables.
> 
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
>  drivers/leds/simple/simatic-ipc-leds-gpio.c | 2 ++
>  1 file changed, 2 insertions(+)

Applied, thanks

-- 
Lee Jones [李琼斯]

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

* Re: [PATCH v4 2/4] leds: simatic-ipc-leds-gpio: move two extra gpio pins into another table
  2023-05-24 12:46 ` [PATCH v4 2/4] leds: simatic-ipc-leds-gpio: move two extra gpio pins into another table Henning Schild
@ 2023-06-08 17:26   ` Lee Jones
  0 siblings, 0 replies; 18+ messages in thread
From: Lee Jones @ 2023-06-08 17:26 UTC (permalink / raw)
  To: Henning Schild
  Cc: Pavel Machek, Hans de Goede, Mark Gross, Andy Shevchenko,
	linux-kernel, linux-leds, platform-driver-x86

On Wed, 24 May 2023, Henning Schild wrote:

> There are two special pins needed to init the LEDs. We used to have them
> at the end of the gpiod_lookup table to give to "leds-gpio". A cleaner
> way is to have a dedicated table for the special pins.
> 
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
>  drivers/leds/simple/simatic-ipc-leds-gpio.c | 28 ++++++++++++++++++---
>  1 file changed, 25 insertions(+), 3 deletions(-)

Applied, thanks

-- 
Lee Jones [李琼斯]

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

* Re: [PATCH v4 3/4] leds: simatic-ipc-leds-gpio: split up into multiple drivers
  2023-05-24 12:46 ` [PATCH v4 3/4] leds: simatic-ipc-leds-gpio: split up into multiple drivers Henning Schild
@ 2023-06-08 17:27   ` Lee Jones
  0 siblings, 0 replies; 18+ messages in thread
From: Lee Jones @ 2023-06-08 17:27 UTC (permalink / raw)
  To: Henning Schild
  Cc: Pavel Machek, Hans de Goede, Mark Gross, Andy Shevchenko,
	linux-kernel, linux-leds, platform-driver-x86

On Wed, 24 May 2023, Henning Schild wrote:

> In order to clearly describe the dependencies between the GPIO
> controller drivers and the users the driver is split up into a core,
> two drivers and a common header.
> 
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
>  drivers/leds/simple/Makefile                  |   4 +-
>  .../simple/simatic-ipc-leds-gpio-apollolake.c |  66 +++++++
>  .../leds/simple/simatic-ipc-leds-gpio-core.c  | 104 +++++++++++
>  .../simple/simatic-ipc-leds-gpio-f7188x.c     |  66 +++++++
>  drivers/leds/simple/simatic-ipc-leds-gpio.c   | 163 ------------------
>  drivers/leds/simple/simatic-ipc-leds-gpio.h   |  22 +++
>  drivers/leds/simple/simatic-ipc-leds.c        |   1 -
>  drivers/platform/x86/simatic-ipc.c            |   7 +-
>  8 files changed, 265 insertions(+), 168 deletions(-)
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-apollolake.c
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-core.c
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio-f7188x.c
>  delete mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.c
>  create mode 100644 drivers/leds/simple/simatic-ipc-leds-gpio.h

Applied, thanks

-- 
Lee Jones [李琼斯]

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

* Re: [PATCH v4 4/4] leds: simatic-ipc-leds-gpio: introduce more Kconfig switches
  2023-05-24 12:46 ` [PATCH v4 4/4] leds: simatic-ipc-leds-gpio: introduce more Kconfig switches Henning Schild
@ 2023-06-08 17:28   ` Lee Jones
  0 siblings, 0 replies; 18+ messages in thread
From: Lee Jones @ 2023-06-08 17:28 UTC (permalink / raw)
  To: Henning Schild
  Cc: Pavel Machek, Hans de Goede, Mark Gross, Andy Shevchenko,
	linux-kernel, linux-leds, platform-driver-x86

On Wed, 24 May 2023, Henning Schild wrote:

> To describe the dependency chain better and allow for potential
> fine-grained config tuning, introduce Kconfig switch for the individual
> GPIO based drivers.
> 
> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> Acked-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/leds/simple/Kconfig  | 31 ++++++++++++++++++++++++++++---
>  drivers/leds/simple/Makefile |  7 +++----
>  2 files changed, 31 insertions(+), 7 deletions(-)

Applied, thanks

-- 
Lee Jones [李琼斯]

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

* Re: [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  2023-06-01 16:47       ` Andy Shevchenko
@ 2023-06-08 17:30         ` Lee Jones
  2023-06-09 14:25           ` Andy Shevchenko
  0 siblings, 1 reply; 18+ messages in thread
From: Lee Jones @ 2023-06-08 17:30 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Henning Schild, Pavel Machek, Hans de Goede, Mark Gross,
	linux-kernel, linux-leds, platform-driver-x86

On Thu, 01 Jun 2023, Andy Shevchenko wrote:

> On Tue, May 30, 2023 at 05:11:00PM +0200, Henning Schild wrote:
> > Am Sat, 27 May 2023 11:54:08 +0300
> > schrieb Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
> > 
> > > On Wed, May 24, 2023 at 02:46:25PM +0200, Henning Schild wrote:
> > > > The entries do not seem to be stricly needed when the number of
> > > > entries is given via the number of LEDs. But adding them is a
> > > > safeguard should anyone ever iterate over the tables to their end,
> > > > it also gets us in line with other drivers that register
> > > > "leds-gpio" tables.  
> > > 
> > > Reported-by?
> > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > 
> > I think we could do
> > 
> > Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > 
> > on merge. But i would not want to send the whole series again for that
> > one line.
> 
> Since you added it, `b4` will happily take it, I believe no manual work even
> needed for that, thank you!

b4 didn't pick this up.  Nor the whole-series Ack provided by Hans.

I added both manually.

-- 
Lee Jones [李琼斯]

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

* Re: [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  2023-06-08 17:30         ` Lee Jones
@ 2023-06-09 14:25           ` Andy Shevchenko
  2023-06-12 11:27             ` Lee Jones
  0 siblings, 1 reply; 18+ messages in thread
From: Andy Shevchenko @ 2023-06-09 14:25 UTC (permalink / raw)
  To: Lee Jones
  Cc: Henning Schild, Pavel Machek, Hans de Goede, Mark Gross,
	linux-kernel, linux-leds, platform-driver-x86

On Thu, Jun 08, 2023 at 06:30:27PM +0100, Lee Jones wrote:
> On Thu, 01 Jun 2023, Andy Shevchenko wrote:
> > On Tue, May 30, 2023 at 05:11:00PM +0200, Henning Schild wrote:
> > > Am Sat, 27 May 2023 11:54:08 +0300
> > > schrieb Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
> > > 
> > > > On Wed, May 24, 2023 at 02:46:25PM +0200, Henning Schild wrote:
> > > > > The entries do not seem to be stricly needed when the number of
> > > > > entries is given via the number of LEDs. But adding them is a
> > > > > safeguard should anyone ever iterate over the tables to their end,
> > > > > it also gets us in line with other drivers that register
> > > > > "leds-gpio" tables.  
> > > > 
> > > > Reported-by?
> > > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > 
> > > I think we could do
> > > 
> > > Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > 
> > > on merge. But i would not want to send the whole series again for that
> > > one line.
> > 
> > Since you added it, `b4` will happily take it, I believe no manual work even
> > needed for that, thank you!
> 
> b4 didn't pick this up.  Nor the whole-series Ack provided by Hans.
> 
> I added both manually.

There is an option to take this

  -t, --apply-cover-trailers
                        Apply trailers sent to the cover letter to all patches

have you tried it?

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  2023-06-09 14:25           ` Andy Shevchenko
@ 2023-06-12 11:27             ` Lee Jones
  2023-06-12 11:29               ` Lee Jones
  0 siblings, 1 reply; 18+ messages in thread
From: Lee Jones @ 2023-06-12 11:27 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Henning Schild, Pavel Machek, Hans de Goede, Mark Gross,
	linux-kernel, linux-leds, platform-driver-x86

On Fri, 09 Jun 2023, Andy Shevchenko wrote:

> On Thu, Jun 08, 2023 at 06:30:27PM +0100, Lee Jones wrote:
> > On Thu, 01 Jun 2023, Andy Shevchenko wrote:
> > > On Tue, May 30, 2023 at 05:11:00PM +0200, Henning Schild wrote:
> > > > Am Sat, 27 May 2023 11:54:08 +0300
> > > > schrieb Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
> > > > 
> > > > > On Wed, May 24, 2023 at 02:46:25PM +0200, Henning Schild wrote:
> > > > > > The entries do not seem to be stricly needed when the number of
> > > > > > entries is given via the number of LEDs. But adding them is a
> > > > > > safeguard should anyone ever iterate over the tables to their end,
> > > > > > it also gets us in line with other drivers that register
> > > > > > "leds-gpio" tables.  
> > > > > 
> > > > > Reported-by?
> > > > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > > 
> > > > I think we could do
> > > > 
> > > > Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > > 
> > > > on merge. But i would not want to send the whole series again for that
> > > > one line.
> > > 
> > > Since you added it, `b4` will happily take it, I believe no manual work even
> > > needed for that, thank you!
> > 
> > b4 didn't pick this up.  Nor the whole-series Ack provided by Hans.
> > 
> > I added both manually.
> 
> There is an option to take this
> 
>   -t, --apply-cover-trailers
>                         Apply trailers sent to the cover letter to all patches
> 
> have you tried it?

Doesn't look like it:

  b4 am -3 -slt -P_ -o - ${id} | git am -3 --reject

Can't remember if I had it before then removed it, or never had it.

I'll attempt to add it now and see what happens.

-- 
Lee Jones [李琼斯]

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

* Re: [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables
  2023-06-12 11:27             ` Lee Jones
@ 2023-06-12 11:29               ` Lee Jones
  0 siblings, 0 replies; 18+ messages in thread
From: Lee Jones @ 2023-06-12 11:29 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Henning Schild, Pavel Machek, Hans de Goede, Mark Gross,
	linux-kernel, linux-leds, platform-driver-x86

On Mon, 12 Jun 2023, Lee Jones wrote:

> On Fri, 09 Jun 2023, Andy Shevchenko wrote:
> 
> > On Thu, Jun 08, 2023 at 06:30:27PM +0100, Lee Jones wrote:
> > > On Thu, 01 Jun 2023, Andy Shevchenko wrote:
> > > > On Tue, May 30, 2023 at 05:11:00PM +0200, Henning Schild wrote:
> > > > > Am Sat, 27 May 2023 11:54:08 +0300
> > > > > schrieb Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
> > > > > 
> > > > > > On Wed, May 24, 2023 at 02:46:25PM +0200, Henning Schild wrote:
> > > > > > > The entries do not seem to be stricly needed when the number of
> > > > > > > entries is given via the number of LEDs. But adding them is a
> > > > > > > safeguard should anyone ever iterate over the tables to their end,
> > > > > > > it also gets us in line with other drivers that register
> > > > > > > "leds-gpio" tables.  
> > > > > > 
> > > > > > Reported-by?
> > > > > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > > > 
> > > > > I think we could do
> > > > > 
> > > > > Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > > > > 
> > > > > on merge. But i would not want to send the whole series again for that
> > > > > one line.
> > > > 
> > > > Since you added it, `b4` will happily take it, I believe no manual work even
> > > > needed for that, thank you!
> > > 
> > > b4 didn't pick this up.  Nor the whole-series Ack provided by Hans.
> > > 
> > > I added both manually.
> > 
> > There is an option to take this
> > 
> >   -t, --apply-cover-trailers
> >                         Apply trailers sent to the cover letter to all patches
> > 
> > have you tried it?
> 
> Doesn't look like it:
> 
>   b4 am -3 -slt -P_ -o - ${id} | git am -3 --reject

No wait - it's there.

> Can't remember if I had it before then removed it, or never had it.
> 
> I'll attempt to add it now and see what happens.

-- 
Lee Jones [李琼斯]

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

end of thread, other threads:[~2023-06-12 11:39 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-24 12:46 [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Henning Schild
2023-05-24 12:46 ` [PATCH v4 1/4] leds: simatic-ipc-leds-gpio: add terminating entries to gpio tables Henning Schild
2023-05-27  8:54   ` Andy Shevchenko
2023-05-30 15:11     ` Henning Schild
2023-06-01 16:47       ` Andy Shevchenko
2023-06-08 17:30         ` Lee Jones
2023-06-09 14:25           ` Andy Shevchenko
2023-06-12 11:27             ` Lee Jones
2023-06-12 11:29               ` Lee Jones
2023-06-08 17:25   ` Lee Jones
2023-05-24 12:46 ` [PATCH v4 2/4] leds: simatic-ipc-leds-gpio: move two extra gpio pins into another table Henning Schild
2023-06-08 17:26   ` Lee Jones
2023-05-24 12:46 ` [PATCH v4 3/4] leds: simatic-ipc-leds-gpio: split up into multiple drivers Henning Schild
2023-06-08 17:27   ` Lee Jones
2023-05-24 12:46 ` [PATCH v4 4/4] leds: simatic-ipc-leds-gpio: introduce more Kconfig switches Henning Schild
2023-06-08 17:28   ` Lee Jones
2023-05-25 10:11 ` [PATCH v4 0/4] leds: simatic-ipc-leds-gpio: split up Hans de Goede
2023-05-27  8:58 ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).