mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
tegra: add Colibri T20 board support
This adds board support for the Toradex Colibri T20 module. Working functions: - SD card boot - USB boot - Network - NAND environment Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Tom Warren <twarren@nvidia.com>
This commit is contained in:
parent
73286d8729
commit
6bbda88384
8 changed files with 272 additions and 0 deletions
|
@ -902,6 +902,10 @@ Michal Simek <monstr@monstr.eu>
|
|||
|
||||
zynq ARM ARMV7 (Zynq SoC)
|
||||
|
||||
Lucas Stach <dev@lynxeye.de>
|
||||
|
||||
colibri_t20_iris Tegra20 (ARM7 & A9 Dual Core)
|
||||
|
||||
Nick Thompson <nick.thompson@gefanuc.com>
|
||||
|
||||
da830evm ARM926EJS (DA830/OMAP-L137)
|
||||
|
|
44
board/toradex/colibri_t20-common/colibri_t20-common.c
Normal file
44
board/toradex/colibri_t20-common/colibri_t20-common.c
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* Copyright (C) 2012 Lucas Stach
|
||||
*
|
||||
* 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 <asm/arch/clock.h>
|
||||
#include <asm/arch/funcmux.h>
|
||||
#include <asm/arch/pinmux.h>
|
||||
#include <asm/arch-tegra/board.h>
|
||||
|
||||
#include "colibri_t20-common.h"
|
||||
|
||||
#ifdef CONFIG_USB_EHCI_TEGRA
|
||||
void colibri_t20_common_pin_mux_usb(void)
|
||||
{
|
||||
/* module internal USB bus to connect ethernet chipset */
|
||||
funcmux_select(PERIPH_ID_USB2, FUNCMUX_USB2_ULPI);
|
||||
/* ULPI reference clock output */
|
||||
pinmux_set_func(PINGRP_CDEV2, PMUX_FUNC_PLLP_OUT4);
|
||||
pinmux_tristate_disable(PINGRP_CDEV2);
|
||||
/* PHY reset GPIO */
|
||||
pinmux_tristate_disable(PINGRP_UAC);
|
||||
/* VBus GPIO */
|
||||
pinmux_tristate_disable(PINGRP_DTE);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_TEGRA_NAND
|
||||
void pin_mux_nand(void)
|
||||
{
|
||||
funcmux_select(PERIPH_ID_NDFLASH, FUNCMUX_NDFLASH_KBC_8_BIT);
|
||||
}
|
||||
#endif
|
16
board/toradex/colibri_t20-common/colibri_t20-common.h
Normal file
16
board/toradex/colibri_t20-common/colibri_t20-common.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Copyright (C) 2012 Lucas Stach
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
void colibri_t20_common_pin_mux_usb(void);
|
40
board/toradex/colibri_t20_iris/Makefile
Normal file
40
board/toradex/colibri_t20_iris/Makefile
Normal file
|
@ -0,0 +1,40 @@
|
|||
#
|
||||
# (C) Copyright 2012 Lucas Stach
|
||||
#
|
||||
# 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 $(TOPDIR)/config.mk
|
||||
|
||||
$(shell mkdir -p $(obj)../../nvidia/common)
|
||||
$(shell mkdir -p $(obj)../colibri_t20-common)
|
||||
|
||||
LIB = $(obj)lib$(BOARD).o
|
||||
|
||||
COBJS := ../../nvidia/common/board.o
|
||||
COBJS += ../colibri_t20-common/colibri_t20-common.o
|
||||
COBJS += $(BOARD).o
|
||||
|
||||
SRCS := $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
|
||||
$(LIB): $(obj).depend $(OBJS)
|
||||
$(call cmd_link_o_target, $(OBJS))
|
||||
|
||||
#########################################################################
|
||||
|
||||
# defines $(obj).depend target
|
||||
include $(SRCTREE)/rules.mk
|
||||
|
||||
sinclude $(obj).depend
|
||||
|
||||
#########################################################################
|
46
board/toradex/colibri_t20_iris/colibri_t20_iris.c
Normal file
46
board/toradex/colibri_t20_iris/colibri_t20_iris.c
Normal file
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* Copyright (C) 2012 Lucas Stach
|
||||
*
|
||||
* 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 <asm/gpio.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <asm/arch/funcmux.h>
|
||||
#include <asm/arch/pinmux.h>
|
||||
#include <asm/arch-tegra/board.h>
|
||||
#include <asm/arch-tegra/mmc.h>
|
||||
|
||||
#include "../colibri_t20-common/colibri_t20-common.h"
|
||||
|
||||
#ifdef CONFIG_USB_EHCI_TEGRA
|
||||
void pin_mux_usb(void)
|
||||
{
|
||||
colibri_t20_common_pin_mux_usb();
|
||||
|
||||
/* USB 1 aka Tegra USB port 3 VBus*/
|
||||
pinmux_tristate_disable(PINGRP_SPIG);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_TEGRA_MMC
|
||||
int board_mmc_init(bd_t *bd)
|
||||
{
|
||||
funcmux_select(PERIPH_ID_SDMMC4, FUNCMUX_SDMMC4_ATB_GMA_4_BIT);
|
||||
pinmux_tristate_disable(PINGRP_GMB);
|
||||
|
||||
tegra_mmc_init(0, 4, -1, GPIO_PC7);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
38
board/toradex/dts/tegra20-colibri_t20_iris.dts
Normal file
38
board/toradex/dts/tegra20-colibri_t20_iris.dts
Normal file
|
@ -0,0 +1,38 @@
|
|||
/dts-v1/;
|
||||
|
||||
/include/ ARCH_CPU_DTS
|
||||
|
||||
/ {
|
||||
model = "Toradex Colibri T20";
|
||||
compatible = "toradex,t20", "nvidia,tegra20";
|
||||
|
||||
aliases {
|
||||
usb0 = "/usb@c5008000";
|
||||
usb1 = "/usb@c5000000";
|
||||
usb2 = "/usb@c5004000";
|
||||
};
|
||||
|
||||
usb@c5000000 {
|
||||
dr_mode = "otg";
|
||||
};
|
||||
|
||||
usb@c5004000 {
|
||||
nvidia,phy-reset-gpio = <&gpio 169 0>; /* PV1 */
|
||||
nvidia,vbus-gpio = <&gpio 217 0>; /* PBB1 */
|
||||
};
|
||||
|
||||
usb@c5008000 {
|
||||
nvidia,vbus-gpio = <&gpio 178 1>; /* PW2 low-active */
|
||||
};
|
||||
|
||||
nand-controller@70008000 {
|
||||
nvidia,wp-gpios = <&gpio 144 0>; /* PS0 */
|
||||
nvidia,width = <8>;
|
||||
nvidia,timing = <15 100 25 80 25 10 15 10 100>;
|
||||
|
||||
nand@0 {
|
||||
reg = <0>;
|
||||
compatible = "nand-flash";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -278,6 +278,7 @@ harmony arm armv7:arm720t harmony nvidia
|
|||
seaboard arm armv7:arm720t seaboard nvidia tegra20
|
||||
ventana arm armv7:arm720t ventana nvidia tegra20
|
||||
whistler arm armv7:arm720t whistler nvidia tegra20
|
||||
colibri_t20_iris arm armv7:arm720t colibri_t20_iris toradex tegra20
|
||||
u8500_href arm armv7 u8500 st-ericsson u8500
|
||||
snowball arm armv7 snowball st-ericsson u8500
|
||||
kzm9g arm armv7 kzm9g kmc rmobile
|
||||
|
|
83
include/configs/colibri_t20_iris.h
Normal file
83
include/configs/colibri_t20_iris.h
Normal file
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
* Copyright (C) 2012 Lucas Stach
|
||||
*
|
||||
* 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
|
||||
|
||||
#include "tegra20-common.h"
|
||||
|
||||
/* Enable FDT support */
|
||||
#define CONFIG_DEFAULT_DEVICE_TREE tegra20-colibri_t20_iris
|
||||
#define CONFIG_OF_CONTROL
|
||||
#define CONFIG_OF_SEPARATE
|
||||
|
||||
/* High-level configuration options */
|
||||
#define V_PROMPT "Tegra20 (Colibri) # "
|
||||
#define CONFIG_TEGRA_BOARD_STRING "Toradex Colibri T20 on Iris"
|
||||
|
||||
/* Board-specific serial config */
|
||||
#define CONFIG_TEGRA_ENABLE_UARTA
|
||||
#define CONFIG_TEGRA_UARTA_SDIO1
|
||||
#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTA_BASE
|
||||
|
||||
#define CONFIG_BOARD_EARLY_INIT_F
|
||||
|
||||
/* SD/MMC support */
|
||||
#define CONFIG_MMC
|
||||
#define CONFIG_GENERIC_MMC
|
||||
#define CONFIG_TEGRA_MMC
|
||||
#define CONFIG_CMD_MMC
|
||||
|
||||
/* File system support */
|
||||
#define CONFIG_DOS_PARTITION
|
||||
#define CONFIG_EFI_PARTITION
|
||||
#define CONFIG_CMD_EXT2
|
||||
#define CONFIG_CMD_FAT
|
||||
|
||||
/* USB host support */
|
||||
#define CONFIG_USB_EHCI
|
||||
#define CONFIG_USB_EHCI_TEGRA
|
||||
#define CONFIG_USB_ULPI
|
||||
#define CONFIG_USB_ULPI_VIEWPORT
|
||||
#define CONFIG_USB_STORAGE
|
||||
#define CONFIG_USB_MAX_CONTROLLER_COUNT 3
|
||||
#define CONFIG_CMD_USB
|
||||
|
||||
/* USB networking support */
|
||||
#define CONFIG_USB_HOST_ETHER
|
||||
#define CONFIG_USB_ETHER_ASIX
|
||||
#define CONFIG_CMD_NET
|
||||
#define CONFIG_CMD_DHCP
|
||||
#define CONFIG_CMD_NFS
|
||||
#define CONFIG_CMD_PING
|
||||
|
||||
/* NAND support */
|
||||
#define CONFIG_CMD_NAND
|
||||
#define CONFIG_TEGRA_NAND
|
||||
#define CONFIG_SYS_MAX_NAND_DEVICE 1
|
||||
|
||||
/* Environment in NAND, 64K is a bit excessive but erase block is 512K anyway */
|
||||
#define CONFIG_ENV_IS_IN_NAND
|
||||
#define CONFIG_ENV_OFFSET (SZ_2M)
|
||||
#undef CONFIG_ENV_SIZE /* undef size from tegra20-common.h */
|
||||
#define CONFIG_ENV_SIZE (SZ_64K)
|
||||
|
||||
/* Debug commands */
|
||||
#define CONFIG_CMD_BDI
|
||||
#define CONFIG_CMD_CACHE
|
||||
|
||||
#include "tegra-common-post.h"
|
||||
|
||||
#endif /* __CONFIG_H */
|
Loading…
Reference in a new issue