meta-yadro: vegman: led-manager configuration

This brings LEDs description for phosphor-led-manager. This
configuration only describes LED groups.

Real LED control will be introduced in later commits with
phosphor-dbus-monitor configuration once we set other required
components.

Signed-off-by: Andrei Kartashev <a.kartashev@yadro.com>
Change-Id: I74b9f86b9d2c43d8b4f5728f330fe06b19b1e08a
diff --git a/meta-yadro/meta-vegman/conf/machine/include/vegman.inc b/meta-yadro/meta-vegman/conf/machine/include/vegman.inc
index cc98dff..37d125e 100644
--- a/meta-yadro/meta-vegman/conf/machine/include/vegman.inc
+++ b/meta-yadro/meta-vegman/conf/machine/include/vegman.inc
@@ -13,6 +13,8 @@
 
 IMAGE_FEATURES += "allow-root-login"
 
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "vegman-led-manager-config-native"
+
 PREFERRED_PROVIDER_virtual/bootloader = "u-boot-aspeed-sdk"
 PREFERRED_PROVIDER_u-boot = "u-boot-aspeed-sdk"
 PREFERRED_PROVIDER_u-boot-fw-utils = "u-boot-fw-utils-aspeed-sdk"
diff --git a/meta-yadro/meta-vegman/conf/machine/vegman-rx20.conf b/meta-yadro/meta-vegman/conf/machine/vegman-rx20.conf
index a14060b..43f331d 100644
--- a/meta-yadro/meta-vegman/conf/machine/vegman-rx20.conf
+++ b/meta-yadro/meta-vegman/conf/machine/vegman-rx20.conf
@@ -1 +1,2 @@
 require conf/machine/include/vegman.inc
+PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "rx20-led-manager-config-native"
diff --git a/meta-yadro/meta-vegman/recipes-phosphor/leds/rx20-led-manager-config-native.bb b/meta-yadro/meta-vegman/recipes-phosphor/leds/rx20-led-manager-config-native.bb
new file mode 100644
index 0000000..76b57eb
--- /dev/null
+++ b/meta-yadro/meta-vegman/recipes-phosphor/leds/rx20-led-manager-config-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Phosphor LED Group Management for VEGMAN-Rx20"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit native
+
+PROVIDES += "virtual/phosphor-led-manager-config-native"
+
+SRC_URI += "file://led.yaml"
+S = "${WORKDIR}"
+
+# Overwrite the example led layout yaml file prior
+# to building the phosphor-led-manager package
+do_install() {
+    SRC=${S}
+    DEST=${D}${datadir}/phosphor-led-manager
+    install -D ${SRC}/led.yaml ${DEST}/led.yaml
+}
diff --git a/meta-yadro/meta-vegman/recipes-phosphor/leds/rx20-led-manager-config/led.yaml b/meta-yadro/meta-vegman/recipes-phosphor/leds/rx20-led-manager-config/led.yaml
new file mode 100644
index 0000000..bc5834e
--- /dev/null
+++ b/meta-yadro/meta-vegman/recipes-phosphor/leds/rx20-led-manager-config/led.yaml
@@ -0,0 +1,123 @@
+bmc_booted:
+    # No LED required.
+
+# Status LED indication
+# Managed by callback-manager
+status_ok:
+    platform_status_green:
+        Action: 'On'
+    platform_status_red:
+        Action: 'Off'
+
+status_degraded:
+    platform_status_green:
+        Action: 'Blink'
+    platform_status_red:
+        Action: 'Blink'
+
+status_non_critical:
+    platform_status_green:
+        Action: 'Off'
+    platform_status_red:
+        Action: 'Blink'
+
+status_critical:
+    platform_status_green:
+        Action: 'Off'
+    platform_status_red:
+        Action: 'On'
+
+
+enclosure_identify:
+    platform_indicator_blue:
+        Action: 'On'
+
+#
+# May be asserted through IPMI or RedFish.
+# We decided that it should be the same as enclosure_identify.
+enclosure_identify_blink:
+    platform_indicator_blue:
+        Action: 'On'
+
+#
+# Asserted while firmware is flashing
+firmware_flashing:
+    platform_indicator_blue:
+        Action: 'Blink'
+
+#
+# Power button indication
+# Managed by phosphor-dbus-monitor
+power_standby:
+    platform_power_green:
+        Action: 'On'
+    platform_power_red:
+        Action: 'On'
+
+power_sequence:
+    platform_power_green:
+        Action: 'Blink'
+        DutyOn: 50
+        Period: 1000
+    platform_power_red:
+        Action: 'Off'
+
+power_on:
+    platform_power_green:
+        Action: 'On'
+    platform_power_red:
+        Action: 'Off'
+
+power_failure:
+    platform_power_green:
+        Action: 'Off'
+    platform_power_red:
+        Action: 'On'
+
+#
+# Temperature status
+# Managed by phosphor-dbus-monitor
+temp_ok:
+    temp_status_green:
+        Action: 'On'
+    temp_status_red:
+        Action: 'Off'
+
+temp_failure:
+    temp_status_green:
+        Action: 'Blink'
+    temp_status_red:
+        Action: 'Blink'
+
+temp_warn:
+    temp_status_green:
+        Action: 'On'
+    temp_status_red:
+        Action: 'On'
+
+temp_crit:
+    temp_status_green:
+        Action: 'Off'
+    temp_status_red:
+        Action: 'On'
+
+#
+# PSU status
+# Managed by phosphor-dbus-monitor
+psu_ok:
+    psu_status_green:
+        Action: 'On'
+    psu_status_red:
+        Action: 'Off'
+
+psu_warn:
+    psu_status_green:
+        Action: 'Blink'
+    psu_status_red:
+        Action: 'Blink'
+
+psu_crit:
+    psu_status_green:
+        Action: 'Off'
+    psu_status_red:
+        Action: 'Blink'
diff --git a/meta-yadro/meta-vegman/recipes-phosphor/leds/vegman-led-manager-config-native.bb b/meta-yadro/meta-vegman/recipes-phosphor/leds/vegman-led-manager-config-native.bb
new file mode 100644
index 0000000..f5f4586
--- /dev/null
+++ b/meta-yadro/meta-vegman/recipes-phosphor/leds/vegman-led-manager-config-native.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Phosphor LED Group Management for VEGMAN"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit native
+
+PROVIDES += "virtual/phosphor-led-manager-config-native"
+
+SRC_URI += "file://led.yaml"
+S = "${WORKDIR}"
+
+# Overwrite the example led layout yaml file prior
+# to building the phosphor-led-manager package
+do_install() {
+    SRC=${S}
+    DEST=${D}${datadir}/phosphor-led-manager
+    install -D ${SRC}/led.yaml ${DEST}/led.yaml
+}
diff --git a/meta-yadro/meta-vegman/recipes-phosphor/leds/vegman-led-manager-config/led.yaml b/meta-yadro/meta-vegman/recipes-phosphor/leds/vegman-led-manager-config/led.yaml
new file mode 100644
index 0000000..922d993
--- /dev/null
+++ b/meta-yadro/meta-vegman/recipes-phosphor/leds/vegman-led-manager-config/led.yaml
@@ -0,0 +1,82 @@
+bmc_booted:
+    # No LED required.
+
+# Status LED indication
+# Managed by callback-manager
+# NOTE: The green LED actually has different colors on the front and rear
+#       panels. So, we decided not to use it.
+#       See https://j.yadro.com/browse/BBMC-221 for details.
+status_ok:
+    platform_status_green:
+        Action: 'Off'
+    platform_status_red:
+        Action: 'Off'
+
+status_degraded:
+    platform_status_green:
+        Action: 'Off'
+    platform_status_red:
+        Action: 'Blink'
+        DutyOn: 25
+        Period: 2000
+
+status_non_critical:
+    platform_status_green:
+        Action: 'Off'
+    platform_status_red:
+        Action: 'Blink'
+        DutyOn: 50
+        Period: 1000
+
+status_critical:
+    platform_status_green:
+        Action: 'Off'
+    platform_status_red:
+        Action: 'On'
+
+enclosure_identify:
+    platform_indicator_blue:
+        Action: 'On'
+
+#
+# May be asserted through IPMI or RedFish.
+# We decided that it should be the same as enclosure_identify.
+enclosure_identify_blink:
+    platform_indicator_blue:
+        Action: 'On'
+
+#
+# Asserted while firmware is flashing
+firmware_flashing:
+    platform_indicator_blue:
+        Action: 'Blink'
+
+#
+# Power button indication
+# Managed by phosphor-dbus-monitor
+power_standby:
+    platform_power_green:
+        Action: 'On'
+    platform_power_red:
+        Action: 'On'
+
+power_sequence:
+    platform_power_green:
+        Action: 'Blink'
+        DutyOn: 50
+        Period: 1000
+    platform_power_red:
+        Action: 'Off'
+
+power_on:
+    platform_power_green:
+        Action: 'On'
+    platform_power_red:
+        Action: 'Off'
+
+power_failure:
+    platform_power_green:
+        Action: 'Off'
+    platform_power_red:
+        Action: 'On'
+