[U-Boot] [PATCH][AT91 rework 2/2] make pm9261 buildable for v2011.06 release

Asen Chavdarov Dimov dimov at ronetix.at
Thu Jun 9 10:00:09 CEST 2011


Signed-off-by: Asen Chavdarov Dimov <dimov at ronetix.at>
---
 board/ronetix/pm9261/led.c    |    9 ++++-----
 board/ronetix/pm9261/pm9261.c |   36 +++++++++++++++++-------------------
 boards.cfg                    |    2 +-
 include/configs/pm9261.h      |   18 ++++++++++--------
 4 files changed, 32 insertions(+), 33 deletions(-)

diff --git a/board/ronetix/pm9261/led.c b/board/ronetix/pm9261/led.c
index ff21ce6..f659870 100644
--- a/board/ronetix/pm9261/led.c
+++ b/board/ronetix/pm9261/led.c
@@ -24,17 +24,16 @@
  */
 
 #include <common.h>
-#include <asm/arch/at91sam9261.h>
 #include <asm/arch/at91_pmc.h>
-#include <asm/arch/at91_pio.h>
-#include <asm/arch/io.h>
+#include <asm/arch/gpio.h>
+#include <asm/io.h>
 
 void coloured_LED_init(void)
 {
-	at91_pmc_t	*pmc	= (at91_pmc_t *) AT91_PMC_BASE;
+	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
 
 	/* Enable clock */
-	writel(1 << AT91SAM9261_ID_PIOC, &pmc->pcer);
+	writel(1 << ATMEL_ID_PIOC, &pmc->pcer);
 
 	at91_set_pio_output(CONFIG_RED_LED, 1);
 	at91_set_pio_output(CONFIG_GREEN_LED, 1);
diff --git a/board/ronetix/pm9261/pm9261.c b/board/ronetix/pm9261/pm9261.c
index e0f44dd..ed952fe 100644
--- a/board/ronetix/pm9261/pm9261.c
+++ b/board/ronetix/pm9261/pm9261.c
@@ -26,17 +26,15 @@
 
 #include <common.h>
 #include <asm/sizes.h>
-#include <asm/arch/at91sam9261.h>
+#include <asm/io.h>
 #include <asm/arch/at91sam9_smc.h>
 #include <asm/arch/at91_common.h>
 #include <asm/arch/at91_pmc.h>
 #include <asm/arch/at91_rstc.h>
 #include <asm/arch/at91_matrix.h>
-#include <asm/arch/at91_pio.h>
 #include <asm/arch/clk.h>
-#include <asm/arch/at91_pio.h>
-#include <asm/arch/io.h>
-#include <asm/arch/hardware.h>
+#include <asm/arch/gpio.h>
+
 #include <lcd.h>
 #include <atmel_lcdc.h>
 #include <dataflash.h>
@@ -56,9 +54,9 @@ DECLARE_GLOBAL_DATA_PTR;
 static void pm9261_nand_hw_init(void)
 {
 	unsigned long csa;
-	at91_smc_t 	*smc 	= (at91_smc_t *) AT91_SMC_BASE;
-	at91_matrix_t 	*matrix = (at91_matrix_t *) AT91_MATRIX_BASE;
-	at91_pmc_t	*pmc	= (at91_pmc_t *) AT91_PMC_BASE;
+	struct at91_smc *smc = (struct at91_smc *)ATMEL_BASE_SMC;
+	struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX;
+	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
 
 	/* Enable CS3 */
 	csa = readl(&matrix->csa) | AT91_MATRIX_CSA_EBI_CS3A;
@@ -86,8 +84,8 @@ static void pm9261_nand_hw_init(void)
 		AT91_SMC_MODE_TDF_CYCLE(2),
 		&smc->cs[3].mode);
 
-	writel(1 << AT91SAM9261_ID_PIOA |
-		1 << AT91SAM9261_ID_PIOC,
+	writel(1 << ATMEL_ID_PIOA |
+		1 << ATMEL_ID_PIOC,
 		&pmc->pcer);
 
 	/* Configure RDY/BSY */
@@ -105,8 +103,8 @@ static void pm9261_nand_hw_init(void)
 #ifdef CONFIG_DRIVER_DM9000
 static void pm9261_dm9000_hw_init(void)
 {
-	at91_smc_t 	*smc 	= (at91_smc_t *) AT91_SMC_BASE;
-	at91_pmc_t	*pmc	= (at91_pmc_t *) AT91_PMC_BASE;
+	struct at91_smc *smc = (struct at91_smc *)ATMEL_BASE_SMC;
+	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
 
 	/* Configure SMC CS2 for DM9000 */
 	writel(AT91_SMC_SETUP_NWE(2) | AT91_SMC_SETUP_NCS_WR(0) |
@@ -127,7 +125,7 @@ static void pm9261_dm9000_hw_init(void)
 		&smc->cs[2].mode);
 
 	/* Configure Interrupt pin as input, no pull-up */
-	writel(1 << AT91SAM9261_ID_PIOA, &pmc->pcer);
+	writel(1 << ATMEL_ID_PIOA, &pmc->pcer);
 	at91_set_pio_input(AT91_PIO_PORTA, 24, 0);
 }
 #endif
@@ -147,7 +145,7 @@ vidinfo_t panel_info = {
 	vl_vsync_len:	1,
 	vl_upper_margin:1,
 	vl_lower_margin:0,
-	mmio:		AT91SAM9261_LCDC_BASE,
+	mmio:		ATMEL_BASE_LCDC,
 };
 
 void lcd_enable(void)
@@ -162,7 +160,7 @@ void lcd_disable(void)
 
 static void pm9261_lcd_hw_init(void)
 {
-	at91_pmc_t	*pmc	= (at91_pmc_t *) AT91_PMC_BASE;
+	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
 
 	at91_set_a_periph(AT91_PIO_PORTB, 1, 0);	/* LCDHSYNC */
 	at91_set_a_periph(AT91_PIO_PORTB, 2, 0);	/* LCDDOTCK */
@@ -189,7 +187,7 @@ static void pm9261_lcd_hw_init(void)
 
 	writel(1 << 17, &pmc->scer); /* LCD controller Clock, AT91SAM9261 only */
 
-	gd->fb_base = AT91SAM9261_SRAM_BASE;
+	gd->fb_base = ATMEL_BASE_SRAM;
 }
 
 #ifdef CONFIG_LCD_INFO
@@ -241,13 +239,13 @@ void lcd_show_board_info(void)
 
 int board_init(void)
 {
-	at91_pmc_t	*pmc	= (at91_pmc_t *) AT91_PMC_BASE;
+	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
 
 	/* Enable Ctrlc */
 	console_init_f();
 
-	writel(1 << AT91SAM9261_ID_PIOA |
-		1 << AT91SAM9261_ID_PIOC,
+	writel(1 << ATMEL_ID_PIOA |
+		1 << ATMEL_ID_PIOC,
 		&pmc->pcer);
 
 	/* arch number of PM9261-Board */
diff --git a/boards.cfg b/boards.cfg
index ac20c81..3c45a8f 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -99,7 +99,7 @@ meesc                        arm         arm926ejs   meesc               esd
 meesc_dataflash              arm         arm926ejs   meesc               esd            at91        meesc:AT91SAM9263,SYS_USE_DATAFLASH
 otc570                       arm         arm926ejs   otc570              esd            at91        otc570:AT91SAM9263,SYS_USE_NANDFLASH
 otc570_dataflash             arm         arm926ejs   otc570              esd            at91        otc570:AT91SAM9263,SYS_USE_DATAFLASH
-pm9261                       arm         arm926ejs   -                   ronetix        at91
+pm9261                       arm         arm926ejs   pm9261              ronetix        at91        pm9261:AT91SAM9261
 pm9263                       arm         arm926ejs   -                   ronetix        at91
 da830evm                     arm         arm926ejs   da8xxevm            davinci        davinci
 da850evm                     arm         arm926ejs   da8xxevm            davinci        davinci
diff --git a/include/configs/pm9261.h b/include/configs/pm9261.h
index 26e5049..3a8b095 100644
--- a/include/configs/pm9261.h
+++ b/include/configs/pm9261.h
@@ -28,25 +28,29 @@
 #ifndef __CONFIG_H
 #define __CONFIG_H
 
+/*
+ * SoC must be defined first, before hardware.h is included.
+ * In this case SoC is defined in boards.cfg.
+ */
+
+#include <asm/hardware.h>
 /* ARM asynchronous clock */
-#define CONFIG_SYS_AT91_CPU_NAME	"AT91SAM9261"
 
 #define CONFIG_DISPLAY_BOARDINFO
 
 #define MASTER_PLL_DIV		15
 #define MASTER_PLL_MUL		162
 #define MAIN_PLL_DIV		2
+#define CONFIG_SYS_AT91_SLOW_CLOCK	32768		/* slow clock xtal */
 #define CONFIG_SYS_AT91_MAIN_CLOCK	18432000
 
 #define CONFIG_SYS_HZ		1000
 
-#define CONFIG_ARM926EJS	1	/* This is an ARM926EJS Core	*/
-#define CONFIG_AT91SAM9261	1	/* It's an Atmel AT91SAM9261 SoC*/
+#define CONFIG_SYS_AT91_CPU_NAME	"AT91SAM9261"
 #define CONFIG_PM9261		1	/* on a Ronetix PM9261 Board	*/
 #define CONFIG_ARCH_CPU_INIT
 #undef CONFIG_USE_IRQ			/* we don't need IRQ/FIQ stuff	*/
 #define CONFIG_SYS_TEXT_BASE	0
-#define CONFIG_AT91FAMILY
 
 /* clocks */
 /* CKGR_MOR - enable main osc. */
@@ -160,10 +164,8 @@
  */
 #define CONFIG_AT91_GPIO	1
 #define CONFIG_ATMEL_USART	1
-#undef CONFIG_USART0
-#undef CONFIG_USART1
-#undef CONFIG_USART2
-#define CONFIG_USART3		1	/* USART 3 is DBGU */
+#define CONFIG_USART_BASE		ATMEL_BASE_DBGU
+#define	CONFIG_USART_ID			ATMEL_ID_SYS
 
 /* LCD */
 #define CONFIG_LCD			1
-- 
1.7.4.4



More information about the U-Boot mailing list