Commit 2b45e05f authored by Jason Cooper's avatar Jason Cooper

ARM: kirkwood: fdt: absorb kirkwood_init()

We need to absorb kirkwood_init() into kirkwood_dt_init() so that as we
convert drivers, we can remove the platform call, eg
kirkwood_rtc_init().  This maintains compatibility with non-fdt
configurations because they still call kirkwood_init() in common.c.

As drivers are converted, we will reinstate the 'static' qualifier in
common.c.
Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent b77816de
...@@ -29,7 +29,9 @@ ...@@ -29,7 +29,9 @@
#include <linux/spi/orion_spi.h> #include <linux/spi/orion_spi.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <mach/kirkwood.h> #include <mach/kirkwood.h>
#include <mach/bridge-regs.h>
#include <plat/mvsdio.h> #include <plat/mvsdio.h>
#include "common.h" #include "common.h"
#include "mpp.h" #include "mpp.h"
...@@ -155,7 +157,32 @@ static void __init dreamplug_init(void) ...@@ -155,7 +157,32 @@ static void __init dreamplug_init(void)
static void __init kirkwood_dt_init(void) static void __init kirkwood_dt_init(void)
{ {
kirkwood_init(); pr_info("Kirkwood: %s, TCLK=%d.\n", kirkwood_id(), kirkwood_tclk);
/*
* Disable propagation of mbus errors to the CPU local bus,
* as this causes mbus errors (which can occur for example
* for PCI aborts) to throw CPU aborts, which we're not set
* up to deal with.
*/
writel(readl(CPU_CONFIG) & ~CPU_CONFIG_ERROR_PROP, CPU_CONFIG);
kirkwood_setup_cpu_mbus();
#ifdef CONFIG_CACHE_FEROCEON_L2
kirkwood_l2_init();
#endif
/* internal devices that every board has */
kirkwood_rtc_init();
kirkwood_wdt_init();
kirkwood_xor0_init();
kirkwood_xor1_init();
kirkwood_crypto_init();
#ifdef CONFIG_KEXEC
kexec_reinit = kirkwood_enable_pcie;
#endif
if (of_machine_is_compatible("globalscale,dreamplug")) if (of_machine_is_compatible("globalscale,dreamplug"))
dreamplug_init(); dreamplug_init();
......
...@@ -163,7 +163,7 @@ void __init kirkwood_nand_init_rnb(struct mtd_partition *parts, int nr_parts, ...@@ -163,7 +163,7 @@ void __init kirkwood_nand_init_rnb(struct mtd_partition *parts, int nr_parts,
/***************************************************************************** /*****************************************************************************
* SoC RTC * SoC RTC
****************************************************************************/ ****************************************************************************/
static void __init kirkwood_rtc_init(void) void __init kirkwood_rtc_init(void)
{ {
orion_rtc_init(RTC_PHYS_BASE, IRQ_KIRKWOOD_RTC); orion_rtc_init(RTC_PHYS_BASE, IRQ_KIRKWOOD_RTC);
} }
...@@ -279,7 +279,7 @@ void __init kirkwood_crypto_init(void) ...@@ -279,7 +279,7 @@ void __init kirkwood_crypto_init(void)
/***************************************************************************** /*****************************************************************************
* XOR0 * XOR0
****************************************************************************/ ****************************************************************************/
static void __init kirkwood_xor0_init(void) void __init kirkwood_xor0_init(void)
{ {
kirkwood_clk_ctrl |= CGC_XOR0; kirkwood_clk_ctrl |= CGC_XOR0;
...@@ -291,7 +291,7 @@ static void __init kirkwood_xor0_init(void) ...@@ -291,7 +291,7 @@ static void __init kirkwood_xor0_init(void)
/***************************************************************************** /*****************************************************************************
* XOR1 * XOR1
****************************************************************************/ ****************************************************************************/
static void __init kirkwood_xor1_init(void) void __init kirkwood_xor1_init(void)
{ {
kirkwood_clk_ctrl |= CGC_XOR1; kirkwood_clk_ctrl |= CGC_XOR1;
...@@ -303,7 +303,7 @@ static void __init kirkwood_xor1_init(void) ...@@ -303,7 +303,7 @@ static void __init kirkwood_xor1_init(void)
/***************************************************************************** /*****************************************************************************
* Watchdog * Watchdog
****************************************************************************/ ****************************************************************************/
static void __init kirkwood_wdt_init(void) void __init kirkwood_wdt_init(void)
{ {
orion_wdt_init(kirkwood_tclk); orion_wdt_init(kirkwood_tclk);
} }
...@@ -392,7 +392,7 @@ void __init kirkwood_audio_init(void) ...@@ -392,7 +392,7 @@ void __init kirkwood_audio_init(void)
/* /*
* Identify device ID and revision. * Identify device ID and revision.
*/ */
static char * __init kirkwood_id(void) char * __init kirkwood_id(void)
{ {
u32 dev, rev; u32 dev, rev;
...@@ -435,7 +435,7 @@ static char * __init kirkwood_id(void) ...@@ -435,7 +435,7 @@ static char * __init kirkwood_id(void)
} }
} }
static void __init kirkwood_l2_init(void) void __init kirkwood_l2_init(void)
{ {
#ifdef CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH #ifdef CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH
writel(readl(L2_CONFIG_REG) | L2_WRITETHROUGH, L2_CONFIG_REG); writel(readl(L2_CONFIG_REG) | L2_WRITETHROUGH, L2_CONFIG_REG);
......
...@@ -51,6 +51,14 @@ void kirkwood_nand_init_rnb(struct mtd_partition *parts, int nr_parts, int (*dev ...@@ -51,6 +51,14 @@ void kirkwood_nand_init_rnb(struct mtd_partition *parts, int nr_parts, int (*dev
void kirkwood_audio_init(void); void kirkwood_audio_init(void);
void kirkwood_restart(char, const char *); void kirkwood_restart(char, const char *);
char *kirkwood_id(void);
void kirkwood_l2_init(void);
void kirkwood_rtc_init(void);
void kirkwood_wdt_init(void);
void kirkwood_xor0_init(void);
void kirkwood_xor1_init(void);
void kirkwood_crypto_init(void);
extern int kirkwood_tclk; extern int kirkwood_tclk;
extern struct sys_timer kirkwood_timer; extern struct sys_timer kirkwood_timer;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment