summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2013-07-09 13:14:50 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-07-09 18:57:35 +0200
commitc795803538be1b8d941a3106a67a714c893f6821 (patch)
tree824a21892eba47d92a83b550c36c8323617f18b4 /arch/arm/mach-at91
parentca27090c1e3f9336e731a9dbe46ce89d8e07f7ff (diff)
downloadbarebox-c795803538be1b8d941a3106a67a714c893f6821.tar.gz
barebox-c795803538be1b8d941a3106a67a714c893f6821.tar.xz
ARM: at91: move main clock define to C
This will allow to drop the config.h and switch to multi board support Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-at91')
-rw-r--r--arch/arm/mach-at91/at91rm9200.c3
-rw-r--r--arch/arm/mach-at91/at91sam9260.c3
-rw-r--r--arch/arm/mach-at91/at91sam9261.c3
-rw-r--r--arch/arm/mach-at91/at91sam9263.c3
-rw-r--r--arch/arm/mach-at91/at91sam9g45.c3
-rw-r--r--arch/arm/mach-at91/at91sam9n12.c3
-rw-r--r--arch/arm/mach-at91/at91sam9x5.c3
-rw-r--r--arch/arm/mach-at91/clock.c11
-rw-r--r--arch/arm/mach-at91/generic.h2
-rw-r--r--arch/arm/mach-at91/include/mach/board.h2
-rw-r--r--arch/arm/mach-at91/sama5d3.c3
-rw-r--r--arch/arm/mach-at91/setup.c4
12 files changed, 16 insertions, 27 deletions
diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c
index 8eeaa551eb..d740463745 100644
--- a/arch/arm/mach-at91/at91rm9200.c
+++ b/arch/arm/mach-at91/at91rm9200.c
@@ -225,9 +225,6 @@ static void __init at91rm9200_register_clocks(void)
* -------------------------------------------------------------------- */
static void __init at91rm9200_initialize(void)
{
- /* Init clock subsystem */
- at91_clock_init(AT91_MAIN_CLOCK);
-
/* Register the processor-specific clocks */
at91rm9200_register_clocks();
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
index fa65fe7fef..e3c2996f7d 100644
--- a/arch/arm/mach-at91/at91sam9260.c
+++ b/arch/arm/mach-at91/at91sam9260.c
@@ -224,9 +224,6 @@ static void __init at91sam9260_register_clocks(void)
static void at91sam9260_initialize(void)
{
- /* Init clock subsystem */
- at91_clock_init(AT91_MAIN_CLOCK);
-
/* Register the processor-specific clocks */
at91sam9260_register_clocks();
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c
index edac177400..c992f71eda 100644
--- a/arch/arm/mach-at91/at91sam9261.c
+++ b/arch/arm/mach-at91/at91sam9261.c
@@ -216,9 +216,6 @@ static void at91sam9261_register_clocks(void)
static void at91sam9261_initialize(void)
{
- /* Init clock subsystem */
- at91_clock_init(AT91_MAIN_CLOCK);
-
/* Register the processor-specific clocks */
at91sam9261_register_clocks();
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
index 49d280dd07..db4a7052b8 100644
--- a/arch/arm/mach-at91/at91sam9263.c
+++ b/arch/arm/mach-at91/at91sam9263.c
@@ -234,9 +234,6 @@ static void __init at91sam9263_register_clocks(void)
static void at91sam9263_initialize(void)
{
- /* Init clock subsystem */
- at91_clock_init(AT91_MAIN_CLOCK);
-
/* Register the processor-specific clocks */
at91sam9263_register_clocks();
diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
index deb9b62954..9a50debb16 100644
--- a/arch/arm/mach-at91/at91sam9g45.c
+++ b/arch/arm/mach-at91/at91sam9g45.c
@@ -247,9 +247,6 @@ static void __init at91sam9g45_register_clocks(void)
static void at91sam9g45_initialize(void)
{
- /* Init clock subsystem */
- at91_clock_init(AT91_MAIN_CLOCK);
-
/* Register the processor-specific clocks */
at91sam9g45_register_clocks();
diff --git a/arch/arm/mach-at91/at91sam9n12.c b/arch/arm/mach-at91/at91sam9n12.c
index e5aabd11e1..2a825b4369 100644
--- a/arch/arm/mach-at91/at91sam9n12.c
+++ b/arch/arm/mach-at91/at91sam9n12.c
@@ -207,9 +207,6 @@ static void __init at91sam9n12_register_clocks(void)
static void at91sam9n12_initialize(void)
{
- /* Init clock subsystem */
- at91_clock_init(AT91_MAIN_CLOCK);
-
/* Register the processor-specific clocks */
at91sam9n12_register_clocks();
diff --git a/arch/arm/mach-at91/at91sam9x5.c b/arch/arm/mach-at91/at91sam9x5.c
index 01eac18883..9ddd592b93 100644
--- a/arch/arm/mach-at91/at91sam9x5.c
+++ b/arch/arm/mach-at91/at91sam9x5.c
@@ -293,9 +293,6 @@ static void __init at91sam9x5_register_clocks(void)
static void at91sam9x5_initialize(void)
{
- /* Init clock subsystem */
- at91_clock_init(AT91_MAIN_CLOCK);
-
/* Register the processor-specific clocks */
at91sam9x5_register_clocks();
diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c
index 296f5d5d0e..a10d7f6407 100644
--- a/arch/arm/mach-at91/clock.c
+++ b/arch/arm/mach-at91/clock.c
@@ -616,13 +616,20 @@ static void at91_upll_usbfs_clock_init(unsigned long main_clock)
static int pll_overclock = 0;
static u32 cpu_freq = 0;
+static unsigned long at91_main_clock = 0;
-int at91_clock_init(unsigned long main_clock)
+void at91_set_main_clock(unsigned long rate)
+{
+ at91_main_clock = rate;
+}
+
+int at91_clock_init(void)
{
unsigned tmp, freq, mckr;
int i;
+ unsigned long main_clock;
-
+ main_clock = at91_main_clock;
/*
* When the bootloader initialized the main oscillator correctly,
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index a19c1c5391..deba019243 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -9,7 +9,7 @@
*/
/* Clocks */
-extern int __init at91_clock_init(unsigned long main_clock);
+extern int __init at91_clock_init(void);
static inline struct device_d *at91_add_rm9200_gpio(int id, resource_size_t start)
{
diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h
index 3ecc6038f6..d695020b74 100644
--- a/arch/arm/mach-at91/include/mach/board.h
+++ b/arch/arm/mach-at91/include/mach/board.h
@@ -30,6 +30,8 @@
#include <linux/phy.h>
#include <platform_data/macb.h>
+void at91_set_main_clock(unsigned long rate);
+
/* USB Host */
struct at91_usbh_data {
u8 ports; /* number of ports on root hub */
diff --git a/arch/arm/mach-at91/sama5d3.c b/arch/arm/mach-at91/sama5d3.c
index 0eec696f6e..aa681aa1d6 100644
--- a/arch/arm/mach-at91/sama5d3.c
+++ b/arch/arm/mach-at91/sama5d3.c
@@ -375,9 +375,6 @@ static void __init sama5d3_register_clocks(void)
static void sama5d3_initialize(void)
{
- /* Init clock subsystem */
- at91_clock_init(AT91_MAIN_CLOCK);
-
/* Register the processor-specific clocks */
sama5d3_register_clocks();
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c
index 0444a5fdee..65d0588b43 100644
--- a/arch/arm/mach-at91/setup.c
+++ b/arch/arm/mach-at91/setup.c
@@ -14,6 +14,7 @@
#include <mach/at91_dbgu.h>
#include "soc.h"
+#include "generic.h"
struct at91_init_soc __initdata at91_boot_soc;
@@ -233,6 +234,9 @@ static int at91_detect(void)
if (!at91_soc_is_enabled())
panic("AT91: Soc not enabled");
+ /* Init clock subsystem */
+ at91_clock_init();
+
if (at91_boot_soc.init)
at91_boot_soc.init();