From df89b22062d0e7ffc5d23e81ee9e988633f8ab85 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 11 Aug 2024 16:59:04 +0200 Subject: [PATCH] board/aarch64/r2s: add support for reset button This patch further cleans up the r2s kernel config and also enables the input event framework for the gpio0 reset button on the device. The very simple input-event-daemon is introduced, with the only purpose of listening to /dev/input/event1 for KEY_RESTART and trigger reboot. Some helpful tooling is also added to help debug events (evtest). Issue #276 Signed-off-by: Joachim Wiberg --- board/aarch64/r2s/linux_defconfig | 35 ++++++++----------- .../finit.d/enabled/input-event-daemon.conf | 1 + .../r2s/rootfs/etc/input-event-daemon.conf | 5 +++ configs/r2s_defconfig | 3 ++ .../finit.d/available/input-event-daemon.conf | 1 + 5 files changed, 25 insertions(+), 20 deletions(-) create mode 120000 board/aarch64/r2s/rootfs/etc/finit.d/enabled/input-event-daemon.conf create mode 100644 board/aarch64/r2s/rootfs/etc/input-event-daemon.conf create mode 100644 package/skeleton-init-finit/skeleton/etc/finit.d/available/input-event-daemon.conf diff --git a/board/aarch64/r2s/linux_defconfig b/board/aarch64/r2s/linux_defconfig index d2c8183c..0d152b6d 100644 --- a/board/aarch64/r2s/linux_defconfig +++ b/board/aarch64/r2s/linux_defconfig @@ -36,9 +36,7 @@ CONFIG_EXPERT=y CONFIG_KALLSYMS_ALL=y CONFIG_PROFILING=y CONFIG_KEXEC_FILE=y -CONFIG_ARCH_ACTIONS=y CONFIG_ARCH_ROCKCHIP=y -CONFIG_ARCH_VEXPRESS=y CONFIG_ARM64_VA_BITS_48=y CONFIG_SCHED_MC=y CONFIG_SCHED_SMT=y @@ -218,7 +216,6 @@ CONFIG_NET_MPLS_GSO=y CONFIG_MPLS_ROUTING=m CONFIG_NET_PKTGEN=y CONFIG_BT=m -CONFIG_BT_HIDP=m # CONFIG_BT_LE is not set CONFIG_BT_LEDS=y # CONFIG_BT_DEBUGFS is not set @@ -249,6 +246,7 @@ CONFIG_PCI_EPF_TEST=m CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_VEXPRESS_CONFIG=y CONFIG_ARM_SCMI_PROTOCOL=y CONFIG_ARM_SCPI_PROTOCOL=y CONFIG_EFI_CAPSULE_LOADER=y @@ -315,7 +313,6 @@ CONFIG_VIRTIO_NET=y CONFIG_NLMON=y CONFIG_NET_VRF=y # CONFIG_NET_VENDOR_3COM is not set -# CONFIG_NET_VENDOR_ACTIONS is not set # CONFIG_NET_VENDOR_ADAPTEC is not set # CONFIG_NET_VENDOR_AGERE is not set # CONFIG_NET_VENDOR_ALACRITECH is not set @@ -453,7 +450,10 @@ CONFIG_RTW89_DEBUGMSG=y # CONFIG_WLAN_VENDOR_ZYDAS is not set # CONFIG_WLAN_VENDOR_QUANTENNA is not set CONFIG_INPUT_FF_MEMLESS=y -# CONFIG_INPUT_KEYBOARD is not set +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_EVBUG=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_GPIO_POLLED=y # CONFIG_INPUT_MOUSE is not set CONFIG_INPUT_MISC=y CONFIG_INPUT_RK805_PWRKEY=y @@ -500,20 +500,17 @@ CONFIG_PPS=y CONFIG_DEBUG_PINCTRL=y CONFIG_PINCTRL_RK805=y CONFIG_PINCTRL_SINGLE=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC_PLATFORM=y CONFIG_GPIO_MAX732X=y CONFIG_GPIO_PCA953X=y CONFIG_GPIO_PCA953X_IRQ=y -CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_GPIO_RESTART=y CONFIG_POWER_RESET_SYSCON=y CONFIG_SYSCON_REBOOT_MODE=y -CONFIG_BATTERY_SBS=m -CONFIG_BATTERY_BQ27XXX=y -CONFIG_BATTERY_MAX17042=m -CONFIG_CHARGER_BQ25890=m -CONFIG_CHARGER_BQ25980=m +CONFIG_CHARGER_RK817=y CONFIG_SENSORS_ARM_SCMI=y CONFIG_SENSORS_ARM_SCPI=y -CONFIG_SENSORS_LM90=m CONFIG_SENSORS_PWM_FAN=m CONFIG_CPU_THERMAL=y CONFIG_THERMAL_EMULATION=y @@ -523,16 +520,17 @@ CONFIG_WATCHDOG_SYSFS=y CONFIG_SOFT_WATCHDOG=y CONFIG_MFD_RK8XX_I2C=y CONFIG_MFD_RK8XX_SPI=y -CONFIG_MFD_STMFX=y +# CONFIG_MFD_VEXPRESS_SYSREG is not set +CONFIG_REGULATOR=y CONFIG_REGULATOR_DEBUG=y CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_USERSPACE_CONSUMER=y +CONFIG_REGULATOR_NETLINK_EVENTS=y CONFIG_REGULATOR_GPIO=y CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_RK808=y CONFIG_REGULATOR_VCTRL=y -CONFIG_REGULATOR_VEXPRESS=m -# CONFIG_HID_GENERIC is not set -# CONFIG_USB_HID is not set +# CONFIG_HID_SUPPORT is not set CONFIG_USB_ULPI_BUS=y CONFIG_USB_CONN_GPIO=y CONFIG_USB=y @@ -584,12 +582,9 @@ CONFIG_MMC_SDHCI_CADENCE=y CONFIG_MMC_SDHCI_F_SDH30=y CONFIG_MMC_SPI=y CONFIG_MMC_DW=y -CONFIG_MMC_DW_EXYNOS=y CONFIG_MMC_DW_HI3798CV200=y CONFIG_MMC_DW_K3=y CONFIG_MMC_DW_ROCKCHIP=y -CONFIG_MMC_MTK=y -CONFIG_MMC_SDHCI_XENON=y CONFIG_SCSI_UFSHCD=y CONFIG_SCSI_UFSHCD_PLATFORM=y CONFIG_NEW_LEDS=y @@ -643,7 +638,6 @@ CONFIG_ROCKCHIP_IODOMAIN=y CONFIG_ROCKCHIP_DTPM=m CONFIG_ROCKCHIP_PM_DOMAINS=y CONFIG_DEVFREQ_GOV_USERSPACE=m -CONFIG_EXTCON_PTN5150=m CONFIG_EXTCON_USB_GPIO=y CONFIG_MEMORY=y CONFIG_IIO=y @@ -656,6 +650,7 @@ CONFIG_IIO_ST_MAGN_3AXIS=m CONFIG_MPL3115=m CONFIG_PWM=y CONFIG_PWM_ROCKCHIP=y +CONFIG_RESET_GPIO=y CONFIG_PHY_ROCKCHIP_DPHY_RX0=m CONFIG_PHY_ROCKCHIP_EMMC=y CONFIG_PHY_ROCKCHIP_INNO_HDMI=m diff --git a/board/aarch64/r2s/rootfs/etc/finit.d/enabled/input-event-daemon.conf b/board/aarch64/r2s/rootfs/etc/finit.d/enabled/input-event-daemon.conf new file mode 120000 index 00000000..8238fd3b --- /dev/null +++ b/board/aarch64/r2s/rootfs/etc/finit.d/enabled/input-event-daemon.conf @@ -0,0 +1 @@ +../available/input-event-daemon.conf \ No newline at end of file diff --git a/board/aarch64/r2s/rootfs/etc/input-event-daemon.conf b/board/aarch64/r2s/rootfs/etc/input-event-daemon.conf new file mode 100644 index 00000000..161ded27 --- /dev/null +++ b/board/aarch64/r2s/rootfs/etc/input-event-daemon.conf @@ -0,0 +1,5 @@ +[Global] +listen = /dev/input/event1 + +[Keys] +RESTART = reboot diff --git a/configs/r2s_defconfig b/configs/r2s_defconfig index 96739a05..24058e09 100644 --- a/configs/r2s_defconfig +++ b/configs/r2s_defconfig @@ -58,8 +58,11 @@ BR2_PACKAGE_DBUS_GLIB=y BR2_PACKAGE_DBUS_TRIGGERD=y BR2_PACKAGE_EUDEV_RULES_GEN=y # BR2_PACKAGE_EUDEV_ENABLE_HWDB is not set +BR2_PACKAGE_EVEMU=y +BR2_PACKAGE_EVTEST=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_GPTFDISK_SGDISK=y +BR2_PACKAGE_INPUT_EVENT_DAEMON=y BR2_PACKAGE_MDIO_TOOLS=y BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT=y diff --git a/package/skeleton-init-finit/skeleton/etc/finit.d/available/input-event-daemon.conf b/package/skeleton-init-finit/skeleton/etc/finit.d/available/input-event-daemon.conf new file mode 100644 index 00000000..acca9be9 --- /dev/null +++ b/package/skeleton-init-finit/skeleton/etc/finit.d/available/input-event-daemon.conf @@ -0,0 +1 @@ +service [12345789] name:eventd input-event-daemon -D -- Input event daemon