commit | 939a6431661931b3d31c46ec0310c553e22308d1 | [log] [tgz] |
---|---|---|
author | Vijay Khemka <vijaykhemka@fb.com> | Wed Oct 09 17:45:45 2019 -0700 |
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | Mon Nov 04 16:48:18 2019 +0000 |
tree | 04f10b74fc3d942ce75cbb041413553d51f3e178 | |
parent | 166ef2de362ba1d297b7c62813beff21226c9ded [diff] |
GPIO Monitor with multiple lines and libgpiod Added a new GPIO monitor (phosphor-multi-gpio-monitor) which monitors multiple gpio lines based on their line name or offset. GPIO details need to be defined in a JSON file and needs to be passed to this daemon. This uses libgpiod for accessing gpio lines and also uses CLI11 for parsing input parameter. Signed-off-by: Vijay Khemka <vijaykhemka@fb.com> Change-Id: I843e6df8c1159888f2ca628d1f69c1d2294d29d6
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" } ]