xref: /openbmc/phosphor-led-sysfs/README.md (revision 0e157e9affcc54f6c015a55c9e7f7508ffe35f5e)
154995ae9SAlexander Hansen# phosphor-led-sysfs
254995ae9SAlexander Hansen
354995ae9SAlexander HansenThis project exposes physical LEDs on dbus.
454995ae9SAlexander Hansen
554995ae9SAlexander Hansen## Example
654995ae9SAlexander Hansen
754995ae9SAlexander HansenSay we have 'identify' LED in our system, which may be declared in devicetree.
854995ae9SAlexander Hansen
9*0e157e9aSGeorge Liu```text
1054995ae9SAlexander Hansenleds {
1154995ae9SAlexander Hansen    compatible = "gpio-leds";
1254995ae9SAlexander Hansen
1354995ae9SAlexander Hansen    identify {
1454995ae9SAlexander Hansen        gpios = <&gpio ASPEED_GPIO(S, 6) GPIO_ACTIVE_HIGH>;
1554995ae9SAlexander Hansen    };
1654995ae9SAlexander Hansen};
1754995ae9SAlexander Hansen```
1854995ae9SAlexander Hansen
19e6239da8SAlexander HansenWe can add an LED via the helper program. The main service is then started via
20e6239da8SAlexander Hansendbus-activation.
2154995ae9SAlexander Hansen
22*0e157e9aSGeorge Liu```sh
23e6239da8SAlexander Hansen./add-led-action --path /sys/class/leds/identify
2454995ae9SAlexander Hansen```
2554995ae9SAlexander Hansen
2654995ae9SAlexander Hansenwhich will expose following dbus objects:
2754995ae9SAlexander Hansen
28*0e157e9aSGeorge Liu```text
29e6239da8SAlexander Hansenbusctl tree xyz.openbmc_project.LED.Controller
3054995ae9SAlexander Hansen`- /xyz
3154995ae9SAlexander Hansen  `- /xyz/openbmc_project
3254995ae9SAlexander Hansen    `- /xyz/openbmc_project/led
3354995ae9SAlexander Hansen      `- /xyz/openbmc_project/led/physical
3454995ae9SAlexander Hansen        `- /xyz/openbmc_project/led/physical/identify
3554995ae9SAlexander Hansen
36e6239da8SAlexander Hansenbusctl introspect  xyz.openbmc_project.LED.Controller /xyz/openbmc_project/led/physical/identify
3754995ae9SAlexander HansenNAME                                TYPE      SIGNATURE  RESULT/VALUE                             FLAGS
3854995ae9SAlexander Hansen...
3954995ae9SAlexander Hansenxyz.openbmc_project.Led.Physical    interface -          -                                        -
4054995ae9SAlexander Hansen.Color                              property  s          "xyz.openbmc_project.Led.Physical.Pal... emits-change writable
4154995ae9SAlexander Hansen.DutyOn                             property  y          50                                       emits-change writable
4254995ae9SAlexander Hansen.Period                             property  q          1000                                     emits-change writable
4354995ae9SAlexander Hansen.State                              property  s          "xyz.openbmc_project.Led.Physical.Act... emits-change writable
4454995ae9SAlexander Hansen```
4554995ae9SAlexander Hansen
4654995ae9SAlexander HansenIn the above output, the usual org.freedesktop.\* interfaces have been removed
4754995ae9SAlexander Hansento keep it readable.
4854995ae9SAlexander Hansen
4954995ae9SAlexander Hansen## Example: using the dbus interface
5054995ae9SAlexander Hansen
5154995ae9SAlexander HansenQuery the LED State
5254995ae9SAlexander Hansen
53*0e157e9aSGeorge Liu```text
54e6239da8SAlexander Hansenbusctl get-property  xyz.openbmc_project.LED.Controller \
5554995ae9SAlexander Hansen/xyz/openbmc_project/led/physical/identify \
5654995ae9SAlexander Hansenxyz.openbmc_project.Led.Physical State \
5754995ae9SAlexander Hansens "xyz.openbmc_project.Led.Physical.Action.Off"
5854995ae9SAlexander Hansen```
5954995ae9SAlexander Hansen
6054995ae9SAlexander HansenSet the LED State
6154995ae9SAlexander Hansen
62*0e157e9aSGeorge Liu```text
63e6239da8SAlexander Hansenbusctl set-property  xyz.openbmc_project.LED.Controller \
6454995ae9SAlexander Hansen/xyz/openbmc_project/led/physical/identify \
6554995ae9SAlexander Hansenxyz.openbmc_project.Led.Physical State s \
6654995ae9SAlexander Hansen"xyz.openbmc_project.Led.Physical.Action.Off"
6754995ae9SAlexander Hansen```
6854995ae9SAlexander Hansen
6954995ae9SAlexander Hansen## How to Build
7054995ae9SAlexander Hansen
71*0e157e9aSGeorge Liu```sh
7254995ae9SAlexander Hansenmeson setup build
7354995ae9SAlexander Hansencd build
7454995ae9SAlexander Hansenninja
7554995ae9SAlexander Hansen```
76