aboutsummaryrefslogtreecommitdiffstats
path: root/package/system/gpio-cdev/nu801
diff options
context:
space:
mode:
authorChris Blake <chrisrblake93@gmail.com>2022-03-19 17:13:42 -0500
committerChristian Lamparter <chunkeey@gmail.com>2022-03-25 18:14:13 +0100
commit3f874519b4200de0d5f78c68dfefe55c42fa0afd (patch)
tree37b6e3d00353f1502443dc456d562ca2ad5a08cc /package/system/gpio-cdev/nu801
parentcb6f4be13703f0224fc462caaeac14e725c72986 (diff)
downloadupstream-3f874519b4200de0d5f78c68dfefe55c42fa0afd.tar.gz
upstream-3f874519b4200de0d5f78c68dfefe55c42fa0afd.tar.bz2
upstream-3f874519b4200de0d5f78c68dfefe55c42fa0afd.zip
gpio-cdev: re-add nu801 userspace driver
This reverts commit 80b7a8a7f5a0a88fde6dd19f097df4d7cac9ff04. Now that 5.10 is the default kernel for all platforms, we can bring back the NU801 userspace driver for platforms that rely on it. Currently it's used on the MX100 x86_64 target, but other Meraki platforms use this controller. Note that we also now change how we load nu801. The way we did this previously with procd worked, but it meant it didn't load until everything was up and working. To fix this, let's call nu801 from boot and re-trigger the preinit blink sequence. Since nu801 runs as a daemon this is now something we can do. Signed-off-by: Chris Blake <chrisrblake93@gmail.com> (removed empty line, currently only MX100 uses it so: @TARGET_x86) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Diffstat (limited to 'package/system/gpio-cdev/nu801')
-rw-r--r--package/system/gpio-cdev/nu801/Makefile39
-rwxr-xr-xpackage/system/gpio-cdev/nu801/files/nu801.init14
2 files changed, 53 insertions, 0 deletions
diff --git a/package/system/gpio-cdev/nu801/Makefile b/package/system/gpio-cdev/nu801/Makefile
new file mode 100644
index 0000000000..b3fae616cd
--- /dev/null
+++ b/package/system/gpio-cdev/nu801/Makefile
@@ -0,0 +1,39 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=nu801
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/chunkeey/nu801.git
+PKG_SOURCE_VERSION:=d9942c0ceb949080b93366a9431028de3608e535
+
+PKG_MAINTAINER:=Christian Lamparter <chunkeey@gmail.com>
+PKG_LICENSE:=GPL-3.0-or-later
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/nu801
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Userspace GPIO Drivers
+ DEPENDS:=@TARGET_x86 +kmod-leds-uleds
+ KCONFIG:=CONFIG_GPIO_CDEV=y
+ TITLE:=NU801 LED Driver
+endef
+
+define Package/nu801/description
+This package contains a userspace driver to power the NUMEN Tech. NU801 LED Driver.
+endef
+
+define Package/nu801/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/nu801 $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/nu801.init $(1)/etc/init.d/nu801
+endef
+
+$(eval $(call BuildPackage,nu801))
diff --git a/package/system/gpio-cdev/nu801/files/nu801.init b/package/system/gpio-cdev/nu801/files/nu801.init
new file mode 100755
index 0000000000..a29554ae30
--- /dev/null
+++ b/package/system/gpio-cdev/nu801/files/nu801.init
@@ -0,0 +1,14 @@
+#!/bin/sh /etc/rc.common
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+START=11
+
+boot() {
+ . /lib/functions.sh
+ /usr/sbin/nu801 "$(board_name)"
+
+ # Because this is a userspace driver, we need to trigger diag.sh after
+ # we start the driver, but before boot is complete so we blink.
+ . /etc/diag.sh
+ set_state preinit_regular
+}