Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e57556e3 authored by Jean-Christophe PLAGNIOL-VILLARD's avatar Jean-Christophe PLAGNIOL-VILLARD
Browse files

at91rm9200: introduce at91rm9200_set_type to specficy cpu package



as we can not detect it
by defaut the type will be bga
introduce cpu_is_at91rm9200_bga and cpu_is_at91rm9200_pqfp

Signed-off-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: Patrice Vilchez <patrice.vilchez@atmel.com>
parent 3d51f259
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include <mach/at91rm9200.h>
#include <mach/at91_pmc.h>
#include <mach/at91_st.h>
#include <mach/cpu.h>

#include "generic.h"
#include "clock.h"
@@ -303,6 +304,13 @@ static void at91rm9200_reset(void)
	at91_sys_write(AT91_ST_CR, AT91_ST_WDRST);
}

int rm9200_type;
EXPORT_SYMBOL(rm9200_type);

void __init at91rm9200_set_type(int type)
{
	rm9200_type = type;
}

/* --------------------------------------------------------------------
 *  AT91RM9200 processor initialization
@@ -313,7 +321,7 @@ void __init at91rm9200_map_io(void)
	iotable_init(at91rm9200_io_desc, ARRAY_SIZE(at91rm9200_io_desc));
}

void __init at91rm9200_initialize(unsigned long main_clock, unsigned short banks)
void __init at91rm9200_initialize(unsigned long main_clock)
{
	at91_arch_reset = at91rm9200_reset;
	at91_extern_irq = (1 << AT91RM9200_ID_IRQ0) | (1 << AT91RM9200_ID_IRQ1)
@@ -328,7 +336,8 @@ void __init at91rm9200_initialize(unsigned long main_clock, unsigned short banks
	at91rm9200_register_clocks();

	/* Initialize GPIO subsystem */
	at91_gpio_init(at91rm9200_gpio, banks);
	at91_gpio_init(at91rm9200_gpio,
		cpu_is_at91rm9200_bga() ? AT91RM9200_BGA : AT91RM9200_PQFP);
}


+5 −1
Original line number Diff line number Diff line
@@ -35,14 +35,18 @@

#include <mach/board.h>
#include <mach/gpio.h>
#include <mach/cpu.h>

#include "generic.h"


static void __init onearm_init_early(void)
{
	/* Set cpu type: PQFP */
	at91rm9200_set_type(ARCH_REVISON_9200_PQFP);

	/* Initialize processor: 18.432 MHz crystal */
	at91rm9200_initialize(18432000, AT91RM9200_PQFP);
	at91rm9200_initialize(18432000);

	/* DBGU on ttyS0. (Rx & Tx only) */
	at91_register_uart(0, 0, 0);
+1 −1
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@
static void __init carmeva_init_early(void)
{
	/* Initialize processor: 20.000 MHz crystal */
	at91rm9200_initialize(20000000, AT91RM9200_BGA);
	at91rm9200_initialize(20000000);

	/* DBGU on ttyS0. (Rx & Tx only) */
	at91_register_uart(0, 0, 0);
+5 −1
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@
#include <mach/board.h>
#include <mach/gpio.h>
#include <mach/at91rm9200_mc.h>
#include <mach/cpu.h>

#include "generic.h"

@@ -52,8 +53,11 @@ static struct gpio_led cpuat91_leds[] = {

static void __init cpuat91_init_early(void)
{
	/* Set cpu type: PQFP */
	at91rm9200_set_type(ARCH_REVISON_9200_PQFP);

	/* Initialize processor: 18.432 MHz crystal */
	at91rm9200_initialize(18432000, AT91RM9200_PQFP);
	at91rm9200_initialize(18432000);

	/* DBGU on ttyS0. (Rx & Tx only) */
	at91_register_uart(0, 0, 0);
+1 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@
static void __init csb337_init_early(void)
{
	/* Initialize processor: 3.6864 MHz crystal */
	at91rm9200_initialize(3686400, AT91RM9200_BGA);
	at91rm9200_initialize(3686400);

	/* Setup the LEDs */
	at91_init_leds(AT91_PIN_PB0, AT91_PIN_PB1);
Loading