]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ARM: pxa/gumstix: convert vbus gpio to use software nodes
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 28 Jun 2024 18:08:43 +0000 (11:08 -0700)
committerArnd Bergmann <arnd@arndb.de>
Tue, 9 Jul 2024 13:21:15 +0000 (15:21 +0200)
Switch vbus gpios from using a custom GPIO lookup table to software
properties using PROPERTY_ENTRY_GPIO() constructs which closely mimic
device tree gpio properties.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20240628180852.1738922-4-dmitry.torokhov@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/mach-pxa/devices.c
arch/arm/mach-pxa/devices.h
arch/arm/mach-pxa/gumstix.c
arch/arm/mach-pxa/pxa25x.c

index 7cc6db2d1615c8471ee6f68ad23a62b985241f22..e2758c94fd77faf60f086c1a38dd667ab92fae86 100644 (file)
@@ -629,6 +629,10 @@ struct platform_device pxa27x_device_pwm1 = {
 };
 #endif /* CONFIG_PXA27x || CONFIG_PXA3xx */
 
+const struct software_node pxa2xx_gpiochip_node = {
+       .name   = "gpio-pxa",
+};
+
 struct resource pxa_resource_gpio[] = {
        {
                .start  = 0x40e00000,
index 82c83939017a9e90cecd8c168f14ae4f08c167b5..b7c0e138ef616e0670e097791d9eeb68bffdd456 100644 (file)
@@ -53,8 +53,8 @@ extern struct platform_device pxa_device_asoc_ssp4;
 
 extern struct platform_device pxa25x_device_gpio;
 extern struct platform_device pxa27x_device_gpio;
-extern struct platform_device pxa3xx_device_gpio;
-extern struct platform_device pxa93x_device_gpio;
+
+extern const struct software_node pxa2xx_gpiochip_node;
 
 void __init pxa_register_device(struct platform_device *dev, void *data);
 void __init pxa2xx_set_dmac_info(struct mmp_dma_platdata *dma_pdata);
index c9f0f62187bd3e69458128c5000b04880aae56d3..b9eddc69109713c3627731c1318ca4f5b2a6ec87 100644 (file)
@@ -100,26 +100,22 @@ static void __init gumstix_mmc_init(void)
 #endif
 
 #ifdef CONFIG_USB_PXA25X
-static struct gpiod_lookup_table gumstix_gpio_vbus_gpiod_table = {
-       .dev_id = "gpio-vbus",
-       .table = {
-               GPIO_LOOKUP("gpio-pxa", GPIO_GUMSTIX_USB_GPIOn,
-                           "vbus", GPIO_ACTIVE_HIGH),
-               GPIO_LOOKUP("gpio-pxa", GPIO_GUMSTIX_USB_GPIOx,
-                           "pullup", GPIO_ACTIVE_HIGH),
-               { },
-       },
+static const struct property_entry spitz_mci_props[] __initconst = {
+       PROPERTY_ENTRY_GPIO("vbus-gpios", &pxa2xx_gpiochip_node,
+                           GPIO_GUMSTIX_USB_GPIOn, GPIO_ACTIVE_HIGH),
+       PROPERTY_ENTRY_GPIO("pullup-gpios", &pxa2xx_gpiochip_node,
+                           GPIO_GUMSTIX_USB_GPIOx, GPIO_ACTIVE_HIGH),
+       { }
 };
 
-static struct platform_device gumstix_gpio_vbus = {
+static const struct platform_device_info gumstix_gpio_vbus_info __initconst = {
        .name   = "gpio-vbus",
-       .id     = -1,
+       .id     = PLATFORM_DEVID_NONE,
 };
 
 static void __init gumstix_udc_init(void)
 {
-       gpiod_add_lookup_table(&gumstix_gpio_vbus_gpiod_table);
-       platform_device_register(&gumstix_gpio_vbus);
+       platform_device_register_full(&gumstix_gpio_vbus_info);
 }
 #else
 static void gumstix_udc_init(void)
index 2ab3d8d664668630c626ae758172137463bb064b..03e34841fc004cdfaf456182025a45c3740e2cbd 100644 (file)
@@ -239,6 +239,7 @@ static int __init pxa25x_init(void)
                register_syscore_ops(&pxa2xx_mfp_syscore_ops);
 
                if (!of_have_populated_dt()) {
+                       software_node_register(&pxa2xx_gpiochip_node);
                        pxa2xx_set_dmac_info(&pxa25x_dma_pdata);
                        ret = platform_add_devices(pxa25x_devices,
                                                   ARRAY_SIZE(pxa25x_devices));