[U-Boot] [PATCH 2/2] Add Nomadik board "usb-s8815" by Calao vendor

Alessandro Rubini rubini-list at gnudd.com
Mon Jan 18 23:13:59 CET 2010


Signed-off-by: Alessandro Rubini <rubini at gnudd.com>
Cc: Gregory Hermant <gregory.hermant at calao-systems.com>
---
 MAINTAINERS                                        |    4 +
 Makefile                                           |    4 +
 board/{st/nhk8815 => calao/usb-s8815}/Makefile     |    3 +-
 board/{st/nhk8815 => calao/usb-s8815}/config.mk    |    0
 board/{st/nhk8815 => calao/usb-s8815}/lcd.c        |   34 +------
 board/{st/nhk8815 => calao/usb-s8815}/platform.S   |    0
 .../nhk8815.c => calao/usb-s8815/usb-s8815.c}      |   40 +--------
 include/configs/{nhk8815.h => usb-s8815.h}         |   98 ++++----------------
 8 files changed, 36 insertions(+), 147 deletions(-)
 copy board/{st/nhk8815 => calao/usb-s8815}/Makefile (96%)
 copy board/{st/nhk8815 => calao/usb-s8815}/config.mk (100%)
 copy board/{st/nhk8815 => calao/usb-s8815}/lcd.c (68%)
 copy board/{st/nhk8815 => calao/usb-s8815}/platform.S (100%)
 copy board/{st/nhk8815/nhk8815.c => calao/usb-s8815/usb-s8815.c} (67%)
 copy include/configs/{nhk8815.h => usb-s8815.h} (61%)

diff --git a/MAINTAINERS b/MAINTAINERS
index e8ba4bc..9d97b40 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -699,6 +699,10 @@ Nomadik Linux Team <STN_WMM_nomadik_linux at list.st.com>
 
 	nhk8815		ARM926EJS (Nomadik 8815 Soc)
 
+Alessandro Rubini <rubini at gnudd.com>
+
+	usb-s8815	ARM926EJS (Nomadik 8815 Soc)
+
 Steve Sakoman <sakoman at gmail.com>
 
 	omap3_overo	ARM CORTEX-A8 (OMAP3xx SoC)
diff --git a/Makefile b/Makefile
index 793fcec..39e9a09 100644
--- a/Makefile
+++ b/Makefile
@@ -3068,6 +3068,10 @@ trab_old_config:	unconfig
 		}
 	@$(MKCONFIG) -a $(call xtract_trab,$@) arm arm920t trab NULL s3c24x0
 
+usb-s8815_config:	unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm926ejs usb-s8815 calao nomadik
+
+
 VCMA9_config	:	unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm920t vcma9 mpl s3c24x0
 
diff --git a/board/st/nhk8815/Makefile b/board/calao/usb-s8815/Makefile
similarity index 96%
copy from board/st/nhk8815/Makefile
copy to board/calao/usb-s8815/Makefile
index 7155f12..730d374 100644
--- a/board/st/nhk8815/Makefile
+++ b/board/calao/usb-s8815/Makefile
@@ -29,8 +29,7 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(BOARD).a
 
-COBJS-y	:= nhk8815.o
-COBJS-$(CONFIG_NHK8815_KEYPAD) += keypad.o
+COBJS-y	:= usb-s8815.o
 COBJS-$(CONFIG_LCD) += lcd.o
 
 COBJS	:= $(COBJS-y)
diff --git a/board/st/nhk8815/config.mk b/board/calao/usb-s8815/config.mk
similarity index 100%
copy from board/st/nhk8815/config.mk
copy to board/calao/usb-s8815/config.mk
diff --git a/board/st/nhk8815/lcd.c b/board/calao/usb-s8815/lcd.c
similarity index 68%
copy from board/st/nhk8815/lcd.c
copy to board/calao/usb-s8815/lcd.c
index d3acb48..744da67 100644
--- a/board/st/nhk8815/lcd.c
+++ b/board/calao/usb-s8815/lcd.c
@@ -1,5 +1,5 @@
 /*
- * board/st/nhk8815/lcd.c: use amba clcd and STMPE2401 for backlight/reset
+ * board/calao/usb-s8815/lcd.c: use amba clcd and STMPE2401 for backlight/reset
  *
  * Copyright 2009 Alessandro Rubini <rubini at unipv.it>
  *
@@ -24,7 +24,7 @@
 #include <common.h>
 #include <lcd.h>
 #include <amba_clcd.h>
-#include <stmpe2401.h>
+#include <asm/arch/gpio.h>
 
 /* Two configurations are supported: 32bpp and 16bpp */
 #if LCD_BPP == LCD_COLOR32
