openwrt/target/linux/generic/hack-5.4/991-platform-x86-pcengines-apuv2-revert-simswitch.patch
Florian Eckert 5596452cd4 target/hack-5.4: platform/x86/pcengines: revert led simswich compromise
With this change the LED subsystem is abused in the kernel to switch the
simswap. This change will be reverted, so we could use again the gpio
subsystem.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2020-06-26 20:54:53 +02:00

57 lines
2.2 KiB
Diff

From 8c9254d41881c81bea610193c6ac59c8cb8b79fe Mon Sep 17 00:00:00 2001
From: Florian Eckert <fe@dev.tdt.de>
Date: Fri, 27 Mar 2020 16:11:55 +0100
Subject: [PATCH] Revert "platform/x86: pcengines-apuv2: wire up simswitch gpio
as led"
This reverts commit 5037d4ddda31c2dbbb018109655f61054b1756dc.
Commit message from linux:
The APU3+ boards have two SIM sockets, while only one of them
can be routed to the mpcie slots at a time. Selection is done
via simswap gpio.
We currently don't have a fitting subsystem for those cases yet,
so just wire it up to a LED for the time being. While this isn't
really semantically correct, it's a good compromise.
Explanation why this does not work:
This change connects the simswap to the LED subsystem of the kernel.
From my point of view, it's nonsense. If we do it this way, then this
can be switched relatively easily via the LED subsystem (trigger:
none/default-on) and that is dangerous! If this is used, it would be
unfavorable, since there is also another trigger (trigger: heartbeat/netdev).
This LED also appears in the LuCI and can therefore be switched by the user.
Therefore, this simswap GPIO should remain in the GPIO
subsystem and be switched via it and not be connected to the LED
subsystem. To avoid the problems mentioned above. The LED subsystem is
not made for this and it is not a good compromise, but rather dangerous.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
---
drivers/platform/x86/pcengines-apuv2.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
--- a/drivers/platform/x86/pcengines-apuv2.c
+++ b/drivers/platform/x86/pcengines-apuv2.c
@@ -77,8 +77,7 @@ static const struct amd_fch_gpio_pdata b
static const struct gpio_led apu2_leds[] = {
{ .name = "apu:green:1" },
{ .name = "apu:green:2" },
- { .name = "apu:green:3" },
- { .name = "apu:simswap" },
+ { .name = "apu:green:3" }
};
static const struct gpio_led_platform_data apu2_leds_pdata = {
@@ -95,8 +94,6 @@ static struct gpiod_lookup_table gpios_l
NULL, 1, GPIO_ACTIVE_LOW),
GPIO_LOOKUP_IDX(AMD_FCH_GPIO_DRIVER_NAME, APU2_GPIO_LINE_LED3,
NULL, 2, GPIO_ACTIVE_LOW),
- GPIO_LOOKUP_IDX(AMD_FCH_GPIO_DRIVER_NAME, APU2_GPIO_LINE_SIMSWAP,
- NULL, 3, GPIO_ACTIVE_LOW),
}
};