Add README.md
Explaining the high level workings of this project.
Change-Id: I434e6790c1ec47a2b049cbd0579d23359369dc4a
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..69fb082
--- /dev/null
+++ b/README.md
@@ -0,0 +1,74 @@
+# phosphor-led-sysfs
+
+This project exposes physical LEDs on dbus.
+
+## Example
+
+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.
+
+## Example: using the dbus interface
+
+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"
+```
+
+## How to Build
+
+```
+meson setup build
+cd build
+ninja
+```