mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-01-10 00:29:26 +00:00
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>
This commit is contained in:
parent
09e66112f1
commit
a3e6521c1a
@ -84,6 +84,22 @@ endef
|
|||||||
$(eval $(call KernelPackage,ledtrig-oneshot))
|
$(eval $(call KernelPackage,ledtrig-oneshot))
|
||||||
|
|
||||||
|
|
||||||
|
define KernelPackage/leds-apu
|
||||||
|
SUBMENU:=$(LEDS_MENU)
|
||||||
|
TITLE:=PC Engines APU1 LED support
|
||||||
|
DEPENDS:= @GPIO_SUPPORT @TARGET_x86
|
||||||
|
KCONFIG:=CONFIG_LEDS_APU
|
||||||
|
FILES:=$(LINUX_DIR)/drivers/leds/leds-apu.ko
|
||||||
|
AUTOLOAD:=$(call AutoLoad,60,leds-apu,1)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define KernelPackage/leds-apu/description
|
||||||
|
Driver for the PC Engines APU1 LEDs.
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call KernelPackage,leds-apu))
|
||||||
|
|
||||||
|
|
||||||
define KernelPackage/leds-pca963x
|
define KernelPackage/leds-pca963x
|
||||||
SUBMENU:=$(LEDS_MENU)
|
SUBMENU:=$(LEDS_MENU)
|
||||||
TITLE:=PCA963x LED support
|
TITLE:=PCA963x LED support
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
board_config_update
|
board_config_update
|
||||||
|
|
||||||
case "$(board_name)" in
|
case "$(board_name)" in
|
||||||
pc-engines-apu|pc-engines-apu2|pc-engines-apu3)
|
pc-engines-apu1|pc-engines-apu2|pc-engines-apu3)
|
||||||
ucidef_set_led_netdev "wan" "WAN" "apu2:green:led3" "eth0"
|
ucidef_set_led_netdev "wan" "WAN" "apu:green:3" "eth0"
|
||||||
ucidef_set_led_netdev "lan" "LAN" "apu2:green:led2" "br-lan"
|
ucidef_set_led_netdev "lan" "LAN" "apu:green:2" "br-lan"
|
||||||
ucidef_set_led_default "diag" "DIAG" "apu2:green:power" "1"
|
ucidef_set_led_default "diag" "DIAG" "apu:green:1" "1"
|
||||||
;;
|
;;
|
||||||
traverse-technologies-geos)
|
traverse-technologies-geos)
|
||||||
ucidef_set_led_netdev "lan" "LAN" "geos:1" "br-lan" "tx rx"
|
ucidef_set_led_netdev "lan" "LAN" "geos:1" "br-lan" "tx rx"
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
board_config_update
|
board_config_update
|
||||||
|
|
||||||
case "$(board_name)" in
|
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"
|
ucidef_set_interfaces_lan_wan "eth1 eth2" "eth0"
|
||||||
;;
|
;;
|
||||||
traverse-technologies-geos)
|
traverse-technologies-geos)
|
||||||
|
@ -18,6 +18,10 @@ do_sysinfo_x86() {
|
|||||||
for file in product_name board_name; do
|
for file in product_name board_name; do
|
||||||
product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
|
product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
|
||||||
case "$vendor:$product" in
|
case "$vendor:$product" in
|
||||||
|
"PC Engines:APU")
|
||||||
|
product="apu1"
|
||||||
|
break
|
||||||
|
;;
|
||||||
"Supermicro:Super Server")
|
"Supermicro:Super Server")
|
||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
|
41
target/linux/x86/patches-5.4/300-pcengines_apu1_led.patch
Normal file
41
target/linux/x86/patches-5.4/300-pcengines_apu1_led.patch
Normal file
@ -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;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user