@@ -36,6 +36,7 @@ struct slot_table_entry {
extern void astbmc_early_init(void);
extern int64_t astbmc_ipmi_reboot(void);
extern int64_t astbmc_ipmi_power_down(uint64_t request);
+extern struct dt_node *astbmc_get_primary_lpc(void);
extern void astbmc_init(void);
extern void astbmc_ext_irq_serirq_cpld(unsigned int chip_id);
extern int pnor_init(void);
@@ -263,7 +263,7 @@ static void astbmc_fixup_bmc_sensors(void)
}
}
-static void astbmc_fixup_dt(void)
+struct dt_node *astbmc_get_primary_lpc(void)
{
struct dt_node *n, *primary_lpc = NULL;
@@ -275,6 +275,13 @@ static void astbmc_fixup_dt(void)
break;
}
+ return primary_lpc;
+}
+
+static void astbmc_fixup_dt(void)
+{
+ struct dt_node *primary_lpc = astbmc_get_primary_lpc();
+
if (!primary_lpc)
return;
@@ -22,6 +22,8 @@
#include <opal.h>
#include <psi.h>
+#include "astbmc.h"
+
static void qemu_init(void)
{
/* Setup UART console for use by Linux via OPAL API */
@@ -98,15 +100,7 @@ static void qemu_dt_fixup_rtc(struct dt_node *lpc)
static void qemu_dt_fixup(void)
{
- struct dt_node *n, *primary_lpc = NULL;
-
- /* Find the primary LPC bus */
- dt_for_each_compatible(dt_root, n, "ibm,power8-lpc") {
- if (!primary_lpc || dt_has_node_property(n, "primary", NULL))
- primary_lpc = n;
- if (dt_has_node_property(n, "#address-cells", NULL))
- break;
- }
+ struct dt_node *primary_lpc = astbmc_get_primary_lpc();
if (!primary_lpc)
return;
Signed-off-by: Cédric Le Goater <clg@fr.ibm.com> --- platforms/astbmc/astbmc.h | 1 + platforms/astbmc/common.c | 9 ++++++++- platforms/astbmc/qemu.c | 12 +++--------- 3 files changed, 12 insertions(+), 10 deletions(-)