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>master
parent
73286d8729
commit
6bbda88384
@ -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 |
@ -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); |
@ -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 |
||||||
|
|
||||||
|
#########################################################################
|
@ -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 |
@ -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"; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
@ -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 new issue