@@ -38,7 +38,7 @@
 #endif
 
 /* Horribly, these are precomputed registers */
-struct clcd_config nhk8815_clcd_config = {
+struct clcd_config s8815_clcd_config = {
 	.address =	(struct clcd_registers *)NOMADIK_CLCDC_BASE,
 	.tim0 =		0xd52600c4,	/* horizontal timings */
 	.tim1 =		0x220a01df,	/* vertical timings */
@@ -53,36 +53,14 @@ vidinfo_t panel_info = {
 	.vl_col =	800,
 	.vl_row =	480,
 	.vl_bpix =	CLCD_BPIX_VAL,
-	.priv =		&nhk8815_clcd_config,
+	.priv =		&s8815_clcd_config,
 };
 
-/* Don't turn on (too early), but configure data lines and remove reset */
+/* Set GPIO32..GPIO39 to ALTB, to enable LCD16..LCD23 */
 void lcd_enable(void)
 {
 	int i;
 
-	/* Turn the alternate functions as needed */
-	for (i = 32; i <= 39; i++)
+	for (i = 32; i < 40; i++)
 		nmk_gpio_af(i, GPIO_ALT_B);
-
-	/* EXP1_GPIO_5 = output high -- remove reset from display */
-	pe_gpio_af(STMPE1, 5, PE_GPIO_AF_GPIO);
-	pe_gpio_dir(STMPE1, 5, 1);
-	pe_gpio_set(STMPE1, 5, 1);
-}
-
-/* Called from late_init: we turn on the backlight through port expander */
-int nhk8815_backlight_on(void)
-{
-	int i;
-
-	/* Turn the alternate functions as needed */
-	for (i = 32; i <= 39; i++)
-		nmk_gpio_af(i, GPIO_ALT_B);
-
-	/* EXP0_GPIO_21 = output high -- backlight */
-	pe_gpio_af(STMPE0, 21, PE_GPIO_AF_GPIO);
-	pe_gpio_dir(STMPE0, 21, 1);
-	pe_gpio_set(STMPE0, 21, 1);
-	return 0;
 }
diff --git a/board/st/nhk8815/platform.S b/board/calao/usb-s8815/platform.S
similarity index 100%
copy from board/st/nhk8815/platform.S
copy to board/calao/usb-s8815/platform.S
diff --git a/board/st/nhk8815/nhk8815.c b/board/calao/usb-s8815/usb-s8815.c
similarity index 67%
copy from board/st/nhk8815/nhk8815.c
copy to board/calao/usb-s8815/usb-s8815.c
index fedb3c0..12ae810 100644
--- a/board/st/nhk8815/nhk8815.c
+++ b/board/calao/usb-s8815/usb-s8815.c
@@ -28,8 +28,6 @@
 #include <common.h>
 #include <netdev.h>
 #include <asm/io.h>
-#include <asm/arch/gpio.h>
-#include "nhk8815-devices.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -45,7 +43,7 @@ void show_boot_progress(int progress)
  */
 int board_init(void)
 {
-	gd->bd->bi_arch_number = MACH_TYPE_NOMADIK;
+	gd->bd->bi_arch_number = MACH_TYPE_USB_S8815;
 	gd->bd->bi_boot_params = 0x00000100;
 	writel(0xC37800F0, NOMADIK_GPIO1_BASE + 0x20);
 	writel(0x00000000, NOMADIK_GPIO1_BASE + 0x24);
@@ -56,32 +54,8 @@ int board_init(void)
 	writel(0x0000305b, REG_FSMC_BCR1);
 	writel(0x00033f33, REG_FSMC_BTR1);
 
-	/* Set up SMCS0 for OneNand: sram-like once again */
-	writel(0x000030db, NOMADIK_FSMC_BASE + 0x00); /* FSMC_BCR0 */
-	writel(0x02100551, NOMADIK_FSMC_BASE + 0x04); /* FSMC_BTR0 */
-
 	icache_enable();
 
-	/*
-	 * Configure I2C pins, as we will use I2C in a later commit
-	 */
-
-	/* Set the two I2C gpio lines to be gpio high */
-	nmk_gpio_set(__SCL, 1);	nmk_gpio_set(__SDA, 1);
-	nmk_gpio_dir(__SCL, 1);	nmk_gpio_dir(__SDA, 1);
-	nmk_gpio_af(__SCL, GPIO_GPIO); nmk_gpio_af(__SDA, GPIO_GPIO);
-
-	/* Put the two I2C port expanders out of reset, on GPIO77 and 79 */
-	{
-		int n[2]={77, 79};
-		int i;
-		for (i = 0; i < ARRAY_SIZE(n); i++) {
-			nmk_gpio_af(n[i], GPIO_GPIO);
-			nmk_gpio_dir(n[i], 1);
-			nmk_gpio_set(n[i], 1);
-		}
-	}
-
 	return 0;
 }
 
@@ -107,15 +81,3 @@ int board_eth_init(bd_t *bis)
 }
 #endif
 
-/* Initialization callback, from lib_arm/board.c */
-int board_late_init(void)
-{
-#ifdef CONFIG_NHK8815_KEYPAD
-	nhk8815_keypad_init();
-#endif
-#ifdef CONFIG_LCD
-	nhk8815_backlight_on();
-#endif
-	return 0;
-}
-
diff --git a/include/configs/nhk8815.h b/include/configs/usb-s8815.h
similarity index 61%
copy from include/configs/nhk8815.h
copy to include/configs/usb-s8815.h
index bbeea91..83df9e7 100644
--- a/include/configs/nhk8815.h
+++ b/include/configs/usb-s8815.h
@@ -1,8 +1,8 @@
 /*
  * (C) Copyright 2005
  * STMicroelectronics.
- * Configuration settings for the "Nomadik Hardware Kit" NHK-8815,
- * the evaluation board for the Nomadik 8815 System on Chip.
+ * Configuration settings for the "USBkey" S8815 by Calao.
+ * The board is similar to the NHK8815 Nomadik Evaluation Board
  *
  * See file CREDITS for list of people who contributed to this
  * project.
@@ -31,7 +31,6 @@
 #define CONFIG_ARM926EJS
 #define CONFIG_NOMADIK
 #define CONFIG_NOMADIK_8815	/* cpu variant */
-#define CONFIG_NOMADIK_NHK8815	/* board variant */
 
 #define CONFIG_SKIP_LOWLEVEL_INIT /* we have already been loaded to RAM */
 
@@ -48,12 +47,13 @@
 #define CONFIG_SYS_NO_FLASH
 /* There is NAND storage */
 #define CONFIG_NAND_NOMADIK
+#define CONFIG_NAND_NOMADIK_16BIT
 #define CONFIG_CMD_JFFS2
 
 /* user interface */
 #define CONFIG_SYS_LONGHELP
 #define CONFIG_SYS_HUSH_PARSER
-#define CONFIG_SYS_PROMPT		"Nomadik> "
+#define CONFIG_SYS_PROMPT		"S8815> "
 #define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
 #define CONFIG_CMDLINE_EDITING
 #define CONFIG_SYS_CBSIZE		256	/* Console I/O Buffer Size */
@@ -88,7 +88,7 @@
 #endif
 
 #define CONFIG_SYS_MEMTEST_START	0x00000000
-#define CONFIG_SYS_MEMTEST_END		0x0FFFFFFF
+#define CONFIG_SYS_MEMTEST_END		0x03b00000 /* we live at 0x3c0.0000 */
 #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 256 * 1024)
 #define CONFIG_SYS_GBL_DATA_SIZE	128	/* for initial data */
 
@@ -109,30 +109,6 @@
 #define CONFIG_PL01x_PORTS	{ (void *)CFG_SERIAL0, (void *)CFG_SERIAL1 }
 #define CONFIG_PL011_CLOCK	48000000
 
-/* i2c, for the stmpe2401 port extenders (uses gpio.c in board directory) */
-#ifndef __ASSEMBLY__
-#include <asm/arch/gpio.h>
-#define CONFIG_CMD_I2C
-#define CONFIG_SOFT_I2C
-#define CONFIG_SYS_I2C_SPEED	400000
-#define __SDA			63
-#define __SCL			62
-#define I2C_SDA(x)		nmk_gpio_set(__SDA, x)
-#define I2C_SCL(x)		nmk_gpio_set(__SCL, x)
-#define I2C_READ		(nmk_gpio_get(__SDA)!=0)
-#define I2C_ACTIVE		nmk_gpio_dir(__SDA, 1)
-#define I2C_TRISTATE		nmk_gpio_dir(__SDA, 0)
-#define I2C_DELAY     (udelay(2))
-#endif /* __ASSEMBLY__ */
-
-/* Activate port extenders and define their i2c address */
-#define CONFIG_STMPE2401
-#define STMPE0  0x43
-#define STMPE1  0x44
-
-/* Keypad using stmpe2401 */
-#define CONFIG_NHK8815_KEYPAD
-
 /* Display support */
 #define CONFIG_LCD
 #define CONFIG_LCD_LOGO
@@ -160,59 +136,25 @@
 #define CONFIG_TFTP_BLOCKSIZE	4096
 #define CONFIG_NFS_READ_SIZE	4096
 
-/* Storage information: onenand and nand */
-#define CONFIG_CMD_ONENAND
-#define CONFIG_MTD_ONENAND_VERIFY_WRITE
-#define CONFIG_SYS_ONENAND_BASE		0x30000000
-
+/* Storage information: internal nand */
 #define CONFIG_CMD_NAND
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
 #define CONFIG_SYS_NAND_BASE		0x40000000 /* SMPS0n */
 
-/*
- * Filesystem information
- *
- * Since U-Boot has been loaded to RAM by vendor code, we could use
- * either or both OneNand and Nand. However, we need to know where the
- * filesystem lives. Comments below report vendor-selected partitions
+/* Partition				Size	Start
+ * XloaderTOC + X-Loader		256KB	0x00000000
+ * Memory init function		256KB	0x00040000
+ * U-Boot + env			2MB	0x00080000
+ * Kernel Image			3MB	0x00280000
+ * JFFS2 Root filesystem		22MB	0x00580000
+ * JFFS2 User Data			100.5MB	0x01b80000
  */
-#ifdef CONFIG_BOOT_ONENAND
-   /* Partition				Size	Start
-    * XloaderTOC + X-Loader		256KB	0x00000000
-    * Memory init function		256KB	0x00040000
-    * U-Boot + env			2MB	0x00080000
-    * Sysimage (kernel + ramdisk)	4MB	0x00280000
-    * JFFS2 Root filesystem		22MB	0x00680000
-    * JFFS2 User Data			227.5MB	0x01C80000
-    */
-#   define CONFIG_JFFS2_DEV		"onenand0"
-#   define CONFIG_JFFS2_PART_SIZE	0x01600000
-#   define CONFIG_JFFS2_PART_OFFSET	0x00680000
-#   define CONFIG_ENV_IS_IN_ONENAND
-#   define CONFIG_ENV_SIZE		0x20000 /* 128 Kb - one sector */
-#   define CONFIG_ENV_ADDR		(0x00280000 - CONFIG_ENV_SIZE)
-
-#else /*  BOOT_NAND */
-   /* Partition				Size	Start
-    * XloaderTOC + X-Loader		256KB	0x00000000
-    * Memory init function		256KB	0x00040000
-    * U-Boot + env			2MB	0x00080000
-    * Kernel Image			3MB	0x00280000
-    * JFFS2 Root filesystem		22MB	0x00580000
-    * JFFS2 User Data			100.5MB	0x01b80000
-    */
-#   define CONFIG_JFFS2_DEV		"nand0"
-#   define CONFIG_JFFS2_NAND		1 /* For the jffs2 support*/
-#   define CONFIG_JFFS2_PART_SIZE	0x01600000
-#   define CONFIG_JFFS2_PART_OFFSET	0x00580000
-#   define CONFIG_ENV_IS_IN_NAND
-#   define CONFIG_ENV_SIZE		0x20000 /* 128 Kb - one sector */
-#   define CONFIG_ENV_OFFSET		(0x00280000 - CONFIG_ENV_SIZE)
-
-#endif /* CONFIG_BOOT_ONENAND */
-
-/* this is needed to make hello_world.c and other stuff happy */
-#define CONFIG_SYS_MAX_FLASH_SECT	512
-#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#define CONFIG_JFFS2_DEV		"nand0"
+#define CONFIG_JFFS2_NAND		1 /* For the jffs2 support*/
+#define CONFIG_JFFS2_PART_SIZE	0x01600000
+#define CONFIG_JFFS2_PART_OFFSET	0x00580000
+#define CONFIG_ENV_IS_IN_NAND
+#define CONFIG_ENV_SIZE		0x20000 /* 128 Kb - one sector */
+#define CONFIG_ENV_OFFSET		(0x00280000 - CONFIG_ENV_SIZE)
 
 #endif /* __CONFIG_H */
-- 
1.6.0.2


More information about the U-Boot mailing list