ARM: orion5x: Convert D2Net board to GPIO descriptors for LEDs
authorLinus Walleij <linus.walleij@linaro.org>
Tue, 23 Apr 2024 13:53:57 +0000 (15:53 +0200)
committerGregory CLEMENT <gregory.clement@bootlin.com>
Sun, 5 May 2024 16:18:17 +0000 (18:18 +0200)
This makes the LEDs on the D2Net 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/board-d2net.c

index 0297e302d7bc862736e8429dd08a69c257ab4d34..09bf366d05ff7953f5eb4e5d76fed7619a152831 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/irq.h>
 #include <linux/leds.h>
 #include <linux/gpio.h>
+#include <linux/gpio/machine.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/pci.h>
@@ -55,12 +56,9 @@ static struct gpio_led d2net_leds[] = {
        {
                .name = "d2net:blue:sata",
                .default_trigger = "default-on",
-               .gpio = D2NET_GPIO_BLUE_LED_OFF,
-               .active_low = 1,
        },
        {
                .name = "d2net:red:fail",
-               .gpio = D2NET_GPIO_RED_LED,
        },
 };
 
@@ -77,6 +75,17 @@ static struct platform_device d2net_gpio_leds = {
        },
 };
 
+static struct gpiod_lookup_table d2net_leds_gpio_table = {
+       .dev_id = "leds-gpio",
+       .table = {
+               GPIO_LOOKUP_IDX("orion_gpio0", D2NET_GPIO_BLUE_LED_OFF, NULL,
+                               0, GPIO_ACTIVE_LOW),
+               GPIO_LOOKUP_IDX("orion_gpio0", D2NET_GPIO_RED_LED, NULL,
+                               1, GPIO_ACTIVE_HIGH),
+               { },
+       },
+};
+
 static void __init d2net_gpio_leds_init(void)
 {
        int err;
@@ -91,6 +100,7 @@ static void __init d2net_gpio_leds_init(void)
        if (err)
                pr_err("d2net: failed to configure blue LED blink GPIO\n");
 
+       gpiod_add_lookup_table(&d2net_leds_gpio_table);
        platform_device_register(&d2net_gpio_leds);
 }