]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ARM: spitz: Simplify instantiating SPI controller
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 28 Jun 2024 18:08:44 +0000 (11:08 -0700)
committerArnd Bergmann <arnd@arndb.de>
Tue, 9 Jul 2024 13:21:15 +0000 (15:21 +0200)
platform_device_register_full() to instantiate SPI controller in one go
instead of allocating it, creating a software node, and registering the
platform device as separate steps.

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-5-dmitry.torokhov@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/mach-pxa/spitz.c

index 10ab16dcd827663afbd5457c0289fedd595d4425..b14eb2a54f80d3129a13b0b6a9fa2429f081c4f0 100644 (file)
@@ -580,14 +580,16 @@ static const struct property_entry spitz_spi_properties[] = {
        { }
 };
 
-static const struct software_node spitz_spi_node = {
+static const struct platform_device_info spitz_spi_device_info = {
+       .name = "pxa2xx-spi",
+       /* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1 */
+       .id = 2,
        .properties = spitz_spi_properties,
 };
 
 static void __init spitz_spi_init(void)
 {
        struct platform_device *pd;
-       int id = 2;
        int err;
 
        if (machine_is_akita())
@@ -598,19 +600,11 @@ static void __init spitz_spi_init(void)
        gpiod_add_lookup_table(&spitz_ads7846_gpio_table);
        gpiod_add_lookup_table(&spitz_spi_gpio_table);
 
-       /* pxa2xx-spi platform-device ID equals respective SSP platform-device ID + 1 */
-       pd = platform_device_alloc("pxa2xx-spi", id);
-       if (pd == NULL) {
-               pr_err("pxa2xx-spi: failed to allocate device id %d\n", id);
-       } else {
-               err = device_add_software_node(&pd->dev, &spitz_spi_node);
-               if (err) {
-                       platform_device_put(pd);
-                       pr_err("pxa2xx-spi: failed to add software node\n");
-               } else {
-                       platform_device_add(pd);
-               }
-       }
+       pd = platform_device_register_full(&spitz_spi_device_info);
+       err = PTR_ERR_OR_ZERO(pd);
+       if (err)
+               pr_err("pxa2xx-spi: failed to instantiate SPI controller: %d\n",
+                      err);
 
        spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices));
 }