Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Librem5
uboot-imx
Commits
8155efbd
Commit
8155efbd
authored
Jun 05, 2008
by
Wolfgang Denk
Browse files
Merge branch 'master' of
ssh://mercury/home/wd/git/u-boot/master
parents
5e1882df
9ef1cbef
Changes
205
Hide whitespace changes
Inline
Side-by-side
CHANGELOG
View file @
8155efbd
...
...
@@ -7221,7 +7221,7 @@ Date: Mon Mar 3 11:57:23 2008 +0000
Originally pointed out by Laurent Pinchart <laurent.pinchart@tbox.biz>,
see http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/22846
Signed-off-by: Bernhard Nemec <bnemec
<at>
ganssloser.com>
Signed-off-by: Bernhard Nemec <bnemec
@
ganssloser.com>
commit 84d0c2f1e39caff58bf765a7ab7c72da23c25ec8
Author: Kim B. Heino <Kim.Heino@bluegiga.com>
...
...
@@ -8451,7 +8451,7 @@ Date: Mon Feb 18 14:01:56 2008 -0600
86xx: Convert sbc8641d to use libfdt.
This is the proper fix for a missing closing brace in the function
ft_cpu_setup() noticed by joe.hamman
<at>
embeddedspecialties.com.
ft_cpu_setup() noticed by joe.hamman
@
embeddedspecialties.com.
The ft_cpu_setup() function in mpc8641hpcn.c should have been
removed earlier as it was under the obsolete CONFIG_OF_FLAT_TREE,
but was missed. Only, the sbc8641d was nominally still using it.
...
...
@@ -8846,7 +8846,7 @@ Date: Fri Feb 22 11:40:50 2008 +0000
We already have a vendor subdir for Atmel, so we should use it.
Signed-off-by: Haavard Skinnemoen <hskinnemoen
<at>
atmel.com>
Signed-off-by: Haavard Skinnemoen <hskinnemoen
@
atmel.com>
commit 6d0943a6be99977d6d853d51749e9963d68eb192
Author: Andreas Engel <andreas.engel@ericsson.com>
...
...
@@ -8896,8 +8896,8 @@ Date: Thu Jan 3 21:15:56 2008 +0000
AT91CAP9 support : MACB changes
Signed-off-by: Stelian Pop <stelian
<at>
popies.net>
Acked-by: Haavard Skinnemoen <hskinnemoen
<at>
atmel.com>
Signed-off-by: Stelian Pop <stelian
@
popies.net>
Acked-by: Haavard Skinnemoen <hskinnemoen
@
atmel.com>
commit 6afcabf11d7321850f4feaadfee841488ace54c5
Author: Stelian Pop <stelian@popies.net>
...
...
@@ -8913,7 +8913,7 @@ Date: Wed Jan 30 21:15:54 2008 +0000
AT91CAP9 support : cpu/ files
Signed-off-by: Stelian Pop <stelian
<at>
popies.net>
Signed-off-by: Stelian Pop <stelian
@
popies.net>
commit fa506a926cec348805143576c941f8e61b333cc0
Author: Stelian Pop <stelian@popies.net>
...
...
MAINTAINERS
View file @
8155efbd
...
...
@@ -204,6 +204,10 @@ Klaus Heydeck <heydeck@kieback-peter.de>
KUP4K MPC855
KUP4X MPC859
Gary Jennejohn <garyj@denx.de>
quad100hd PPC405EP
Murray Jensen <Murray.Jensen@csiro.au>
cogent_mpc8xx MPC8xx
...
...
@@ -538,6 +542,9 @@ Stelian Pop <stelian.pop@leadtechdesign.com>
at91cap9adk ARM926EJS (AT91CAP9 SoC)
at91sam9260ek ARM926EJS (AT91SAM9260 SoC)
at91sam9261ek ARM926EJS (AT91SAM9261 SoC)
at91sam9263ek ARM926EJS (AT91SAM9263 SoC)
at91sam9rlek ARM926EJS (AT91SAM9RL SoC)
Stefan Roese <sr@denx.de>
...
...
@@ -695,6 +702,7 @@ Haavard Skinnemoen <hskinnemoen@atmel.com>
ATSTK1002 AT32AP7000
ATSTK1003 AT32AP7001
ATSTK1004 AT32AP7002
ATSTK1006 AT32AP7000
ATNGW100 AT32AP7000
#########################################################################
...
...
MAKEALL
View file @
8155efbd
...
...
@@ -219,6 +219,7 @@ LIST_4xx=" \
PMC405
\
PMC440
\
PPChameleonEVB
\
quad100hd
\
rainier
\
sbc405
\
sc3
\
...
...
@@ -461,6 +462,9 @@ LIST_ARM9=" \
at91cap9adk
\
at91rm9200dk
\
at91sam9260ek
\
at91sam9261ek
\
at91sam9263ek
\
at91sam9rlek
\
cmc_pu2
\
ap920t
\
ap922_XA10
\
...
...
@@ -520,6 +524,24 @@ LIST_ARM11=" \
mx31ads
\
"
#########################################################################
## AT91 Systems
#########################################################################
LIST_at91
=
"
\
at91cap9adk
\
at91rm9200dk
\
at91sam9260ek
\
at91sam9261ek
\
at91sam9263ek
\
at91sam9rlek
\
cmc_pu2
\
csb637
\
kb9202
\
mp2usb
\
m501sk
\
"
#########################################################################
## Xscale Systems
#########################################################################
...
...
@@ -697,6 +719,7 @@ LIST_avr32=" \
atstk1002
\
atstk1003
\
atstk1004
\
atstk1006
\
atngw100
\
"
...
...
@@ -765,7 +788,7 @@ build_target() {
for
arg
in
$@
do
case
"
$arg
"
in
arm|SA|ARM7|ARM9|ARM10|ARM11|ixp|pxa
\
arm|SA|ARM7|ARM9|ARM10|ARM11|
at91|
ixp|pxa
\
|
avr32
\
|
blackfin
\
|
coldfire
\
...
...
Makefile
View file @
8155efbd
...
...
@@ -224,6 +224,7 @@ LIBS += drivers/mtd/libmtd.a
LIBS
+=
drivers/mtd/nand/libnand.a
LIBS
+=
drivers/mtd/nand_legacy/libnand_legacy.a
LIBS
+=
drivers/mtd/onenand/libonenand.a
LIBS
+=
drivers/mtd/spi/libspi_flash.a
LIBS
+=
drivers/net/libnet.a
LIBS
+=
drivers/net/sk98lin/libsk98lin.a
LIBS
+=
drivers/pci/libpci.a
...
...
@@ -390,6 +391,7 @@ TAG_SUBDIRS += drivers/mtd
TAG_SUBDIRS
+=
drivers/mtd/nand
TAG_SUBDIRS
+=
drivers/mtd/nand_legacy
TAG_SUBDIRS
+=
drivers/mtd/onenand
TAG_SUBDIRS
+=
drivers/mtd/spi
TAG_SUBDIRS
+=
drivers/net
TAG_SUBDIRS
+=
drivers/net/sk98lin
TAG_SUBDIRS
+=
drivers/pci
...
...
@@ -1391,6 +1393,9 @@ PPChameleonEVB_HI_33_config: unconfig
}
@
$(MKCONFIG)
-a
$(
call
xtract_4xx,
$@
)
ppc ppc4xx PPChameleonEVB dave
quad100hd_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
ppc ppc4xx quad100hd
sbc405_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
ppc ppc4xx sbc405
...
...
@@ -2335,6 +2340,15 @@ shannon_config : unconfig
at91rm9200dk_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
arm arm920t at91rm9200dk atmel at91rm9200
at91sam9261ek_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
arm arm926ejs at91sam9261ek atmel at91sam9
at91sam9263ek_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
arm arm926ejs at91sam9263ek atmel at91sam9
at91sam9rlek_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
arm arm926ejs at91sam9rlek atmel at91sam9
cmc_pu2_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
arm arm920t cmc_pu2 NULL at91rm9200
...
...
@@ -2879,6 +2893,9 @@ atstk1003_config : unconfig
atstk1004_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
avr32 at32ap atstk1000 atmel at32ap700x
atstk1006_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
avr32 at32ap atstk1000 atmel at32ap700x
atngw100_config
:
unconfig
@
$(MKCONFIG)
$
(
@:_config
=)
avr32 at32ap atngw100 atmel at32ap700x
...
...
README
View file @
8155efbd
...
...
@@ -961,6 +961,10 @@ The following options need to be configured:
display); also select one of the supported displays
by defining one of these:
CONFIG_ATMEL_LCD:
HITACHI TX09D70VM1CCA, 3.5", 240x320.
CONFIG_NEC_NL6448AC33:
NEC NL6448AC33-18. Active, color, single scan.
...
...
board/amcc/taihu/taihu.c
View file @
8155efbd
...
...
@@ -165,16 +165,20 @@ unsigned char spi_read(void)
return
(
unsigned
char
)
gpio_read_in_bit
(
SPI_DIN_GPIO15
);
}
void
taihu_spi_chipsel
(
int
cs
)
int
spi_cs_is_valid
(
unsigned
int
bus
,
unsigned
int
cs
)
{
gpio_write_bit
(
SPI_CS_GPIO0
,
cs
)
;
return
bus
==
0
&&
cs
==
0
;
}
spi_chipsel_type
spi_chipsel
[]
=
{
taihu_spi_chipsel
};
void
spi_cs_activate
(
struct
spi_slave
*
slave
)
{
gpio_write_bit
(
SPI_CS_GPIO0
,
1
);
}
int
spi_chipsel_cnt
=
sizeof
(
spi_chipsel
)
/
sizeof
(
spi_chipsel
[
0
]);
void
spi_cs_deactivate
(
struct
spi_slave
*
slave
)
{
gpio_write_bit
(
SPI_CS_GPIO0
,
0
);
}
#ifdef CONFIG_PCI
static
unsigned
char
int_lines
[
32
]
=
{
...
...
board/atmel/at91cap9adk/Makefile
View file @
8155efbd
...
...
@@ -2,6 +2,10 @@
# (C) Copyright 2003-2008
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# (C) Copyright 2008
# Stelian Pop <stelian.pop@leadtechdesign.com>
# Lead Tech Design <www.leadtechdesign.com>
#
# See file CREDITS for list of people who contributed to this
# project.
#
...
...
board/atmel/at91cap9adk/at91cap9adk.c
View file @
8155efbd
...
...
@@ -30,6 +30,8 @@
#include
<asm/arch/at91_rstc.h>
#include
<asm/arch/gpio.h>
#include
<asm/arch/io.h>
#include
<lcd.h>
#include
<atmel_lcdc.h>
#if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_MACB)
#include
<net.h>
#endif
...
...
@@ -70,6 +72,33 @@ static void at91cap9_serial_hw_init(void)
#endif
}
static
void
at91cap9_slowclock_hw_init
(
void
)
{
/*
* On AT91CAP9 revC CPUs, the slow clock can be based on an
* internal impreciseRC oscillator or an external 32kHz oscillator.
* Switch to the latter.
*/
#define ARCH_ID_AT91CAP9_REVB 0x399
#define ARCH_ID_AT91CAP9_REVC 0x601
if
(
at91_sys_read
(
AT91_PMC_VER
)
==
ARCH_ID_AT91CAP9_REVC
)
{
unsigned
i
,
tmp
=
at91_sys_read
(
AT91_SCKCR
);
if
((
tmp
&
AT91CAP9_SCKCR_OSCSEL
)
==
AT91CAP9_SCKCR_OSCSEL_RC
)
{
extern
void
timer_init
(
void
);
timer_init
();
tmp
|=
AT91CAP9_SCKCR_OSC32EN
;
at91_sys_write
(
AT91_SCKCR
,
tmp
);
for
(
i
=
0
;
i
<
1200
;
i
++
)
udelay
(
1000
);
tmp
|=
AT91CAP9_SCKCR_OSCSEL_32
;
at91_sys_write
(
AT91_SCKCR
,
tmp
);
udelay
(
200
);
tmp
&=
~
AT91CAP9_SCKCR_RCEN
;
at91_sys_write
(
AT91_SCKCR
,
tmp
);
}
}
}
static
void
at91cap9_nor_hw_init
(
void
)
{
unsigned
long
csa
;
...
...
@@ -116,7 +145,12 @@ static void at91cap9_nand_hw_init(void)
at91_sys_write
(
AT91_SMC_MODE
(
3
),
AT91_SMC_READMODE
|
AT91_SMC_WRITEMODE
|
AT91_SMC_EXNWMODE_DISABLE
|
AT91_SMC_DBW_8
|
AT91_SMC_TDF_
(
1
));
#ifdef CFG_NAND_DBW_16
AT91_SMC_DBW_16
|
#else
/* CFG_NAND_DBW_8 */
AT91_SMC_DBW_8
|
#endif
AT91_SMC_TDF_
(
1
));
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
AT91CAP9_ID_PIOABCD
);
...
...
@@ -228,6 +262,65 @@ static void at91cap9_uhp_hw_init(void)
}
#endif
#ifdef CONFIG_LCD
vidinfo_t
panel_info
=
{
vl_col:
240
,
vl_row:
320
,
vl_clk:
4965000
,
vl_sync:
ATMEL_LCDC_INVLINE_INVERTED
|
ATMEL_LCDC_INVFRAME_INVERTED
,
vl_bpix:
3
,
vl_tft:
1
,
vl_hsync_len:
5
,
vl_left_margin:
1
,
vl_right_margin:
33
,
vl_vsync_len:
1
,
vl_upper_margin:
1
,
vl_lower_margin:
0
,
mmio:
AT91CAP9_LCDC_BASE
,
};
void
lcd_enable
(
void
)
{
at91_set_gpio_value
(
AT91_PIN_PC0
,
0
);
/* power up */
}
void
lcd_disable
(
void
)
{
at91_set_gpio_value
(
AT91_PIN_PC0
,
1
);
/* power down */
}
static
void
at91cap9_lcd_hw_init
(
void
)
{
at91_set_A_periph
(
AT91_PIN_PC1
,
0
);
/* LCDHSYNC */
at91_set_A_periph
(
AT91_PIN_PC2
,
0
);
/* LCDDOTCK */
at91_set_A_periph
(
AT91_PIN_PC3
,
0
);
/* LCDDEN */
at91_set_B_periph
(
AT91_PIN_PB9
,
0
);
/* LCDCC */
at91_set_A_periph
(
AT91_PIN_PC6
,
0
);
/* LCDD2 */
at91_set_A_periph
(
AT91_PIN_PC7
,
0
);
/* LCDD3 */
at91_set_A_periph
(
AT91_PIN_PC8
,
0
);
/* LCDD4 */
at91_set_A_periph
(
AT91_PIN_PC9
,
0
);
/* LCDD5 */
at91_set_A_periph
(
AT91_PIN_PC10
,
0
);
/* LCDD6 */
at91_set_A_periph
(
AT91_PIN_PC11
,
0
);
/* LCDD7 */
at91_set_A_periph
(
AT91_PIN_PC14
,
0
);
/* LCDD10 */
at91_set_A_periph
(
AT91_PIN_PC15
,
0
);
/* LCDD11 */
at91_set_A_periph
(
AT91_PIN_PC16
,
0
);
/* LCDD12 */
at91_set_A_periph
(
AT91_PIN_PC17
,
0
);
/* LCDD13 */
at91_set_A_periph
(
AT91_PIN_PC18
,
0
);
/* LCDD14 */
at91_set_A_periph
(
AT91_PIN_PC19
,
0
);
/* LCDD15 */
at91_set_A_periph
(
AT91_PIN_PC22
,
0
);
/* LCDD18 */
at91_set_A_periph
(
AT91_PIN_PC23
,
0
);
/* LCDD19 */
at91_set_A_periph
(
AT91_PIN_PC24
,
0
);
/* LCDD20 */
at91_set_A_periph
(
AT91_PIN_PC25
,
0
);
/* LCDD21 */
at91_set_A_periph
(
AT91_PIN_PC26
,
0
);
/* LCDD22 */
at91_set_A_periph
(
AT91_PIN_PC27
,
0
);
/* LCDD23 */
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
AT91CAP9_ID_LCDC
);
gd
->
fb_base
=
0
;
}
#endif
int
board_init
(
void
)
{
/* Enable Ctrlc */
...
...
@@ -239,6 +332,7 @@ int board_init(void)
gd
->
bd
->
bi_boot_params
=
PHYS_SDRAM
+
0x100
;
at91cap9_serial_hw_init
();
at91cap9_slowclock_hw_init
();
at91cap9_nor_hw_init
();
#ifdef CONFIG_CMD_NAND
at91cap9_nand_hw_init
();
...
...
@@ -252,7 +346,9 @@ int board_init(void)
#ifdef CONFIG_USB_OHCI_NEW
at91cap9_uhp_hw_init
();
#endif
#ifdef CONFIG_LCD
at91cap9_lcd_hw_init
();
#endif
return
0
;
}
...
...
board/atmel/at91cap9adk/nand.c
View file @
8155efbd
...
...
@@ -63,6 +63,9 @@ static void at91cap9adk_nand_hwcontrol(struct mtd_info *mtd, int cmd)
int
board_nand_init
(
struct
nand_chip
*
nand
)
{
nand
->
eccmode
=
NAND_ECC_SOFT
;
#ifdef CFG_NAND_DBW_16
nand
->
options
=
NAND_BUSWIDTH_16
;
#endif
nand
->
hwcontrol
=
at91cap9adk_nand_hwcontrol
;
nand
->
chip_delay
=
20
;
...
...
board/atmel/at91sam9260ek/Makefile
View file @
8155efbd
...
...
@@ -2,6 +2,10 @@
# (C) Copyright 2003-2008
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# (C) Copyright 2008
# Stelian Pop <stelian.pop@leadtechdesign.com>
# Lead Tech Design <www.leadtechdesign.com>
#
# See file CREDITS for list of people who contributed to this
# project.
#
...
...
board/atmel/at91sam9260ek/at91sam9260ek.c
View file @
8155efbd
...
...
@@ -90,7 +90,12 @@ static void at91sam9260ek_nand_hw_init(void)
at91_sys_write
(
AT91_SMC_MODE
(
3
),
AT91_SMC_READMODE
|
AT91_SMC_WRITEMODE
|
AT91_SMC_EXNWMODE_DISABLE
|
AT91_SMC_DBW_8
|
AT91_SMC_TDF_
(
2
));
#ifdef CFG_NAND_DBW_16
AT91_SMC_DBW_16
|
#else
/* CFG_NAND_DBW_8 */
AT91_SMC_DBW_8
|
#endif
AT91_SMC_TDF_
(
2
));
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
AT91SAM9260_ID_PIOC
);
...
...
board/atmel/at91sam9260ek/nand.c
View file @
8155efbd
...
...
@@ -68,6 +68,9 @@ static int at91sam9260ek_nand_ready(struct mtd_info *mtd)
int
board_nand_init
(
struct
nand_chip
*
nand
)
{
nand
->
eccmode
=
NAND_ECC_SOFT
;
#ifdef CFG_NAND_DBW_16
nand
->
options
=
NAND_BUSWIDTH_16
;
#endif
nand
->
hwcontrol
=
at91sam9260ek_nand_hwcontrol
;
nand
->
dev_ready
=
at91sam9260ek_nand_ready
;
nand
->
chip_delay
=
20
;
...
...
board/atmel/at91sam9261ek/Makefile
0 → 100644
View file @
8155efbd
#
# (C) Copyright 2003-2008
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# (C) Copyright 2008
# Stelian Pop <stelian.pop@leadtechdesign.com>
# Lead Tech Design <www.leadtechdesign.com>
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
include
$(TOPDIR)/config.mk
LIB
=
$(obj)
lib
$(BOARD)
.a
COBJS-y
+=
at91sam9261ek.o
COBJS-y
+=
led.o
COBJS-y
+=
partition.o
COBJS-$(CONFIG_CMD_NAND)
+=
nand.o
SRCS
:=
$(SOBJS:.o=.S)
$
(
COBJS-y:.o
=
.c
)
OBJS
:=
$(
addprefix
$(obj)
,
$
(
COBJS-y
))
SOBJS
:=
$(
addprefix
$(obj)
,
$(SOBJS)
)
$(LIB)
:
$(obj).depend $(OBJS) $(SOBJS)
$(AR)
$(ARFLAGS)
$@
$(OBJS)
$(SOBJS)
clean
:
rm
-f
$(SOBJS)
$(OBJS)
distclean
:
clean
rm
-f
$(LIB)
core
*
.bak .depend
#########################################################################
# defines $(obj).depend target
include
$(SRCTREE)/rules.mk
sinclude
$(obj).depend
#########################################################################
board/atmel/at91sam9261ek/at91sam9261ek.c
0 → 100644
View file @
8155efbd
/*
* (C) Copyright 2007-2008
* Stelian Pop <stelian.pop@leadtechdesign.com>
* Lead Tech Design <www.leadtechdesign.com>
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#include
<common.h>
#include
<asm/arch/at91sam9261.h>
#include
<asm/arch/at91sam9261_matrix.h>
#include
<asm/arch/at91sam9_smc.h>
#include
<asm/arch/at91_pmc.h>
#include
<asm/arch/at91_rstc.h>
#include
<asm/arch/gpio.h>
#include
<asm/arch/io.h>
#include
<lcd.h>
#include
<atmel_lcdc.h>
#if defined(CONFIG_RESET_PHY_R) && defined(CONFIG_DRIVER_DM9000)
#include
<net.h>
#endif
DECLARE_GLOBAL_DATA_PTR
;
/* ------------------------------------------------------------------------- */
/*
* Miscelaneous platform dependent initialisations
*/
static
void
at91sam9261ek_serial_hw_init
(
void
)
{
#ifdef CONFIG_USART0
at91_set_A_periph
(
AT91_PIN_PC8
,
1
);
/* TXD0 */
at91_set_A_periph
(
AT91_PIN_PC9
,
0
);
/* RXD0 */
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
AT91_ID_US0
);
#endif
#ifdef CONFIG_USART1
at91_set_A_periph
(
AT91_PIN_PC12
,
1
);
/* TXD1 */
at91_set_A_periph
(
AT91_PIN_PC13
,
0
);
/* RXD1 */
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
AT91_ID_US1
);
#endif
#ifdef CONFIG_USART2
at91_set_A_periph
(
AT91_PIN_PC14
,
1
);
/* TXD2 */
at91_set_A_periph
(
AT91_PIN_PC15
,
0
);
/* RXD2 */
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
AT91_ID_US2
);
#endif
#ifdef CONFIG_USART3
/* DBGU */
at91_set_A_periph
(
AT91_PIN_PA9
,
0
);
/* DRXD */
at91_set_A_periph
(
AT91_PIN_PA10
,
1
);
/* DTXD */
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
AT91_ID_SYS
);
#endif
}
#ifdef CONFIG_CMD_NAND
static
void
at91sam9261ek_nand_hw_init
(
void
)
{
unsigned
long
csa
;
/* Enable CS3 */
csa
=
at91_sys_read
(
AT91_MATRIX_EBICSA
);
at91_sys_write
(
AT91_MATRIX_EBICSA
,
csa
|
AT91_MATRIX_CS3A_SMC_SMARTMEDIA
);
/* Configure SMC CS3 for NAND/SmartMedia */
at91_sys_write
(
AT91_SMC_SETUP
(
3
),
AT91_SMC_NWESETUP_
(
0
)
|
AT91_SMC_NCS_WRSETUP_
(
0
)
|
AT91_SMC_NRDSETUP_
(
0
)
|
AT91_SMC_NCS_RDSETUP_
(
0
));
at91_sys_write
(
AT91_SMC_PULSE
(
3
),
AT91_SMC_NWEPULSE_
(
2
)
|
AT91_SMC_NCS_WRPULSE_
(
5
)
|
AT91_SMC_NRDPULSE_
(
2
)
|
AT91_SMC_NCS_RDPULSE_
(
5
));
at91_sys_write
(
AT91_SMC_CYCLE
(
3
),
AT91_SMC_NWECYCLE_
(
7
)
|
AT91_SMC_NRDCYCLE_
(
7
));
at91_sys_write
(
AT91_SMC_MODE
(
3
),
AT91_SMC_READMODE
|
AT91_SMC_WRITEMODE
|
AT91_SMC_EXNWMODE_DISABLE
|
#ifdef CFG_NAND_DBW_16
AT91_SMC_DBW_16
|
#else
/* CFG_NAND_DBW_8 */
AT91_SMC_DBW_8
|
#endif
AT91_SMC_TDF_
(
1
));
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
AT91SAM9261_ID_PIOC
);
/* Configure RDY/BSY */
at91_set_gpio_input
(
AT91_PIN_PC15
,
1
);
/* Enable NandFlash */
at91_set_gpio_output
(
AT91_PIN_PC14
,
1
);
at91_set_A_periph
(
AT91_PIN_PC0
,
0
);
/* NANDOE */
at91_set_A_periph
(
AT91_PIN_PC1
,
0
);
/* NANDWE */
}
#endif
#ifdef CONFIG_HAS_DATAFLASH
static
void
at91sam9261ek_spi_hw_init
(
void
)
{
at91_set_A_periph
(
AT91_PIN_PA3
,
0
);
/* SPI0_NPCS0 */
at91_set_A_periph
(
AT91_PIN_PA0
,
0
);
/* SPI0_MISO */
at91_set_A_periph
(
AT91_PIN_PA1
,
0
);
/* SPI0_MOSI */
at91_set_A_periph
(
AT91_PIN_PA2
,
0
);
/* SPI0_SPCK */
/* Enable clock */
at91_sys_write
(
AT91_PMC_PCER
,
1
<<
AT91SAM9261_ID_SPI0
);
}
#endif
#ifdef CONFIG_DRIVER_DM9000
static
void
at91sam9261ek_dm9000_hw_init
(
void
)
{
/* Configure SMC CS2 for DM9000 */
at91_sys_write
(
AT91_SMC_SETUP
(
2
),
AT91_SMC_NWESETUP_
(
2
)
|
AT91_SMC_NCS_WRSETUP_
(
0
)
|
AT91_SMC_NRDSETUP_
(
2
)
|
AT91_SMC_NCS_RDSETUP_
(
0
));
at91_sys_write
(
AT91_SMC_PULSE
(
2
),
AT91_SMC_NWEPULSE_
(
4
)
|
AT91_SMC_NCS_WRPULSE_
(
8
)
|
AT91_SMC_NRDPULSE_
(
4
)
|
AT91_SMC_NCS_RDPULSE_
(
8
));
at91_sys_write
(
AT91_SMC_CYCLE
(
2
),
AT91_SMC_NWECYCLE_
(
16
)
|
AT91_SMC_NRDCYCLE_
(
16
));
at91_sys_write
(
AT91_SMC_MODE
(
2
),
AT91_SMC_READMODE
|
AT91_SMC_WRITEMODE
|
AT91_SMC_EXNWMODE_DISABLE
|
AT91_SMC_BAT_WRITE
|
AT91_SMC_DBW_16
|
AT91_SMC_TDF_
(
1
));
/* Configure Reset signal as output */
at91_set_gpio_output
(
AT91_PIN_PC10
,
0
);