STM378x: Add TX28 CPU module
Signed-off-by: Juergen Beisert <jbe@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
cf463d7430
commit
5945a269d3
|
@ -14,6 +14,7 @@ ARM type:
|
|||
@li @subpage pcm043
|
||||
@li @subpage imx21ads
|
||||
@li @subpage imx27ads
|
||||
@li @subpage tx28
|
||||
@li @subpage the3stack
|
||||
@li @subpage mx23_evk
|
||||
@li @subpage board_babage
|
||||
|
|
|
@ -89,6 +89,7 @@ board-$(CONFIG_MACH_SCB9328) := scb9328
|
|||
board-$(CONFIG_MACH_NESO) := guf-neso
|
||||
board-$(CONFIG_MACH_MX23EVK) := freescale-mx23-evk
|
||||
board-$(CONFIG_MACH_CHUMBY) := chumby_falconwing
|
||||
board-$(CONFIG_MACH_TX28) := karo-tx28
|
||||
board-$(CONFIG_MACH_FREESCALE_MX51_PDK) := freescale-mx51-pdk
|
||||
board-$(CONFIG_MACH_GUF_CUPID) := guf-cupid
|
||||
board-$(CONFIG_MACH_MINI2440) := mini2440
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
obj-y += tx28.o
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef _CONFIG_H_
|
||||
# define _CONFIG_H_
|
||||
|
||||
#endif /* _CONFIG_H_ */
|
|
@ -0,0 +1,119 @@
|
|||
/*
|
||||
* Copyright (C) 2010 Juergen Beisert, Pengutronix <kernel@pengutronix.de>
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <init.h>
|
||||
#include <gpio.h>
|
||||
#include <environment.h>
|
||||
#include <errno.h>
|
||||
#include <asm/armlinux.h>
|
||||
#include <asm/io.h>
|
||||
#include <generated/mach-types.h>
|
||||
#include <mach/imx-regs.h>
|
||||
|
||||
static struct memory_platform_data ram_pdata = {
|
||||
.name = "ram0",
|
||||
.flags = DEVFS_RDWR,
|
||||
};
|
||||
|
||||
static struct device_d sdram_dev = {
|
||||
.id = -1,
|
||||
.name = "mem",
|
||||
.map_base = IMX_MEMORY_BASE,
|
||||
.size = 128 * 1024 * 1024,
|
||||
.platform_data = &ram_pdata,
|
||||
};
|
||||
|
||||
/* setup the CPU card internal signals */
|
||||
static const uint32_t tx28_pad_setup[] = {
|
||||
/* NAND interface */
|
||||
GPMI_D0 | VE_3_3V | PULLUP(1),
|
||||
GPMI_D1 | VE_3_3V | PULLUP(1),
|
||||
GPMI_D2 | VE_3_3V | PULLUP(1),
|
||||
GPMI_D3 | VE_3_3V | PULLUP(1),
|
||||
GPMI_D4 | VE_3_3V | PULLUP(1),
|
||||
GPMI_D5 | VE_3_3V | PULLUP(1),
|
||||
GPMI_D6 | VE_3_3V | PULLUP(1),
|
||||
GPMI_D7 | VE_3_3V | PULLUP(1),
|
||||
GPMI_READY0 | VE_3_3V | PULLUP(0), /* external PU */
|
||||
GPMI_RDN | VE_3_3V | PULLUP(1),
|
||||
GPMI_WRN | VE_3_3V | BITKEEPER(1),
|
||||
GPMI_ALE | VE_3_3V | PULLUP(1),
|
||||
GPMI_CLE | VE_3_3V | PULLUP(1),
|
||||
GPMI_RESETN_GPIO | VE_3_3V | GPIO_IN, /* act as WP, external PU */
|
||||
|
||||
/* Network interface */
|
||||
|
||||
/*
|
||||
* Note: To setup the external phy in a manner the baseboard
|
||||
* supports, its configuration is divided into a small part here in
|
||||
* the CPU card setup and the remaining configuration in the baseboard
|
||||
* file.
|
||||
* Here: Switch on the power supply to the external phy, but keep its
|
||||
* reset line low.
|
||||
*/
|
||||
|
||||
/* send a "good morning" to the ext. phy 0 = reset */
|
||||
ENET0_RX_CLK_GPIO | VE_3_3V | PULLUP(0) | GPIO_OUT | GPIO_VALUE(0),
|
||||
|
||||
/* phy power control 1 = on */
|
||||
PWM4_GPIO | VE_3_3V | GPIO_OUT | PULLUP(0) | GPIO_VALUE(1),
|
||||
|
||||
ENET_CLK | VE_3_3V | BITKEEPER(0),
|
||||
ENET0_MDC | VE_3_3V | PULLUP(0),
|
||||
ENET0_MDIO | VE_3_3V | PULLUP(0),
|
||||
ENET0_TXD0 | VE_3_3V | PULLUP(0),
|
||||
ENET0_TXD1 | VE_3_3V | PULLUP(0),
|
||||
ENET0_TX_EN | VE_3_3V | PULLUP(0),
|
||||
ENET0_TX_CLK | VE_3_3V | BITKEEPER(0),
|
||||
|
||||
};
|
||||
|
||||
extern void base_board_init(void);
|
||||
|
||||
static int tx28_devices_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* initizalize gpios */
|
||||
for (i = 0; i < ARRAY_SIZE(tx28_pad_setup); i++)
|
||||
imx_gpio_mode(tx28_pad_setup[i]);
|
||||
|
||||
register_device(&sdram_dev);
|
||||
|
||||
armlinux_add_dram(&sdram_dev);
|
||||
armlinux_set_bootparams((void *)(sdram_dev.map_base + 0x100));
|
||||
armlinux_set_architecture(MACH_TYPE_TX28);
|
||||
|
||||
base_board_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
device_initcall(tx28_devices_init);
|
||||
|
||||
/**
|
||||
@page tx28 KARO's TX28 CPU module
|
||||
|
||||
http://www.karo-electronics.de/
|
||||
|
||||
This CPU card is based on a Freescale i.MX28 CPU. The card is shipped with:
|
||||
|
||||
- 128 MiB synchronous dynamic RAM (DDR2 type), 200 MHz support
|
||||
- 128 MiB NAND K9F1G08U0A (3.3V type)
|
||||
- PCA9554 GPIO expander
|
||||
- DS1339 RTC
|
||||
- LAN8710 Phy
|
||||
|
||||
*/
|
|
@ -4,10 +4,12 @@ config ARCH_TEXT_BASE
|
|||
hex
|
||||
default 0x41000000 if MACH_MX23EVK
|
||||
default 0x42000000 if MACH_CHUMBY
|
||||
default 0x47000000 if MACH_TX28
|
||||
|
||||
config BOARDINFO
|
||||
default "Freescale i.MX23-EVK" if MACH_MX23EVK
|
||||
default "Chumby Falconwing" if MACH_CHUMBY
|
||||
default "Karo TX28" if MACH_TX28
|
||||
|
||||
comment "SigmaTel/Freescale i.MX System-on-Chip"
|
||||
|
||||
|
@ -46,6 +48,20 @@ endchoice
|
|||
|
||||
endif
|
||||
|
||||
if ARCH_IMX28
|
||||
|
||||
choice
|
||||
prompt "i.MX28 Board Type"
|
||||
|
||||
config MACH_TX28
|
||||
bool "KARO tx28"
|
||||
help
|
||||
Say Y here if you are using the KARO TX28 CPU module.
|
||||
|
||||
endchoice
|
||||
|
||||
endif
|
||||
|
||||
menu "Board specific settings "
|
||||
|
||||
endmenu
|
||||
|
|
Loading…
Reference in New Issue