summaryrefslogtreecommitdiff
path: root/arch/arm/mach-uniphier/micro-support-card.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2019-07-11 18:08:44 -0400
committerTom Rini <trini@konsulko.com>2019-07-11 18:08:44 -0400
commit79b8d3c285f4f1c2ee4b27367f2ca3ecb76ed9ce (patch)
tree20571bc51871460b41b53c906881541e4ee2ce5c /arch/arm/mach-uniphier/micro-support-card.c
parent5acce685c9227b3d4b48f6fab6a33f6d74ca9c14 (diff)
parent2ce6b82d340cf1b1e5a43f1b5c8965d0067d5246 (diff)
Merge tag 'uniphier-v2019.10' of https://gitlab.denx.de/u-boot/custodians/u-boot-uniphier
UniPhier SoC updates for v2019.10 - import DT updates from Linux - add UniPhier SPI controller driver - make U-Boot image for 64bit SoCs position independent - tidy up various init code for next generation SoCs - misc cleanups
Diffstat (limited to 'arch/arm/mach-uniphier/micro-support-card.c')
-rw-r--r--arch/arm/mach-uniphier/micro-support-card.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-uniphier/micro-support-card.c b/arch/arm/mach-uniphier/micro-support-card.c
index 1be5685c6f..46879019fd 100644
--- a/arch/arm/mach-uniphier/micro-support-card.c
+++ b/arch/arm/mach-uniphier/micro-support-card.c
@@ -18,6 +18,25 @@
#define MICRO_SUPPORT_CARD_RESET ((MICRO_SUPPORT_CARD_BASE) + 0xd0034)
#define MICRO_SUPPORT_CARD_REVISION ((MICRO_SUPPORT_CARD_BASE) + 0xd00E0)
+static bool support_card_found;
+
+static void support_card_detect(void)
+{
+ DECLARE_GLOBAL_DATA_PTR;
+ const void *fdt = gd->fdt_blob;
+ int offset;
+
+ offset = fdt_node_offset_by_compatible(fdt, 0, "smsc,lan9118");
+ if (offset < 0)
+ return;
+
+ offset = fdt_node_offset_by_compatible(fdt, 0, "ns16550a");
+ if (offset < 0)
+ return;
+
+ support_card_found = true;
+}
+
/*
* 0: reset deassert, 1: reset
*
@@ -51,6 +70,11 @@ static int support_card_show_revision(void)
void support_card_init(void)
{
+ support_card_detect();
+
+ if (!support_card_found)
+ return;
+
support_card_reset();
/*
* After power on, we need to keep the LAN controller in reset state
@@ -67,6 +91,9 @@ void support_card_init(void)
int board_eth_init(bd_t *bis)
{
+ if (!support_card_found)
+ return 0;
+
return smc911x_initialize(0, SMC911X_BASE);
}
#endif
@@ -161,6 +188,9 @@ static void detect_num_flash_banks(void)
void support_card_late_init(void)
{
+ if (!support_card_found)
+ return;
+
detect_num_flash_banks();
}
@@ -221,6 +251,9 @@ void led_puts(const char *s)
int i;
u32 val = 0;
+ if (!support_card_found)
+ return;
+
if (!s)
return;