]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ARM: orion5x: Convert Net2big board to GPIO descriptors for LEDs
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 23 Apr 2024 13:54:00 +0000 (15:54 +0200)
committerGregory CLEMENT <gregory.clement@bootlin.com>
Sun, 5 May 2024 16:18:17 +0000 (18:18 +0200)
This makes the LEDs on the Net2big Orion5x board use GPIO
descriptors instead of hardcoded GPIOs from the global
numberspace.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
arch/arm/mach-orion5x/net2big-setup.c

index 695cc683cd8337efb2506d66f924a4a66ca32a18..6ad9740b426b633dca6adaf07c3760c68bbbdfbd 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/i2c.h>
 #include <linux/ata_platform.h>
 #include <linux/gpio.h>
+#include <linux/gpio/machine.h>
 #include <linux/delay.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -214,19 +215,30 @@ err_free_1:
 static struct gpio_led net2big_leds[] = {
        {
                .name = "net2big:red:power",
-               .gpio = NET2BIG_GPIO_PWR_RED_LED,
        },
        {
                .name = "net2big:blue:power",
-               .gpio = NET2BIG_GPIO_PWR_BLUE_LED,
        },
        {
                .name = "net2big:red:sata0",
-               .gpio = NET2BIG_GPIO_SATA0_RED_LED,
        },
        {
                .name = "net2big:red:sata1",
-               .gpio = NET2BIG_GPIO_SATA1_RED_LED,
+       },
+};
+
+static struct gpiod_lookup_table net2big_leds_gpio_table = {
+       .dev_id = "leds-gpio",
+       .table = {
+               GPIO_LOOKUP_IDX("orion_gpio0", NET2BIG_GPIO_PWR_RED_LED, NULL,
+                               0, GPIO_ACTIVE_HIGH),
+               GPIO_LOOKUP_IDX("orion_gpio0", NET2BIG_GPIO_PWR_BLUE_LED, NULL,
+                               1, GPIO_ACTIVE_HIGH),
+               GPIO_LOOKUP_IDX("orion_gpio0", NET2BIG_GPIO_SATA0_RED_LED, NULL,
+                               2, GPIO_ACTIVE_HIGH),
+               GPIO_LOOKUP_IDX("orion_gpio0", NET2BIG_GPIO_SATA1_RED_LED, NULL,
+                               3, GPIO_ACTIVE_HIGH),
+               { },
        },
 };
 
@@ -282,6 +294,7 @@ static void __init net2big_gpio_leds_init(void)
        if (err)
                pr_err("net2big: failed to setup SATA1 blue LED GPIO\n");
 
+       gpiod_add_lookup_table(&net2big_leds_gpio_table);
        platform_device_register(&net2big_gpio_leds);
 }