diff options
Diffstat (limited to 'arch/arm/mach-mvebu/armada-370-xp.c')
-rw-r--r-- | arch/arm/mach-mvebu/armada-370-xp.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/arch/arm/mach-mvebu/armada-370-xp.c b/arch/arm/mach-mvebu/armada-370-xp.c index 9ba3247805..8e1463dd8b 100644 --- a/arch/arm/mach-mvebu/armada-370-xp.c +++ b/arch/arm/mach-mvebu/armada-370-xp.c @@ -112,6 +112,18 @@ static void __noreturn armada_370_xp_reset_cpu(unsigned long addr) ; } +static int armada_xp_init_soc(struct device_node *root) +{ + u32 reg; + + /* Enable GBE0, GBE1, LCD and NFC PUP */ + reg = readl(ARMADA_XP_PUP_ENABLE); + reg |= GE0_PUP_EN | GE1_PUP_EN | LCD_PUP_EN | NAND_PUP_EN | SPI_PUP_EN; + writel(reg, ARMADA_XP_PUP_ENABLE); + + return 0; +} + static int armada_370_xp_init_soc(struct device_node *root, void *context) { unsigned long phys_base, phys_size; @@ -137,10 +149,8 @@ static int armada_370_xp_init_soc(struct device_node *root, void *context) armada_370_xp_soc_id_fixup(); - /* Enable peripherals PUP */ - reg = readl(ARMADA_XP_PUP_ENABLE_BASE); - reg |= GE0_PUP_EN | GE1_PUP_EN | LCD_PUP_EN | NAND_PUP_EN | SPI_PUP_EN; - writel(reg, ARMADA_XP_PUP_ENABLE_BASE); + if (of_machine_is_compatible("marvell,armadaxp")) + armada_xp_init_soc(root); return 0; } |