* [PATCH 0/4] ARM: sa1100: convert gpio-keys to software nodes
@ 2026-07-07 3:13 Dmitry Torokhov
2026-07-07 3:14 ` [PATCH 1/4] gpio: sa1100: register software node for GPIO controller Dmitry Torokhov
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Dmitry Torokhov @ 2026-07-07 3:13 UTC (permalink / raw)
To: Arnd Bergmann, Russell King, Linus Walleij, Bartosz Golaszewski, soc
Cc: linux-arm-kernel, linux-kernel, linux-gpio
This patch series converts StrongARM SA-1100 evaluation and handheld
boards (Assabet, Collie, and HP iPAQ H3xxx) from legacy platform data
(struct gpio_keys_platform_data) to static software nodes and device
properties.
The first patch registers a shared software node for the SA-1100 SoC
GPIO controller in drivers/gpio/gpio-sa1100.c, attaching its firmware
node directly to the GPIO chip prior to registration. The subsequent
patches convert the board setup files to define static software nodes
referencing the SoC GPIO controller directly, allowing pin bindings to
be resolved via the attached firmware node without relying on name
matching.
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
Dmitry Torokhov (4):
gpio: sa1100: register software node for GPIO controller
ARM: sa1100: assabet: convert gpio-keys to use software nodes
ARM: sa1100: collie: convert gpio-keys to use software nodes
ARM: sa1100: h3xxx: convert gpio-keys to use software nodes
arch/arm/mach-sa1100/assabet.c | 75 ++++++++++++++++++++++++++++--------------
arch/arm/mach-sa1100/collie.c | 74 +++++++++++++++++++++++++----------------
arch/arm/mach-sa1100/generic.h | 3 ++
arch/arm/mach-sa1100/h3xxx.c | 69 +++++++++++++++++++++++---------------
drivers/gpio/gpio-sa1100.c | 10 +++++-
5 files changed, 150 insertions(+), 81 deletions(-)
---
base-commit: 8e9685d3c41c35dd1b37df70d854137abcb2fbac
change-id: 20260705-sa1100-swnode-a2eebe973ebb
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/4] gpio: sa1100: register software node for GPIO controller
2026-07-07 3:13 [PATCH 0/4] ARM: sa1100: convert gpio-keys to software nodes Dmitry Torokhov
@ 2026-07-07 3:14 ` Dmitry Torokhov
2026-10-29 4:23 ` Guenter Roeck
2026-07-07 3:14 ` [PATCH 2/4] ARM: sa1100: assabet: convert gpio-keys to use software nodes Dmitry Torokhov
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Dmitry Torokhov @ 2026-07-07 3:14 UTC (permalink / raw)
To: Arnd Bergmann, Russell King, Linus Walleij, Bartosz Golaszewski, soc
Cc: linux-arm-kernel, linux-kernel, linux-gpio
Define and register a static software node (sa1100_gpiochip_node) for the
SA-1100 GPIO controller during sa1100_init_gpio(). Assign its firmware node
directly to the GPIO chip prior to calling gpiochip_add_data().
This allows StrongARM SA-1100 board setup files to reference the SoC GPIO
controller in property entries when converting legacy platform data to
software nodes, resolving pin bindings directly via the attached firmware
node without relying on name matching.
Assisted-by: Antigravity:gemini-3.5-flash
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
arch/arm/mach-sa1100/generic.h | 3 +++
drivers/gpio/gpio-sa1100.c | 10 +++++++++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-sa1100/generic.h b/arch/arm/mach-sa1100/generic.h
index 5fe0d4fc0f8c..3cfe3b647711 100644
--- a/arch/arm/mach-sa1100/generic.h
+++ b/arch/arm/mach-sa1100/generic.h
@@ -48,6 +48,9 @@ int sa11xx_clk_init(void);
struct gpiod_lookup_table;
void sa11x0_register_pcmcia(int socket, struct gpiod_lookup_table *);
+struct software_node;
+extern const struct software_node sa1100_gpiochip_node;
+
struct fixed_voltage_config;
struct regulator_consumer_supply;
int sa11x0_register_fixed_regulator(int n, struct fixed_voltage_config *cfg,
diff --git a/drivers/gpio/gpio-sa1100.c b/drivers/gpio/gpio-sa1100.c
index 1938ffa2f4f3..ffa73dd3b982 100644
--- a/drivers/gpio/gpio-sa1100.c
+++ b/drivers/gpio/gpio-sa1100.c
@@ -13,6 +13,11 @@
#include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/generic.h>
+#include <linux/property.h>
+
+const struct software_node sa1100_gpiochip_node = {
+ .name = "sa1100-gpio",
+};
struct sa1100_gpio_chip {
struct gpio_chip chip;
@@ -317,6 +322,7 @@ static const int sa1100_gpio_irqs[] __initconst = {
void __init sa1100_init_gpio(void)
{
struct sa1100_gpio_chip *sgc = &sa1100_gpio_chip;
+ struct gpio_chip *gc = &sgc->chip;
int i;
/* clear all GPIO edge detects */
@@ -324,7 +330,9 @@ void __init sa1100_init_gpio(void)
writel_relaxed(0, sgc->membase + R_GRER);
writel_relaxed(-1, sgc->membase + R_GEDR);
- gpiochip_add_data(&sa1100_gpio_chip.chip, NULL);
+ software_node_register(&sa1100_gpiochip_node);
+ gc->fwnode = software_node_fwnode(&sa1100_gpiochip_node);
+ gpiochip_add_data(gc, NULL);
sa1100_gpio_irqdomain = irq_domain_create_simple(NULL,
28, IRQ_GPIO0,
--
2.55.0.rc2.803.g1fd1e6609c-goog
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/4] ARM: sa1100: assabet: convert gpio-keys to use software nodes
2026-07-07 3:13 [PATCH 0/4] ARM: sa1100: convert gpio-keys to software nodes Dmitry Torokhov
2026-07-07 3:14 ` [PATCH 1/4] gpio: sa1100: register software node for GPIO controller Dmitry Torokhov
@ 2026-07-07 3:14 ` Dmitry Torokhov
2026-07-07 3:14 ` [PATCH 3/4] ARM: sa1100: collie: " Dmitry Torokhov
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Dmitry Torokhov @ 2026-07-07 3:14 UTC (permalink / raw)
To: Arnd Bergmann, Russell King, Linus Walleij, Bartosz Golaszewski, soc
Cc: linux-arm-kernel, linux-kernel, linux-gpio
Convert the legacy gpio-keys platform device on the StrongARM SA-1100
Assabet evaluation board to use software nodes and device properties.
This allows describing the buttons and their GPIO bindings via software
nodes so that platform data support can eventually be removed from the
gpio-keys driver.
Define static software nodes for the gpio-keys device and the two button
child nodes at file scope, referencing the SA-1100 GPIO controller node
directly. In assabet_init(), register the software node group and use
platform_device_register_full() to register the gpio-keys device.
Assisted-by: Antigravity:gemini-3.5-flash
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
arch/arm/mach-sa1100/assabet.c | 75 ++++++++++++++++++++++++++++--------------
1 file changed, 50 insertions(+), 25 deletions(-)
diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c
index 2b833aa0212b..b001f0b6a3fa 100644
--- a/arch/arm/mach-sa1100/assabet.c
+++ b/arch/arm/mach-sa1100/assabet.c
@@ -13,8 +13,10 @@
#include <linux/gpio/driver.h>
#include <linux/gpio/gpio-reg.h>
#include <linux/gpio/machine.h>
-#include <linux/gpio_keys.h>
+#include <linux/gpio/property.h>
+#include <linux/input.h>
#include <linux/ioport.h>
+#include <linux/property.h>
#include <linux/platform_data/sa11x0-serial.h>
#include <linux/regulator/fixed.h>
#include <linux/regulator/machine.h>
@@ -467,28 +469,53 @@ static const struct gpio_led_platform_data assabet_leds_pdata __initconst = {
.leds = assabet_leds,
};
-static struct gpio_keys_button assabet_keys_buttons[] = {
- {
- .gpio = 0,
- .irq = IRQ_GPIO0,
- .desc = "gpio0",
- .wakeup = 1,
- .can_disable = 1,
- .debounce_interval = 5,
- }, {
- .gpio = 1,
- .irq = IRQ_GPIO1,
- .desc = "gpio1",
- .wakeup = 1,
- .can_disable = 1,
- .debounce_interval = 5,
- },
+static const struct software_node assabet_gpio_keys_node = {
+ .name = "assabet-gpio-keys",
+};
+
+static const struct property_entry assabet_key0_props[] = {
+ PROPERTY_ENTRY_U32("linux,code", KEY_RESERVED),
+ PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node,
+ 0, GPIO_ACTIVE_HIGH),
+ PROPERTY_ENTRY_STRING("label", "gpio0"),
+ PROPERTY_ENTRY_BOOL("wakeup-source"),
+ PROPERTY_ENTRY_BOOL("linux,can-disable"),
+ PROPERTY_ENTRY_U32("debounce-interval", 5),
+ { }
+};
+
+static const struct software_node assabet_key0_node = {
+ .parent = &assabet_gpio_keys_node,
+ .properties = assabet_key0_props,
+};
+
+static const struct property_entry assabet_key1_props[] = {
+ PROPERTY_ENTRY_U32("linux,code", KEY_RESERVED),
+ PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node,
+ 1, GPIO_ACTIVE_HIGH),
+ PROPERTY_ENTRY_STRING("label", "gpio1"),
+ PROPERTY_ENTRY_BOOL("wakeup-source"),
+ PROPERTY_ENTRY_BOOL("linux,can-disable"),
+ PROPERTY_ENTRY_U32("debounce-interval", 5),
+ { }
+};
+
+static const struct software_node assabet_key1_node = {
+ .parent = &assabet_gpio_keys_node,
+ .properties = assabet_key1_props,
+};
+
+static const struct software_node * const assabet_gpio_keys_swnodes[] __initconst = {
+ &assabet_gpio_keys_node,
+ &assabet_key0_node,
+ &assabet_key1_node,
+ NULL
};
-static const struct gpio_keys_platform_data assabet_keys_pdata = {
- .buttons = assabet_keys_buttons,
- .nbuttons = ARRAY_SIZE(assabet_keys_buttons),
- .rep = 0,
+static const struct platform_device_info assabet_gpio_keys_dev_info __initconst = {
+ .name = "gpio-keys",
+ .id = PLATFORM_DEVID_NONE,
+ .swnode = &assabet_gpio_keys_node,
};
static struct gpiod_lookup_table assabet_uart1_gpio_table = {
@@ -571,10 +598,8 @@ static void __init assabet_init(void)
}
- platform_device_register_resndata(NULL, "gpio-keys", 0,
- NULL, 0,
- &assabet_keys_pdata,
- sizeof(assabet_keys_pdata));
+ software_node_register_node_group(assabet_gpio_keys_swnodes);
+ platform_device_register_full(&assabet_gpio_keys_dev_info);
gpiod_add_lookup_table(&assabet_leds_gpio_table);
gpio_led_register_device(-1, &assabet_leds_pdata);
--
2.55.0.rc2.803.g1fd1e6609c-goog
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/4] ARM: sa1100: collie: convert gpio-keys to use software nodes
2026-07-07 3:13 [PATCH 0/4] ARM: sa1100: convert gpio-keys to software nodes Dmitry Torokhov
2026-07-07 3:14 ` [PATCH 1/4] gpio: sa1100: register software node for GPIO controller Dmitry Torokhov
2026-07-07 3:14 ` [PATCH 2/4] ARM: sa1100: assabet: convert gpio-keys to use software nodes Dmitry Torokhov
@ 2026-07-07 3:14 ` Dmitry Torokhov
2026-07-07 3:14 ` [PATCH 4/4] ARM: sa1100: h3xxx: " Dmitry Torokhov
2026-07-07 8:08 ` [PATCH 0/4] ARM: sa1100: convert gpio-keys to " Bartosz Golaszewski
4 siblings, 0 replies; 9+ messages in thread
From: Dmitry Torokhov @ 2026-07-07 3:14 UTC (permalink / raw)
To: Arnd Bergmann, Russell King, Linus Walleij, Bartosz Golaszewski, soc
Cc: linux-arm-kernel, linux-kernel, linux-gpio
Convert the legacy gpio-keys platform device on the StrongARM SA-1100
Collie (Sharp Zaurus SL-5500) board to use software nodes and device
properties. This helps progress the removal of platform data support
from the gpio-keys driver.
Define static software nodes for the gpio-keys device and the power and
sync button child nodes at file scope, referencing the SA-1100 GPIO
controller node directly and specifying EV_PWR input type. In
collie_init(), register the software node group and use
platform_device_register_full() to register the gpio-keys device.
Assisted-by: Antigravity:gemini-3.5-flash
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
arch/arm/mach-sa1100/collie.c | 74 +++++++++++++++++++++++++++----------------
1 file changed, 46 insertions(+), 28 deletions(-)
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c
index 466d755d5702..53df6eb9ce83 100644
--- a/arch/arm/mach-sa1100/collie.c
+++ b/arch/arm/mach-sa1100/collie.c
@@ -27,10 +27,11 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/timer.h>
-#include <linux/gpio_keys.h>
+#include <linux/gpio/property.h>
#include <linux/input.h>
#include <linux/gpio.h>
#include <linux/gpio/machine.h>
+#include <linux/property.h>
#include <linux/power/gpio-charger.h>
#include <video/sa1100fb.h>
@@ -228,43 +229,57 @@ struct platform_device collie_locomo_device = {
.resource = locomo_resources,
};
-static struct gpio_keys_button collie_gpio_keys[] = {
- {
- .type = EV_PWR,
- .code = KEY_RESERVED,
- .gpio = COLLIE_GPIO_ON_KEY,
- .desc = "On key",
- .wakeup = 1,
- .active_low = 1,
- },
- {
- .type = EV_PWR,
- .code = KEY_WAKEUP,
- .gpio = COLLIE_GPIO_WAKEUP,
- .desc = "Sync",
- .wakeup = 1,
- .active_low = 1,
- },
+static const struct software_node collie_gpio_keys_node = {
+ .name = "collie-gpio-keys",
};
-static struct gpio_keys_platform_data collie_gpio_keys_data = {
- .buttons = collie_gpio_keys,
- .nbuttons = ARRAY_SIZE(collie_gpio_keys),
+static const struct property_entry collie_on_key_props[] = {
+ PROPERTY_ENTRY_U32("linux,code", KEY_RESERVED),
+ PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node,
+ COLLIE_GPIO_ON_KEY, GPIO_ACTIVE_LOW),
+ PROPERTY_ENTRY_STRING("label", "On key"),
+ PROPERTY_ENTRY_U32("linux,input-type", EV_PWR),
+ PROPERTY_ENTRY_BOOL("wakeup-source"),
+ { }
};
-static struct platform_device collie_gpio_keys_device = {
- .name = "gpio-keys",
- .id = -1,
- .dev = {
- .platform_data = &collie_gpio_keys_data,
- },
+static const struct software_node collie_on_key_node = {
+ .parent = &collie_gpio_keys_node,
+ .properties = collie_on_key_props,
+};
+
+static const struct property_entry collie_wakeup_key_props[] = {
+ PROPERTY_ENTRY_U32("linux,code", KEY_WAKEUP),
+ PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node,
+ COLLIE_GPIO_WAKEUP, GPIO_ACTIVE_LOW),
+ PROPERTY_ENTRY_STRING("label", "Sync"),
+ PROPERTY_ENTRY_U32("linux,input-type", EV_PWR),
+ PROPERTY_ENTRY_BOOL("wakeup-source"),
+ { }
+};
+
+static const struct software_node collie_wakeup_key_node = {
+ .parent = &collie_gpio_keys_node,
+ .properties = collie_wakeup_key_props,
+};
+
+static const struct software_node * const collie_gpio_keys_swnodes[] __initconst = {
+ &collie_gpio_keys_node,
+ &collie_on_key_node,
+ &collie_wakeup_key_node,
+ NULL
+};
+
+static const struct platform_device_info collie_gpio_keys_dev_info __initconst = {
+ .name = "gpio-keys",
+ .id = PLATFORM_DEVID_NONE,
+ .swnode = &collie_gpio_keys_node,
};
static struct platform_device *devices[] __initdata = {
&collie_locomo_device,
&colliescoop_device,
&collie_power_device,
- &collie_gpio_keys_device,
};
static struct mtd_partition collie_partitions[] = {
@@ -384,6 +399,9 @@ static void __init collie_init(void)
printk(KERN_WARNING "collie: Unable to register LoCoMo device\n");
}
+ software_node_register_node_group(collie_gpio_keys_swnodes);
+ platform_device_register_full(&collie_gpio_keys_dev_info);
+
sa11x0_register_lcd(&collie_lcd_info);
sa11x0_register_mtd(&collie_flash_data, collie_flash_resources,
ARRAY_SIZE(collie_flash_resources));
--
2.55.0.rc2.803.g1fd1e6609c-goog
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 4/4] ARM: sa1100: h3xxx: convert gpio-keys to use software nodes
2026-07-07 3:13 [PATCH 0/4] ARM: sa1100: convert gpio-keys to software nodes Dmitry Torokhov
` (2 preceding siblings ...)
2026-07-07 3:14 ` [PATCH 3/4] ARM: sa1100: collie: " Dmitry Torokhov
@ 2026-07-07 3:14 ` Dmitry Torokhov
2026-07-07 8:08 ` [PATCH 0/4] ARM: sa1100: convert gpio-keys to " Bartosz Golaszewski
4 siblings, 0 replies; 9+ messages in thread
From: Dmitry Torokhov @ 2026-07-07 3:14 UTC (permalink / raw)
To: Arnd Bergmann, Russell King, Linus Walleij, Bartosz Golaszewski, soc
Cc: linux-arm-kernel, linux-kernel, linux-gpio
Convert the legacy gpio-keys platform device on the StrongARM SA-1100
HP iPAQ H3xxx series boards to use software nodes and device properties.
This helps progress the removal of platform data support from the
gpio-keys driver.
Define static software nodes for the gpio-keys device and the power and
action button child nodes at file scope, referencing the SA-1100 GPIO
controller node directly. In h3xxx_mach_init(), register the software node
group and use platform_device_register_full() to register the device.
Assisted-by: Antigravity:gemini-3.5-flash
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
arch/arm/mach-sa1100/h3xxx.c | 69 +++++++++++++++++++++++++++-----------------
1 file changed, 42 insertions(+), 27 deletions(-)
diff --git a/arch/arm/mach-sa1100/h3xxx.c b/arch/arm/mach-sa1100/h3xxx.c
index d685f03f51f3..13c0aa4c0bfa 100644
--- a/arch/arm/mach-sa1100/h3xxx.c
+++ b/arch/arm/mach-sa1100/h3xxx.c
@@ -8,9 +8,10 @@
#include <linux/kernel.h>
#include <linux/gpio/machine.h>
+#include <linux/gpio/property.h>
#include <linux/gpio.h>
-#include <linux/gpio_keys.h>
#include <linux/input.h>
+#include <linux/property.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/partitions.h>
#include <linux/platform_data/gpio-htc-egpio.h>
@@ -168,35 +169,48 @@ static struct platform_device h3xxx_egpio = {
* GPIO keys
*/
-static struct gpio_keys_button h3xxx_button_table[] = {
- {
- .code = KEY_POWER,
- .gpio = H3XXX_GPIO_PWR_BUTTON,
- .desc = "Power Button",
- .active_low = 1,
- .type = EV_KEY,
- .wakeup = 1,
- }, {
- .code = KEY_ENTER,
- .gpio = H3XXX_GPIO_ACTION_BUTTON,
- .active_low = 1,
- .desc = "Action button",
- .type = EV_KEY,
- .wakeup = 0,
- },
+static const struct software_node h3xxx_gpio_keys_node = {
+ .name = "h3xxx-gpio-keys",
};
-static struct gpio_keys_platform_data h3xxx_keys_data = {
- .buttons = h3xxx_button_table,
- .nbuttons = ARRAY_SIZE(h3xxx_button_table),
+static const struct property_entry h3xxx_power_key_props[] = {
+ PROPERTY_ENTRY_U32("linux,code", KEY_POWER),
+ PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node,
+ H3XXX_GPIO_PWR_BUTTON, GPIO_ACTIVE_LOW),
+ PROPERTY_ENTRY_STRING("label", "Power Button"),
+ PROPERTY_ENTRY_BOOL("wakeup-source"),
+ { }
};
-static struct platform_device h3xxx_keys = {
- .name = "gpio-keys",
- .id = -1,
- .dev = {
- .platform_data = &h3xxx_keys_data,
- },
+static const struct software_node h3xxx_power_key_node = {
+ .parent = &h3xxx_gpio_keys_node,
+ .properties = h3xxx_power_key_props,
+};
+
+static const struct property_entry h3xxx_action_key_props[] = {
+ PROPERTY_ENTRY_U32("linux,code", KEY_ENTER),
+ PROPERTY_ENTRY_GPIO("gpios", &sa1100_gpiochip_node,
+ H3XXX_GPIO_ACTION_BUTTON, GPIO_ACTIVE_LOW),
+ PROPERTY_ENTRY_STRING("label", "Action button"),
+ { }
+};
+
+static const struct software_node h3xxx_action_key_node = {
+ .parent = &h3xxx_gpio_keys_node,
+ .properties = h3xxx_action_key_props,
+};
+
+static const struct software_node * const h3xxx_gpio_keys_swnodes[] __initconst = {
+ &h3xxx_gpio_keys_node,
+ &h3xxx_power_key_node,
+ &h3xxx_action_key_node,
+ NULL
+};
+
+static const struct platform_device_info h3xxx_gpio_keys_dev_info __initconst = {
+ .name = "gpio-keys",
+ .id = PLATFORM_DEVID_NONE,
+ .swnode = &h3xxx_gpio_keys_node,
};
static struct resource h3xxx_micro_resources[] = {
@@ -214,7 +228,6 @@ struct platform_device h3xxx_micro_asic = {
static struct platform_device *h3xxx_devices[] = {
&h3xxx_egpio,
- &h3xxx_keys,
&h3xxx_micro_asic,
};
@@ -240,6 +253,8 @@ void __init h3xxx_mach_init(void)
sa1100_register_uart_fns(&h3xxx_port_fns);
sa11x0_register_mtd(&h3xxx_flash_data, &h3xxx_flash_resource, 1);
platform_add_devices(h3xxx_devices, ARRAY_SIZE(h3xxx_devices));
+ software_node_register_node_group(h3xxx_gpio_keys_swnodes);
+ platform_device_register_full(&h3xxx_gpio_keys_dev_info);
}
static struct map_desc h3600_io_desc[] __initdata = {
--
2.55.0.rc2.803.g1fd1e6609c-goog
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/4] ARM: sa1100: convert gpio-keys to software nodes
2026-07-07 3:13 [PATCH 0/4] ARM: sa1100: convert gpio-keys to software nodes Dmitry Torokhov
` (3 preceding siblings ...)
2026-07-07 3:14 ` [PATCH 4/4] ARM: sa1100: h3xxx: " Dmitry Torokhov
@ 2026-07-07 8:08 ` Bartosz Golaszewski
2026-07-07 8:14 ` Arnd Bergmann
4 siblings, 1 reply; 9+ messages in thread
From: Bartosz Golaszewski @ 2026-07-07 8:08 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-arm-kernel, linux-kernel, linux-gpio, Arnd Bergmann,
Russell King, Linus Walleij, Bartosz Golaszewski, soc
On Tue, 7 Jul 2026 05:13:59 +0200, Dmitry Torokhov
<dmitry.torokhov@gmail.com> said:
> This patch series converts StrongARM SA-1100 evaluation and handheld
> boards (Assabet, Collie, and HP iPAQ H3xxx) from legacy platform data
> (struct gpio_keys_platform_data) to static software nodes and device
> properties.
>
> The first patch registers a shared software node for the SA-1100 SoC
> GPIO controller in drivers/gpio/gpio-sa1100.c, attaching its firmware
> node directly to the GPIO chip prior to registration. The subsequent
> patches convert the board setup files to define static software nodes
> referencing the SoC GPIO controller directly, allowing pin bindings to
> be resolved via the attached firmware node without relying on name
> matching.
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
Will this board not die? Anyway:
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/4] ARM: sa1100: convert gpio-keys to software nodes
2026-07-07 8:08 ` [PATCH 0/4] ARM: sa1100: convert gpio-keys to " Bartosz Golaszewski
@ 2026-07-07 8:14 ` Arnd Bergmann
0 siblings, 0 replies; 9+ messages in thread
From: Arnd Bergmann @ 2026-07-07 8:14 UTC (permalink / raw)
To: Bartosz Golaszewski, Dmitry Torokhov
Cc: linux-arm-kernel, linux-kernel, open list:GPIO SUBSYSTEM,
Russell King, Linus Walleij, soc
On Tue, Jul 7, 2026, at 10:08, Bartosz Golaszewski wrote:
> On Tue, 7 Jul 2026 05:13:59 +0200, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> said:
>> This patch series converts StrongARM SA-1100 evaluation and handheld
>> boards (Assabet, Collie, and HP iPAQ H3xxx) from legacy platform data
>> (struct gpio_keys_platform_data) to static software nodes and device
>> properties.
>>
>> The first patch registers a shared software node for the SA-1100 SoC
>> GPIO controller in drivers/gpio/gpio-sa1100.c, attaching its firmware
>> node directly to the GPIO chip prior to registration. The subsequent
>> patches convert the board setup files to define static software nodes
>> referencing the SoC GPIO controller directly, allowing pin bindings to
>> be resolved via the attached firmware node without relying on name
>> matching.
>>
>> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
> Will this board not die?
I have proposed removing almost all remaining non-DT board files
including this one after the next LTS kernel, i.e. in the
7.4 merge window, see
https://lore.kernel.org/all/20260701212353.2196041-15-arnd@kernel.org/
Arnd
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/4] gpio: sa1100: register software node for GPIO controller
2026-07-07 3:14 ` [PATCH 1/4] gpio: sa1100: register software node for GPIO controller Dmitry Torokhov
@ 2026-10-29 4:23 ` Guenter Roeck
2026-10-29 9:26 ` Arnd Bergmann
0 siblings, 1 reply; 9+ messages in thread
From: Guenter Roeck @ 2026-10-29 4:23 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: Arnd Bergmann, Russell King, Linus Walleij, Bartosz Golaszewski,
soc, linux-arm-kernel, linux-kernel, linux-gpio
Hi,
On Mon, Jul 06, 2026 at 08:14:00PM -0700, Dmitry Torokhov wrote:
> Define and register a static software node (sa1100_gpiochip_node) for the
> SA-1100 GPIO controller during sa1100_init_gpio(). Assign its firmware node
> directly to the GPIO chip prior to calling gpiochip_add_data().
>
> This allows StrongARM SA-1100 board setup files to reference the SoC GPIO
> controller in property entries when converting legacy platform data to
> software nodes, resolving pin bindings directly via the attached firmware
> node without relying on name matching.
>
> Assisted-by: Antigravity:gemini-3.5-flash
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
With this patch in the tree, the qemu "collie" emulation no longer works.
There is no console output.
Bisect log is attached for reference.
I am not suggesting a revert if that is even possible, but maybe it is time
to retire collie support if no one else reported this problem.
Guenter
---
# bad: [c03c1a14507dfaf8b856c2608f9ac216021fc222] Linux 7.3
# good: [8d3ae59288f1e7d58d76558a6ee96d533bc5019f] Linux 7.2
git bisect start 'v7.3' 'v7.2'
# bad: [4e69c1856bfd9ffb7e9d335a25842fa211628929] Merge tag 'drm-next-2026-08-20' of https://gitlab.freedesktop.org/drm/kernel
git bisect bad 4e69c1856bfd9ffb7e9d335a25842fa211628929
# bad: [5a8cd539ac19f7a68e68e1d25ef9ca2ff55b8500] Merge tag 'bpf-next-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next
git bisect bad 5a8cd539ac19f7a68e68e1d25ef9ca2ff55b8500
# bad: [abea5c349368a683e40fdc2e745099aaaacc89d7] Merge tag 'i2c-7.3-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux
git bisect bad abea5c349368a683e40fdc2e745099aaaacc89d7
# good: [bbd0571269b5a17bb0685fc30ea0b89b950801f5] Merge tag 'x86_cleanups_for_v7.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
git bisect good bbd0571269b5a17bb0685fc30ea0b89b950801f5
# good: [658ed6d54e9775a627662f152c8e21509eea68c7] Merge tag 'dt64-cleanup-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt
git bisect good 658ed6d54e9775a627662f152c8e21509eea68c7
# good: [368cf60c36a3a311474de08e52dc6314df3b06ce] Merge tag 'soc-drivers-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
git bisect good 368cf60c36a3a311474de08e52dc6314df3b06ce
# bad: [1be05c6afbb2c4052d0a13fc91ddcd89aaee9614] Merge tag 'input-for-v7.3-rc0' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
git bisect bad 1be05c6afbb2c4052d0a13fc91ddcd89aaee9614
# bad: [c36a4991e231242c04141536718d47255ec80887] Merge tag 'chrome-platform-v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
git bisect bad c36a4991e231242c04141536718d47255ec80887
# bad: [7c8af4b5b627d8bbf88c6783db49c52dd6b43f5a] Merge tag 'imx-soc-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux into soc/arm
git bisect bad 7c8af4b5b627d8bbf88c6783db49c52dd6b43f5a
# good: [809177dbf32e3c649abcd027334dbcfe34720446] Merge tag 'arm-feature-deprecation-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc into soc/arm
git bisect good 809177dbf32e3c649abcd027334dbcfe34720446
# bad: [ab1c3ab445b44d6b412bc4f7fad3db4f3857a80e] ARM: sa1100: h3xxx: convert gpio-keys to use software nodes
git bisect bad ab1c3ab445b44d6b412bc4f7fad3db4f3857a80e
# good: [9212f660d34c385f2ba8ad5fb7b94c1d45c166cb] Merge tag 'ixp4xx-arm-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into soc/arm
git bisect good 9212f660d34c385f2ba8ad5fb7b94c1d45c166cb
# bad: [ea07a154791e7e95525f843beaa72402a4fcf88a] ARM: sa1100: assabet: convert gpio-keys to use software nodes
git bisect bad ea07a154791e7e95525f843beaa72402a4fcf88a
# bad: [e4671f292ebb363fdea08ae3b0cd18ba7a2b486f] gpio: sa1100: register software node for GPIO controller
git bisect bad e4671f292ebb363fdea08ae3b0cd18ba7a2b486f
# first bad commit: [e4671f292ebb363fdea08ae3b0cd18ba7a2b486f] gpio: sa1100: register software node for GPIO controller
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/4] gpio: sa1100: register software node for GPIO controller
2026-10-29 4:23 ` Guenter Roeck
@ 2026-10-29 9:26 ` Arnd Bergmann
0 siblings, 0 replies; 9+ messages in thread
From: Arnd Bergmann @ 2026-10-29 9:26 UTC (permalink / raw)
To: Guenter Roeck, Dmitry Torokhov
Cc: Russell King, Linus Walleij, Bartosz Golaszewski, soc,
linux-arm-kernel, linux-kernel, open list:GPIO SUBSYSTEM
On Thu, Oct 29, 2026, at 05:23, Guenter Roeck wrote:
> On Mon, Jul 06, 2026 at 08:14:00PM -0700, Dmitry Torokhov wrote:
>> Define and register a static software node (sa1100_gpiochip_node) for the
>> SA-1100 GPIO controller during sa1100_init_gpio(). Assign its firmware node
>> directly to the GPIO chip prior to calling gpiochip_add_data().
>>
>> This allows StrongARM SA-1100 board setup files to reference the SoC GPIO
>> controller in property entries when converting legacy platform data to
>> software nodes, resolving pin bindings directly via the attached firmware
>> node without relying on name matching.
>>
>> Assisted-by: Antigravity:gemini-3.5-flash
>> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
>
> With this patch in the tree, the qemu "collie" emulation no longer works.
> There is no console output.
>
> Bisect log is attached for reference.
>
> I am not suggesting a revert if that is even possible, but maybe it is time
> to retire collie support if no one else reported this problem.
Thanks for the report. My current plan is to retire all of sa1100 by
merging my board file removal series for v7.5-rc1, so it should be gone
from linux-next soon but still be available for the LTS release (whether
that is 7.3 or 7.4).
Hopefully Dmitry can spot an obvious fix for the regression, otherwise
a revert is probably best so we can leave collie working in the LTS
kernel and not spend much work on that.
Arnd
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-10-29 9:26 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-07 3:13 [PATCH 0/4] ARM: sa1100: convert gpio-keys to software nodes Dmitry Torokhov
2026-07-07 3:14 ` [PATCH 1/4] gpio: sa1100: register software node for GPIO controller Dmitry Torokhov
2026-10-29 4:23 ` Guenter Roeck
2026-10-29 9:26 ` Arnd Bergmann
2026-07-07 3:14 ` [PATCH 2/4] ARM: sa1100: assabet: convert gpio-keys to use software nodes Dmitry Torokhov
2026-07-07 3:14 ` [PATCH 3/4] ARM: sa1100: collie: " Dmitry Torokhov
2026-07-07 3:14 ` [PATCH 4/4] ARM: sa1100: h3xxx: " Dmitry Torokhov
2026-07-07 8:08 ` [PATCH 0/4] ARM: sa1100: convert gpio-keys to " Bartosz Golaszewski
2026-07-07 8:14 ` Arnd Bergmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®