| 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