commit | 58dc277a9df27cc79565b20f48d42c95a877d3c2 | [log] [tgz] |
---|---|---|
author | Alvin Wang <alvinwang@msn.com> | Wed Nov 06 13:35:13 2019 +0800 |
committer | Alvin Wang <alvinwang@msn.com> | Mon Nov 11 15:22:38 2019 +0800 |
tree | cd00ab4804a9b158f5b73346261bce8ede7be351 | |
parent | d34bd96c262cd326583acba76a651426f24a35ae [diff] |
Add device dependency for services In Mihawk /dev/input/by-path/platform-gpio-keys-event is not created by udev while phospho-gpio-monitor@id_button.service is running. In Mihawk it takes much more time for udev to create device files because there are more devices in Mihawk. Other platforms may hit the same issue in the future This patch adds the dependency of platform-gpio-keys and platform-gpio-keys-polled to phosphor-gpio-monitor@.service and phosphor-gpio-presence@.service to fix the issue in Mihawk. The timing of kernel, udev and id_button service. The platform-gpio-keys-event is created at 09:32 while id_button service in running at 09:31 Nov 01 09:31:11 mihawk kernel: input: gpio-keys as /devices/platform /gpio-keys/input/input2 Nov 01 09:31:11 mihawk systemd[1]: Started udev Kernel Device Manager. Nov 01 09:31:17 mihawk systemd[1]: Started udev Coldplug all Devices. Nov 01 09:31:46 mihawk systemd[1]: phosphor-gpio-monitor@id_button. service: Main process exited, code=killed, status=6/ABRT Nov 01 09:31:46 mihawk systemd[1]: phosphor-gpio-monitor@id_button. service: Failed with result 'signal'. lrwxrwxrwx 1 root root 9 Nov 1 09:32 /dev/input/by-path/platform-gpio-keys-event Tested: The phosphor-gpio-monitor@id_button.service can be started successfully. Signed-off-by: Alvin Wang <alvinwang@msn.com> Change-Id: I3fd3422e06f39175cc7c5321dcfadc9ad184b9ae
This daemon accepts a command line parameter for monitoring single gpio line and take action if requested. This implementation uses GPIO keys and only supports monitoring single GPIO line, for multiple lines, user has to run this daemon seperately for each gpio line.
This daemon accepts command line parameter as a well-defined GPIO configuration file in json format to monitor list of gpios from config file and take action defined in config based on gpio state change. It uses libgpiod library.
New implementation (phosphor-multi-gpio-monitor) provides multiple gpio line monitoring in single instance of phosphor-multi-gpio-monitor running. It is very easy to add list of gpios into JSON config file and it also supports of GPIO line by name defined in kernel.
There is a phosphor-multi-gpio-monitor.json file that defines details of GPIOs which is required to be monitored. This file can be replaced with a platform specific configuration file via bbappend.
Following are fields in json file
[ { "Name": "PowerButton", "LineName": "POWER_BUTTON", "GpioNum": 34, "ChipId": "gpiochip0", "EventMon": "BOTH", "Continue": true }, { "Name": "PowerGood", "LineName": "PS_PWROK", "EventMon": "FALLING", "Continue": false }, { "Name": "SystemReset", "GpioNum": 46, "ChipId": "0" } ]