Skip to content

Commit

Permalink
ARM: at91/dt: add specific DT soc init
Browse files Browse the repository at this point in the history
This will allow to have static Device mapping and DT probe mapping for the
System Controller.

Temporary keep the call to ioremap_registers() until we have the binding
for the SDRAM/DDR Controller.

Temporary keep the main clock hardcoded to 12MHz until we have the binding
for the PMC.

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
  • Loading branch information
Jean-Christophe PLAGNIOL-VILLARD committed Mar 15, 2012
1 parent 8bf7ec6 commit 2b11ea5
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 7 deletions.
8 changes: 1 addition & 7 deletions arch/arm/mach-at91/board-dt.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,6 @@
#include "generic.h"


static void __init ek_init_early(void)
{
/* Initialize processor: 12.000 MHz crystal */
at91_initialize(12000000);
}

static const struct of_device_id irq_of_match[] __initconst = {

{ .compatible = "atmel,at91rm9200-aic", .data = at91_aic_of_init },
Expand Down Expand Up @@ -65,7 +59,7 @@ DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM (Device Tree)")
/* Maintainer: Atmel */
.timer = &at91sam926x_timer,
.map_io = at91_map_io,
.init_early = ek_init_early,
.init_early = at91_dt_initialize,
.init_irq = at91_dt_init_irq,
.init_machine = at91_dt_device_init,
.dt_compat = at91_dt_board_compat,
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-at91/generic.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ extern void __init at91_init_sram(int bank, unsigned long base,
extern void __init at91rm9200_set_type(int type);
extern void __init at91_initialize(unsigned long main_clock);
extern void __init at91x40_initialize(unsigned long main_clock);
extern void __init at91_dt_initialize(void);

/* Interrupts */
extern void __init at91_init_irq_default(void);
Expand Down
18 changes: 18 additions & 0 deletions arch/arm/mach-at91/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <linux/io.h>
#include <linux/mm.h>
#include <linux/pm.h>
#include <linux/of_address.h>

#include <asm/mach/map.h>

Expand Down Expand Up @@ -285,6 +286,23 @@ void __init at91_ioremap_matrix(u32 base_addr)
panic("Impossible to ioremap at91_matrix_base\n");
}

#if defined(CONFIG_OF)
void __init at91_dt_initialize(void)
{
/* temporary until have the ramc binding*/
at91_boot_soc.ioremap_registers();

/* temporary until have the pmc binding */
/* Init clock subsystem */
at91_clock_init(12000000);

/* Register the processor-specific clocks */
at91_boot_soc.register_clocks();

at91_boot_soc.init();
}
#endif

void __init at91_initialize(unsigned long main_clock)
{
at91_boot_soc.ioremap_registers();
Expand Down

0 comments on commit 2b11ea5

Please sign in to comment.