diff options
Diffstat (limited to 'board/toradex/colibri_t20')
-rw-r--r-- | board/toradex/colibri_t20/Makefile | 52 | ||||
-rw-r--r-- | board/toradex/colibri_t20/colibri_t20.c | 24 | ||||
-rw-r--r-- | board/toradex/colibri_t20/colibri_t20.dts | 239 |
3 files changed, 315 insertions, 0 deletions
diff --git a/board/toradex/colibri_t20/Makefile b/board/toradex/colibri_t20/Makefile new file mode 100644 index 00000000000..fadc87d2136 --- /dev/null +++ b/board/toradex/colibri_t20/Makefile @@ -0,0 +1,52 @@ +# +# (C) Copyright 2012 +# Toradex, Inc. +# +# +# 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 + +$(shell mkdir -p $(obj)../common) + +LIB = $(obj)lib$(BOARD).o + +COBJS := $(BOARD).o + +SRCS := $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) + +$(LIB): $(obj).depend $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) + +clean: + rm -f $(OBJS) + +distclean: clean + rm -f $(LIB) core *.bak $(obj).depend + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +######################################################################### diff --git a/board/toradex/colibri_t20/colibri_t20.c b/board/toradex/colibri_t20/colibri_t20.c new file mode 100644 index 00000000000..eacde4554a2 --- /dev/null +++ b/board/toradex/colibri_t20/colibri_t20.c @@ -0,0 +1,24 @@ +/* + * (C) Copyright 2012 + * Toradex, Inc. + * + * 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> diff --git a/board/toradex/colibri_t20/colibri_t20.dts b/board/toradex/colibri_t20/colibri_t20.dts new file mode 100644 index 00000000000..76cc495156a --- /dev/null +++ b/board/toradex/colibri_t20/colibri_t20.dts @@ -0,0 +1,239 @@ +/dts-v1/; + +/memreserve/ 0x0c000000 0x04000000; +/include/ "../../nvidia/seaboard/tegra250.dtsi" + +/ { + model = "Toradex Colibri T20"; + compatible = "toradex,t20", "nvidia,tegra250"; + + config { + machine-arch-id = <3323>; + }; + + aliases { + console = "/serial@70006000"; + usb0 = "/usb@0xc5004000"; + usb1 = "/usb@0xc5008000"; + usb2 = "/usb@0xc5000000"; + + sdmmc0 = "/sdhci@c8000600"; + + i2c0 = "/i2c@0x7000d000"; + i2c1 = "/i2c@0x7000c000"; + i2c2 = "/i2c@0x7000c400"; + i2c3 = "/i2c@0x7000c500"; + }; + +//will be auto detected and fixedup + memory { + device_type = "memory"; + reg = <0x00000000 0x10000000>; + }; + + uarta: serial@70006000 { + status = "ok"; + clock-frequency = <216000000>; + }; + + uartb: serial@70006040 { + status = "ok"; + clock-frequency = <216000000>; + }; + + uartd: serial@70006300 { + status = "ok"; + clock-frequency = <216000000>; + }; + + sdhci@c8000600 { + status = "ok"; + width = <4>; /* width of SDIO port */ + removable = <1>; + /* Parameter 3 bit 0:1=output, 0=input; bit 1:1=high, 0=low */ + cd-gpio = <&gpio 23 0>; /* card detect, gpio PC7 */ + }; + + lcd { + compatible = "nvidia,tegra2-lcd"; + width = <640>; + height = <480>; + bits_per_pixel = <16>; + pwfm = <&pwfm2>; + display = <&display1>; + /* frame-buffer location = top of memory - carveout - fb */ + frame-buffer_512 = <0x17400000>; /* 512M - 128M - 12M */ + frame-buffer_256 = <0x09400000>; /* 256M - 96M - 12M */ + + pixel_clock = <25175000>; + + /* Timing: ref_to_sync, sync_width. back_porch, front_porch */ + horiz_timing = <0 96 48 16>; + vert_timing = <1 2 31 11>; + + /* Parameter 3 bit 0:1=output, 0=input; bit 1:1=high, 0=low */ + backlight-enable = <&gpio 255 1>; /* use <&gpio 156 1> for PT4 - SODIMM 71: BL_ON */ + lvds-shutdown = <&gpio 255 1>; + backlight-vdd = <&gpio 255 1>; + panel-vdd = <&gpio 255 1>; + + /* + * Panel required timings + * Timing 1: delay between panel_vdd-rise and data-rise + * Timing 2: delay between data-rise and backlight_vdd-rise + * Timing 3: delay between backlight_vdd and pwm-rise + * Timing 4: delay between pwm-rise and backlight_en-rise + */ + panel-timings = <0 0 0 0>; + }; + + /* EHCI instance 0: USB1_DP/N -> USBOTG_P/N */ + usb@0xc5000000 { + status = "ok"; + host-mode = <1>; + }; + + /* EHCI instance 1: ULPI PHY -> ASIX ETH */ + usb@0xc5004000 { + status = "ok"; + host-mode = <0>; + }; + + usbphy: usbphy@0 { + compatible = "smsc,usb3340"; + status = "ok"; + }; + + /* EHCI instance 2: USB3_DP/N -> USBH1_P/N */ + usb@0xc5008000 { + status = "ok"; + utmi = <&usbphy>; + host-mode = <0>; + }; + + /* Colibri T20 256MB V1.2a intermediate */ + flash1@0x70008000 { + /* + * Auto detection uses two hex digits each of vendor ID, + * device ID and fourth byte of read ID separated by commas + */ + compatible = "micron,MT29F4G08ABBDAH4", "2C,AC,15"; + controller = <&nand>; + + /* How many bytes for data area */ + page-data-bytes = <2048>; + + /* How many ECC bytes to be generated for tag bytes */ + tag-ecc-bytes = <9>; + + /* How many tag bytes in spare area */ + tag-bytes = <48>; + + /* How many ECC bytes for data area */ + data-ecc-bytes = <72>; + + skipped-spare-bytes = <4>; + + /* + * How many bytes in spare area + * spare area = skipped bytes + ECC bytes of data area + * + tag bytes + ECC bytes of tag bytes + */ + page-spare-bytes = <64>; + + /* + * MAX_TRP_TREA: + * non-EDO mode: value (in ns) = Max(tRP, tREA) + 6ns + * EDO mode: value (in ns) = tRP timing + * TRH: tREH timing + * + * Timing values: MAX_TRP_TREA, TWB, Max(tCS, tCH, tALS, tALH), + * TWHR, Max(tCS, tCH, tALS, tALH), TWH, TWP, TRH, TADL + */ + timing = <12 100 20 80 20 10 12 10 70>; + + /* + * The offset of the start of + * u-boot-environment config-block config-block (WinCE) kernel rootfs-size rootfs-start + * rootfs: the numbers are concatenated to mtdparts=tegra_nand:<rootfs-size>K@<rootfs-start>K(userspace) + * take them from a download with NVFLASH + */ + /* unknown nv-partitions = <0xE00000 0x1000000 0x1000000 0x1200000 1018368 28160>; */ + }; + + /* Colibri T20 256MB V1.2a new */ + flash2@0x70008000 { + compatible = "micron,MT29F4G08ABBEAH4", "2C,AC,26"; + controller = <&nand>; + page-data-bytes = <4096>; + tag-ecc-bytes = <9>; + tag-bytes = <48>; + data-ecc-bytes = <72>; + skipped-spare-bytes = <4>; + page-spare-bytes = <128>; + timing = <15 100 25 80 25 10 15 10 100>; + nv-partitions = <0x980000 0x11c0000 0x7380000 0xc80000 503552 19712>; + }; + + /* Colibri T20 before V1.1x aka old */ + flash3@0x70008000 { + compatible = "micron,MT29F8G08ABCBB", "2C,38,26"; + controller = <&nand>; + page-data-bytes = <4096>; + tag-ecc-bytes = <9>; + tag-bytes = <48>; + data-ecc-bytes = <72>; + skipped-spare-bytes = <4>; + page-spare-bytes = <128>; + timing = <12 100 20 60 15 10 12 10 70>; + nv-partitions = <0xE00000 0x1880000 0x7900000 0x1200000 1018368 28160>; + }; + + /* Colibri T20 512MB V1.2a intermediate */ + flash4@0x70008000 { + compatible = "micron,MT29F8G08ADBDAH4", "2C,A3,15"; + controller = <&nand>; + page-data-bytes = <2048>; + tag-ecc-bytes = <9>; + tag-bytes = <48>; + data-ecc-bytes = <72>; + skipped-spare-bytes = <4>; + page-spare-bytes = <64>; + timing = <12 100 20 80 20 10 12 10 70>; + /* unknown nv-partitions = <0xE00000 0x1880000 0x1880000 0x1200000 1018368 28160>; */ + }; + + /* Colibri T20 512MB V1.2a new */ + flash5@0x70008000 { + compatible = "micron,MT29F8G08ABBCA", "2C,A3,26"; + controller = <&nand>; + page-data-bytes = <4096>; + tag-ecc-bytes = <9>; + tag-bytes = <48>; + data-ecc-bytes = <72>; + skipped-spare-bytes = <4>; + page-spare-bytes = <128>; + timing = <15 100 25 80 25 10 15 10 100>; + nv-partitions = <0x980000 0x11c0000 0x7380000 0xc80000 1027840 19712>; + }; + + /* Colibri T20 512MB 3.3V TSOP test */ + flash6@0x70008000 { + compatible = "samsung,K9K8G08U0B", "EC,D3,95"; + controller = <&nand>; + page-data-bytes = <2048>; + tag-ecc-bytes = <9>; + tag-bytes = <48>; + data-ecc-bytes = <72>; + skipped-spare-bytes = <4>; + page-spare-bytes = <64>; + timing = <20 100 20 60 20 10 12 10 70>; + nv-partitions = <0x740000 0xE60000 0x1880000 0x9C0000 1032576 15488>; + }; + + nand-controller@0x70008000 { + status = "ok"; + wp-gpio = <&gpio 144 3>; /* Port S = 18 bit = 0: 18 * 8 + 0 */ + width = <8>; + }; +}; |