commit | e48bf95d1a64c3a2e08e47afeb05af7a5ffc0b8a | [log] [tgz] |
---|---|---|
author | Jayashree Dhanapal <jayashree-d@hcl.com> | Wed Aug 17 17:34:32 2022 +0530 |
committer | Alexander Hansen <alexander.hansen@9elements.com> | Fri Jul 12 12:53:34 2024 +0200 |
tree | e76b8cd1824cf9b57f2472ba3dec3c00a2dc253c | |
parent | 54995ae951ed245d167ba73cfd07411d039eb78e [diff] |
controller: Heap-allocate LEDs Do this in preparation for migrating to a single instance of the daemon whose LED inventory is updated via DBus where the update is triggered by udev. Splitting out this work reduces the review complexity of the patch that rewrites the internals of the daemon. Signed-off-by: Jayashree Dhanapal <jayashree-d@hcl.com> Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Change-Id: I50e58126413514f7a64153f425629142fa5af6d4 Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
This project exposes physical LEDs on dbus.
Say we have 'identify' LED in our system, which may be declared in devicetree.
leds { compatible = "gpio-leds"; identify { gpios = <&gpio ASPEED_GPIO(S, 6) GPIO_ACTIVE_HIGH>; }; };
We can start the program
./phosphor-ledcontroller --path /sys/class/leds/identify
which will expose following dbus objects:
busctl tree xyz.openbmc_project.LED.Controller.identify `- /xyz `- /xyz/openbmc_project `- /xyz/openbmc_project/led `- /xyz/openbmc_project/led/physical `- /xyz/openbmc_project/led/physical/identify busctl introspect xyz.openbmc_project.LED.Controller.identify /xyz/openbmc_project/led/physical/identify NAME TYPE SIGNATURE RESULT/VALUE FLAGS ... xyz.openbmc_project.Led.Physical interface - - - .Color property s "xyz.openbmc_project.Led.Physical.Pal... emits-change writable .DutyOn property y 50 emits-change writable .Period property q 1000 emits-change writable .State property s "xyz.openbmc_project.Led.Physical.Act... emits-change writable
In the above output, the usual org.freedesktop.* interfaces have been removed to keep it readable.
Query the LED State
busctl get-property xyz.openbmc_project.LED.Controller.identify \ /xyz/openbmc_project/led/physical/identify \ xyz.openbmc_project.Led.Physical State \ s "xyz.openbmc_project.Led.Physical.Action.Off"
Set the LED State
busctl set-property xyz.openbmc_project.LED.Controller.identify \ /xyz/openbmc_project/led/physical/identify \ xyz.openbmc_project.Led.Physical State s \ "xyz.openbmc_project.Led.Physical.Action.Off"
meson setup build cd build ninja