aboutsummaryrefslogtreecommitdiff
path: root/hdata/spira.c
diff options
context:
space:
mode:
authorVasant Hegde <hegdevasant@linux.vnet.ibm.com>2015-04-06 14:01:03 +0530
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-05-07 17:42:34 +1000
commit579892d785a903303eb3ebf7c7dd343752cd8286 (patch)
treee36c598534da2eb0c61d3f310a2d3fa0a696f55c /hdata/spira.c
parent9fb718a28321282f780b148b657a2a3a82e38367 (diff)
downloadskiboot-579892d785a903303eb3ebf7c7dd343752cd8286.zip
skiboot-579892d785a903303eb3ebf7c7dd343752cd8286.tar.gz
skiboot-579892d785a903303eb3ebf7c7dd343752cd8286.tar.bz2
hdata: Create LED node
Unfortunately we do not have single place to get all LED related information (Some of the information is passed via HDAT and rest via MBOX command). Lets create led node before parsing HDAT and use this node to populate all LED related information. Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hdata/spira.c')
-rw-r--r--hdata/spira.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/hdata/spira.c b/hdata/spira.c
index 8dd9a78..464fd8d 100644
--- a/hdata/spira.c
+++ b/hdata/spira.c
@@ -23,6 +23,7 @@
#include <chip.h>
#include <fsp-mdst-table.h>
#include <fsp-attn.h>
+#include <fsp-leds.h>
#include "hdata.h"
#include "hostservices.h"
@@ -906,6 +907,22 @@ uint32_t pcid_to_chip_id(uint32_t proc_chip_id)
return (uint32_t)-1;
}
+/* Create '/ibm,opal/led' node */
+static void dt_init_led_node(void)
+{
+ struct dt_node *led_node;
+
+ /* Create /ibm,opal node, if its not created already */
+ if (!opal_node) {
+ opal_node = dt_new(dt_root, "ibm,opal");
+ assert(opal_node);
+ }
+
+ /* Crete LED parent node */
+ led_node = dt_new(opal_node, DT_PROPERTY_LED_NODE);
+ assert(led_node);
+}
+
static void dt_init_vpd_node(void)
{
struct dt_node *dt_vpd;
@@ -962,6 +979,9 @@ void parse_hdat(bool is_opal, uint32_t master_cpu)
/* Create /vpd node */
dt_init_vpd_node();
+ /* Create /ibm,opal/led node */
+ dt_init_led_node();
+
/* Parse SPPACA and/or PCIA */
if (!pcia_parse())
paca_parse();