commit | ba917cf7cf4163f6a71d8f67609237f013149743 | [log] [tgz] |
---|---|---|
author | Amithash Prasad <amithash@meta.com> | Mon Apr 21 14:52:43 2025 -0700 |
committer | Amithash Prasad <amithash@meta.com> | Wed Jun 18 09:20:12 2025 -0700 |
tree | 87b6476e736537933f466523619b32336e0aa06e | |
parent | 6dd97c4f1b1ff14f58e48415dc7ee73630d9addd [diff] |
Add capability of handling GPIO initial values The edge handling currently allows us to monitor changes after the service has started. But, a GPIO could have changed state when the BMC/service is down and thus potentially missing an error condition. To address this, two additional keys "INIT_HIGH" and "INIT_LOW" are added. which will be called at start-up depending on the current GPIO value. Tested: Tested on QEMU with a test configuration and ensured that the systemd units are called correctly. Change-Id: I8a6c969b9609080cf0846611831206376fd96c7d Signed-off-by: Amithash Prasad <amithash@meta.com>
phosphor-gpio-monitor
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.
phosphor-multi-gpio-monitor
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": "FALLING", "Target": "PowerButtonDown.service", "Continue": true }, { "Name": "PowerGood", "LineName": "PS_PWROK", "EventMon": "BOTH", "Targets": { "FALLING": ["PowerGoodFalling.service", "PowerOff.service"], "RISING": ["PowerGoodRising.service", "PowerOn.service"] }, "Continue": false }, { "Name": "SystemReset", "GpioNum": 46, "ChipId": "0" } ]
phosphor-multi-gpio-presence
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 sets inventory presence as defined in config based on gpio state change. It uses libgpiod library.
New implementation (phosphor-multi-gpio-presence) provides multiple gpio line monitoring in single instance of phosphor-multi-gpio-presence 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-presence.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": "DIMM A0", "LineName": "POWER_BUTTON", "Inventory": "/system/chassis/motherboard/dimm_a0" }, { "Name": "Powersupply 0", "ChipId": "0", "GpioNum": 14, "Inventory": "/system/chassis/motherboard/powersupply0", "ActiveLow": true, "Bias": "PULL_UP", "ExtraInterfaces": ["xyz.openbmc_project.Inventory.Item.PowerSupply"] } ]