From ab0a2d7de6b8fa87a0aaa5113071d90099bf6545 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Thu, 30 Apr 2026 14:57:18 +0200 Subject: [PATCH 1/4] ARM: pxa: statify platform device definitions in spitz board file The scoop devices are not used outside of this board file so make them static. Reviewed-by: Linus Walleij Link: https://patch.msgid.link/20260430-pxa-gpio-swnodes-v3-1-5142e95f0eca@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski --- arch/arm/mach-pxa/spitz.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index c0b1f7e6be87..3284b9f62be9 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c @@ -165,7 +165,7 @@ static struct scoop_config spitz_scoop_1_setup = { .gpio_base = SPITZ_SCP_GPIO_BASE, }; -struct platform_device spitz_scoop_1_device = { +static struct platform_device spitz_scoop_1_device = { .name = "sharp-scoop", .id = 0, .dev = { @@ -192,7 +192,7 @@ static struct scoop_config spitz_scoop_2_setup = { .gpio_base = SPITZ_SCP2_GPIO_BASE, }; -struct platform_device spitz_scoop_2_device = { +static struct platform_device spitz_scoop_2_device = { .name = "sharp-scoop", .id = 1, .dev = { From a25463c14d9b803c8308a222d5f8ac1c55098b3c Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Thu, 30 Apr 2026 14:57:19 +0200 Subject: [PATCH 2/4] ARM: pxa: spitz: attach software nodes to their target GPIO controllers Software nodes describing the GPIO controllers for the spitz platform are currently "dangling" - they're not actually attached to the relevant controllers and don't allow real fwnode lookup. Attach them either by directly assigning them to the struct device or by using the i2c board info struct. Reviewed-by: Linus Walleij Link: https://patch.msgid.link/20260430-pxa-gpio-swnodes-v3-2-5142e95f0eca@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski --- arch/arm/mach-pxa/spitz.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 3284b9f62be9..5091b601c4e1 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c @@ -204,11 +204,15 @@ static struct platform_device spitz_scoop_2_device = { static void __init spitz_scoop_init(void) { + spitz_scoop_1_device.dev.fwnode = software_node_fwnode(&spitz_scoop_1_gpiochip_node); platform_device_register(&spitz_scoop_1_device); /* Akita doesn't have the second SCOOP chip */ - if (!machine_is_akita()) + if (!machine_is_akita()) { + spitz_scoop_2_device.dev.fwnode = software_node_fwnode( + &spitz_scoop_2_gpiochip_node); platform_device_register(&spitz_scoop_2_device); + } } /* Power control is shared with between one of the CF slots and SD */ @@ -988,6 +992,7 @@ static struct i2c_board_info spitz_i2c_devs[] = { .type = "max7310", .addr = 0x18, .platform_data = &akita_pca953x_pdata, + .swnode = &akita_max7310_gpiochip_node, }, }; From af3fb0aeb7071acc471c1cb0b76e22b776934e48 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Thu, 30 Apr 2026 14:57:20 +0200 Subject: [PATCH 3/4] ARM: pxa: pxa25x: attach software node to its target GPIO controller Software node describing the GPIO controller for the pxa25x platforms is currently "dangling" - it's not actually attached to the relevant controller and doesn't allow real fwnode lookup. Attach it once it's registered as a firmware node before adding the platform device. Reviewed-by: Linus Walleij Link: https://patch.msgid.link/20260430-pxa-gpio-swnodes-v3-3-5142e95f0eca@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski --- arch/arm/mach-pxa/pxa25x.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c index 70509a599814..a4e878be004a 100644 --- a/arch/arm/mach-pxa/pxa25x.c +++ b/arch/arm/mach-pxa/pxa25x.c @@ -240,6 +240,9 @@ static int __init pxa25x_init(void) if (!of_have_populated_dt()) { software_node_register(&pxa2xx_gpiochip_node); + pxa25x_device_gpio.dev.fwnode = software_node_fwnode( + &pxa2xx_gpiochip_node); + pxa2xx_set_dmac_info(&pxa25x_dma_pdata); ret = platform_add_devices(pxa25x_devices, ARRAY_SIZE(pxa25x_devices)); From 2c450dd88161abbadf889711d0bcedd7a0504a84 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Thu, 30 Apr 2026 14:57:21 +0200 Subject: [PATCH 4/4] ARM: pxa: pxa27x: attach software node to its target GPIO controller Software node describing the GPIO controller for the pxa27x platforms is currently "dangling" - it's not actually attached to the relevant controller and doesn't allow real fwnode lookup. Attach it once it's registered as a firmware node before adding the platform device. Reviewed-by: Linus Walleij Link: https://patch.msgid.link/20260430-pxa-gpio-swnodes-v3-4-5142e95f0eca@oss.qualcomm.com Signed-off-by: Bartosz Golaszewski --- arch/arm/mach-pxa/pxa27x.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c index ff6361979038..49c677f2dac1 100644 --- a/arch/arm/mach-pxa/pxa27x.c +++ b/arch/arm/mach-pxa/pxa27x.c @@ -342,6 +342,9 @@ static int __init pxa27x_init(void) if (!of_have_populated_dt()) { software_node_register(&pxa2xx_gpiochip_node); + pxa27x_device_gpio.dev.fwnode = software_node_fwnode( + &pxa2xx_gpiochip_node); + pxa2xx_set_dmac_info(&pxa27x_dma_pdata); ret = platform_add_devices(devices, ARRAY_SIZE(devices));