diff options
author | Andreas Eberlein <foodeas@aeberlein.de> | 2020-06-23 22:59:26 +0200 |
---|---|---|
committer | Paul Spooren <mail@aparcar.org> | 2021-02-20 00:29:18 -1000 |
commit | a3e6521c1a7d4c78d825833e224272ec89a38bf2 (patch) | |
tree | 2bfbf9baf5438634193d3801642944bb3ac34697 /target/linux/x86 | |
parent | 09e66112f1ea9f5838ce80533f3850523dc30230 (diff) | |
download | upstream-a3e6521c1a7d4c78d825833e224272ec89a38bf2.tar.gz upstream-a3e6521c1a7d4c78d825833e224272ec89a38bf2.tar.bz2 upstream-a3e6521c1a7d4c78d825833e224272ec89a38bf2.zip |
x86: add led driver for PC Engines APU1
This driver adds the LED support for the PC Engines APU1.
This integrates the Linux kernel driver and includes a patch to support
newer firmware versions. Also the default LED configuration is updated
to use the correct devices.
Signed-off-by: Andreas Eberlein <foodeas@aeberlein.de>
Diffstat (limited to 'target/linux/x86')
4 files changed, 50 insertions, 5 deletions
diff --git a/target/linux/x86/base-files/etc/board.d/01_leds b/target/linux/x86/base-files/etc/board.d/01_leds index 25dc4aeeb1..e9133e8877 100755 --- a/target/linux/x86/base-files/etc/board.d/01_leds +++ b/target/linux/x86/base-files/etc/board.d/01_leds @@ -8,10 +8,10 @@ board_config_update case "$(board_name)" in -pc-engines-apu|pc-engines-apu2|pc-engines-apu3) - ucidef_set_led_netdev "wan" "WAN" "apu2:green:led3" "eth0" - ucidef_set_led_netdev "lan" "LAN" "apu2:green:led2" "br-lan" - ucidef_set_led_default "diag" "DIAG" "apu2:green:power" "1" +pc-engines-apu1|pc-engines-apu2|pc-engines-apu3) + ucidef_set_led_netdev "wan" "WAN" "apu:green:3" "eth0" + ucidef_set_led_netdev "lan" "LAN" "apu:green:2" "br-lan" + ucidef_set_led_default "diag" "DIAG" "apu:green:1" "1" ;; traverse-technologies-geos) ucidef_set_led_netdev "lan" "LAN" "geos:1" "br-lan" "tx rx" diff --git a/target/linux/x86/base-files/etc/board.d/02_network b/target/linux/x86/base-files/etc/board.d/02_network index c6e381b946..05a68967bc 100755 --- a/target/linux/x86/base-files/etc/board.d/02_network +++ b/target/linux/x86/base-files/etc/board.d/02_network @@ -9,7 +9,7 @@ board_config_update case "$(board_name)" in -pc-engines-apu|pc-engines-apu2|pc-engines-apu3) +pc-engines-apu1|pc-engines-apu2|pc-engines-apu3) ucidef_set_interfaces_lan_wan "eth1 eth2" "eth0" ;; traverse-technologies-geos) diff --git a/target/linux/x86/base-files/lib/preinit/01_sysinfo b/target/linux/x86/base-files/lib/preinit/01_sysinfo index 466c831e7e..b608d4edab 100644 --- a/target/linux/x86/base-files/lib/preinit/01_sysinfo +++ b/target/linux/x86/base-files/lib/preinit/01_sysinfo @@ -18,6 +18,10 @@ do_sysinfo_x86() { for file in product_name board_name; do product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)" case "$vendor:$product" in + "PC Engines:APU") + product="apu1" + break + ;; "Supermicro:Super Server") continue ;; diff --git a/target/linux/x86/patches-5.4/300-pcengines_apu1_led.patch b/target/linux/x86/patches-5.4/300-pcengines_apu1_led.patch new file mode 100644 index 0000000000..9d1e4ab9c2 --- /dev/null +++ b/target/linux/x86/patches-5.4/300-pcengines_apu1_led.patch @@ -0,0 +1,41 @@ +From: Andreas Eberlein <foodeas@aeberlein.de> +Subject: x86: add LED support for PC Engines APU1 with mainline bios + +This adds support for the LEDs on PC Engines APU1 with the mainline bios. + +Signed-off-by: Andreas Eberlein <foodeas@aeberlein.de> +--- +--- a/drivers/leds/leds-apu.c ++++ b/drivers/leds/leds-apu.c +@@ -83,6 +83,7 @@ static const struct apu_led_profile apu1 + }; + + static const struct dmi_system_id apu_led_dmi_table[] __initconst = { ++ /* PC Engines APU with "Legacy" bios < 4.0.8 */ + { + .ident = "apu", + .matches = { +@@ -90,6 +91,14 @@ static const struct dmi_system_id apu_le + DMI_MATCH(DMI_PRODUCT_NAME, "APU") + } + }, ++ /* PC Engines APU with "Mainline" bios >= 4.0.8 */ ++ { ++ .ident = "apu", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "PC Engines"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "apu1") ++ } ++ }, + {} + }; + MODULE_DEVICE_TABLE(dmi, apu_led_dmi_table); +@@ -173,7 +182,7 @@ static int __init apu_led_init(void) + int err; + + if (!(dmi_match(DMI_SYS_VENDOR, "PC Engines") && +- dmi_match(DMI_PRODUCT_NAME, "APU"))) { ++ (dmi_match(DMI_PRODUCT_NAME, "APU") || dmi_match(DMI_PRODUCT_NAME, "apu1")))) { + pr_err("No PC Engines APUv1 board detected. For APUv2,3 support, enable CONFIG_PCENGINES_APU2\n"); + return -ENODEV; + } |