9
0
Fork 0

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:
Juergen Beisert 2010-12-13 11:53:36 +01:00 committed by Sascha Hauer
parent cf463d7430
commit 5945a269d3
6 changed files with 154 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -0,0 +1 @@
obj-y += tx28.o

View File

@ -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_ */

View File

@ -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
*/

View File

@ -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