All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Agner <stefan@agner.ch>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] ARM: tegra: add Colibri T30 board support
Date: Thu, 31 Jul 2014 20:00:34 +0200	[thread overview]
Message-ID: <f92c195c2161b387e75ac743c7bce894@agner.ch> (raw)
In-Reply-To: <CAPnjgZ0k4OVK0DhEp59hScBq1=TRj_8EfgVbdRd+PrUmOJyiwg@mail.gmail.com>

Hi Simon,

Am 2014-07-31 19:41, schrieb Simon Glass:
> Hi Stefan,
> 
> On 31 July 2014 18:36, Stefan Agner <stefan@agner.ch> wrote:
>>
>> This adds board support for the Toradex Colibri T30 module.
>>
> 
> A few quick questions below...
> 
> 
>>
>> Working functions:
>> - SD card boot
>> - eMMC environment and boot
>> - USB host/USB client (on the dual role port)
>> - Network (via ASIX USB)
>>
>> Signed-off-by: Stefan Agner <stefan@agner.ch>
>> ---
>>  arch/arm/Kconfig                                   |   4 +
>>  arch/arm/dts/Makefile                              |   1 +
>>  arch/arm/dts/tegra30-colibri.dts                   |  84 +++++
>>  arch/arm/include/asm/mach-types.h                  |  13 +
>>  board/toradex/colibri_t30/Makefile                 |   6 +
>>  board/toradex/colibri_t30/colibri_t30.c            |  52 +++
>>  .../colibri_t30/pinmux-config-colibri_t30.h        | 360 +++++++++++++++++++++
>>  include/configs/colibri_t30.h                      |  73 +++++
>>  8 files changed, 593 insertions(+)
>>  create mode 100644 arch/arm/dts/tegra30-colibri.dts
>>  create mode 100644 board/toradex/colibri_t30/Makefile
>>  create mode 100644 board/toradex/colibri_t30/colibri_t30.c
>>  create mode 100644 board/toradex/colibri_t30/pinmux-config-colibri_t30.h
>>  create mode 100644 include/configs/colibri_t30.h
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index e385eda..dd987cc 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -701,6 +701,9 @@ config TARGET_WHISTLER
>>  config TARGET_COLIBRI_T20_IRIS
>>         bool "Support colibri_t20_iris"
>>
>> +config TARGET_COLIBRI_T30
>> +       bool "Support Colibri T30"
>> +
>>  config TARGET_TEC_NG
>>         bool "Support tec-ng"
>>
>> @@ -989,6 +992,7 @@ source "board/timll/devkit3250/Kconfig"
>>  source "board/timll/devkit8000/Kconfig"
>>  source "board/toradex/colibri_pxa270/Kconfig"
>>  source "board/toradex/colibri_t20_iris/Kconfig"
>> +source "board/toradex/colibri_t30/Kconfig"
>>  source "board/trizepsiv/Kconfig"
>>  source "board/ttcontrol/vision2/Kconfig"
>>  source "board/udoo/Kconfig"
>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>> index 6e2e313..c46b7be 100644
>> --- a/arch/arm/dts/Makefile
>> +++ b/arch/arm/dts/Makefile
>> @@ -21,6 +21,7 @@ dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \
>>         tegra20-colibri_t20_iris.dtb \
>>         tegra30-beaver.dtb \
>>         tegra30-cardhu.dtb \
>> +       tegra30-colibri.dtb \
>>         tegra30-tec-ng.dtb \
>>         tegra114-dalmore.dtb \
>>         tegra124-jetson-tk1.dtb \
>> diff --git a/arch/arm/dts/tegra30-colibri.dts b/arch/arm/dts/tegra30-colibri.dts
>> new file mode 100644
>> index 0000000..21d0311
>> --- /dev/null
>> +++ b/arch/arm/dts/tegra30-colibri.dts
>> @@ -0,0 +1,84 @@
>> +/dts-v1/;
>> +
>> +#include "tegra30.dtsi"
>> +
>> +/ {
>> +       model = "Toradex Colibri T30";
>> +       compatible = "toradex,colibri_t30", "nvidia,tegra30";
>> +
>> +       aliases {
>> +               i2c0 = "/i2c at 7000d000";
>> +               i2c1 = "/i2c at 7000c000";
>> +               i2c2 = "/i2c at 7000c700";
>> +               sdhci0 = "/sdhci at 78000600";
>> +               sdhci1 = "/sdhci at 78000200";
>> +               usb0 = "/usb at 7d000000";
>> +               usb1 = "/usb at 7d004000"; /* on module only, for ASIX */
>> +               usb2 = "/usb at 7d008000";
>> +       };
>> +
>> +       memory {
>> +               device_type = "memory";
>> +               reg = <0x80000000 0x40000000>;
>> +       };
>> +
>> +       /* GEN1_I2C: I2C_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
>> +          board) */
>> +       i2c at 7000c000 {
>> +               status = "okay";
>> +               clock-frequency = <100000>;
>> +       };
>> +
>> +       /* GEN2_I2C: unused */
>> +
>> +       /* CAM_I2C: unused */
>> +
>> +       /* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */
>> +       i2c at 7000c700 {
>> +               status = "okay";
>> +               clock-frequency = <100000>;
>> +       };
>> +
>> +       /* PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
>> +          touch screen controller */
>> +       i2c at 7000d000 {
>> +               status = "okay";
>> +               clock-frequency = <100000>;
>> +       };
>> +
>> +       /* SPI1: Colibri SSP */
>> +       spi at 7000d400 {
>> +               status = "okay";
>> +               spi-max-frequency = <25000000>;
>> +       };
>> +
>> +       sdhci at 78000200 {
>> +               status = "okay";
>> +               bus-width = <4>;
>> +               cd-gpios = <&gpio 23 1>; /* PC7, MMCD */
>> +       };
>> +
>> +       sdhci at 78000600 {
>> +               status = "okay";
>> +               bus-width = <8>;
>> +               non-removable;
>> +       };
>> +
>> +       /* EHCI instance 0: USB1_DP/N -> USBC_P/N */
>> +       usb at 7d000000 {
>> +               status = "okay";
>> +               dr_mode = "otg";
>> +       };
>> +
>> +       /* EHCI instance 1: USB2_DP/N -> AX88772B */
>> +       usb at 7d004000 {
>> +               status = "okay";
>> +               phy_type = "utmi";
>> +       };
>> +
>> +       /* EHCI instance 2: USB3_DP/N -> USBH_P/N */
>> +       usb at 7d008000 {
>> +               status = "okay";
>> +               nvidia,vbus-gpio = <&gpio 178 1>;       /* PW2, USBH_PEN */
>> +       };
>> +};
>> diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h
>> index 440b041..560924e 100644
>> --- a/arch/arm/include/asm/mach-types.h
>> +++ b/arch/arm/include/asm/mach-types.h
>> @@ -1106,6 +1106,7 @@ extern unsigned int __machine_arch_type;
>>  #define MACH_TYPE_OMAP5_SEVM           3777
>>  #define MACH_TYPE_ARMADILLO_800EVA     3863
>>  #define MACH_TYPE_KZM9G                4140
>> +#define MACH_TYPE_COLIBRI_T30          4493
>>
>>  #ifdef CONFIG_ARCH_EBSA110
>>  # ifdef machine_arch_type
>> @@ -14235,6 +14236,18 @@ extern unsigned int __machine_arch_type;
>>  # define machine_is_kzm9g()    (0)
>>  #endif
>>
>> +#ifdef CONFIG_MACH_COLIBRI_T30
>> +# ifdef machine_arch_type
>> +#  undef machine_arch_type
>> +#  define machine_arch_type    __machine_arch_type
>> +# else
>> +#  define machine_arch_type    MACH_TYPE_COLIBRI_T30
>> +# endif
>> +# define machine_is_colibri_t30()      (machine_arch_type == MACH_TYPE_COLIBRI_T30)
>> +#else
>> +# define machine_is_colibri_t30()      (0)
>> +#endif
> 
> 
> Do we actually need this machine type stuff anymore?
> 

That way we can also boot the 3.1 L4T Kernel, since this is the
(probably last) one where we get supported binary drivers for the
graphics part.

>>
>> +
>>  /*
>>   * These have not yet been registered
>>   */
>> diff --git a/board/toradex/colibri_t30/Makefile b/board/toradex/colibri_t30/Makefile
>> new file mode 100644
>> index 0000000..3d58a4b
>> --- /dev/null
>> +++ b/board/toradex/colibri_t30/Makefile
>> @@ -0,0 +1,6 @@
>> +# Copyright (c) 2013-2014 Stefan Agner
>> +# SPDX-License-Identifier:      GPL-2.0+
>> +
>> +include $(srctree)/board/nvidia/common/common.mk
>> +
>> +obj-y  += colibri_t30.o
>> diff --git a/board/toradex/colibri_t30/colibri_t30.c b/board/toradex/colibri_t30/colibri_t30.c
>> new file mode 100644
>> index 0000000..6c7c62d
>> --- /dev/null
>> +++ b/board/toradex/colibri_t30/colibri_t30.c
>> @@ -0,0 +1,52 @@
>> +/*
>> + *  (C) Copyright 2014
>> + *  Stefan Agner <stefan@agner.ch>
>> + *
>> + * SPDX-License-Identifier:    GPL-2.0+
>> + */
>> +
>> +#include <common.h>
>> +#include <asm/arch/pinmux.h>
>> +#include <asm/arch/gp_padctrl.h>
>> +#include "pinmux-config-colibri_t30.h"
>> +#include <i2c.h>
>> +#include <asm/gpio.h>
>> +
>> +#define PMU_I2C_ADDRESS                0x2D
>> +#define MAX_I2C_RETRY          3
> 
> 
> Are these used?
> 

The address is correct, but not used right now. Should I remove?

>>
>> +
>> +/*
>> + * Routine: pinmux_init
>> + * Description: Do individual peripheral pinmux configs
>> + */
>> +void pinmux_init(void)
>> +{
>> +       pinmux_config_pingrp_table(tegra3_pinmux_common,
>> +                                  ARRAY_SIZE(tegra3_pinmux_common));
>> +
>> +       pinmux_config_pingrp_table(unused_pins_lowpower,
>> +                                  ARRAY_SIZE(unused_pins_lowpower));
>> +
>> +       /* Initialize any non-default pad configs (APB_MISC_GP regs) */
>> +       pinmux_config_drvgrp_table(colibri_t30_padctrl,
>> +                                  ARRAY_SIZE(colibri_t30_padctrl));
>> +}
>> +
>> +/*
>> + * Enable AX88772B USB to LAN controller
>> + */
>> +void pin_mux_usb(void)
>> +{
>> +       /* Enable LAN_VBUS */
>> +       gpio_request(GPIO_PDD2, NULL);
>> +       gpio_direction_output(GPIO_PDD2, 1);
>> +
>> +       /* Reset ASIX using LAN_RESET */
>> +       gpio_request(GPIO_PDD0, NULL);
>> +       gpio_direction_output(GPIO_PDD0, 0);
>> +
>> +       udelay(5);
>> +
>> +       gpio_set_value(GPIO_PDD0, 1);
> 
> 
> You are using device tree for sdhci - shouldn't we use it for USB also?
> 

The Colibri T30 has a ASIX USB to Ethernet chip on its board. We
reset/power the ASIX here. It is a very board specific reset/powering,
hence I put it in here.

In my initial patches I had it in the nvidia,phy-reset-gpio and
nvidia,vbus-gpio properties. Technically, it would work to have this
GPIOs in the device tree as USB properties, but I think this would be
logically wrong... 

>>
>> +}
>> +
>> diff --git a/board/toradex/colibri_t30/pinmux-config-colibri_t30.h b/board/toradex/colibri_t30/pinmux-config-colibri_t30.h
>> new file mode 100644
>> index 0000000..4e73c07
>> --- /dev/null
>> +++ b/board/toradex/colibri_t30/pinmux-config-colibri_t30.h
>> @@ -0,0 +1,360 @@
>> +/*
>> + * Copyright (c) 2013-2014, Stefan Agner
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms and conditions of the GNU General Public License,
>> + * version 2, as published by the Free Software Foundation.
>> + *
>> + * This program is distributed in the hope 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, see <http://www.gnu.org/licenses/>.
>> + */
>> +
>> +#ifndef _PINMUX_CONFIG_COLIBRI_T30_H_
>> +#define _PINMUX_CONFIG_COLIBRI_T30_H_
>> +
>> +#define DEFAULT_PINMUX(_pingrp, _mux, _pull, _tri, _io)                \
>> +       {                                                       \
>> +               .pingrp         = PMUX_PINGRP_##_pingrp,        \
>> +               .func           = PMUX_FUNC_##_mux,             \
>> +               .pull           = PMUX_PULL_##_pull,            \
>> +               .tristate       = PMUX_TRI_##_tri,              \
>> +               .io             = PMUX_PIN_##_io,               \
>> +               .lock           = PMUX_PIN_LOCK_DEFAULT,        \
>> +               .od             = PMUX_PIN_OD_DEFAULT,          \
>> +               .ioreset        = PMUX_PIN_IO_RESET_DEFAULT,    \
>> +       }
>> +
>> +#define I2C_PINMUX(_pingrp, _mux, _pull, _tri, _io, _lock, _od)        \
>> +       {                                                       \
>> +               .pingrp         = PMUX_PINGRP_##_pingrp,        \
>> +               .func           = PMUX_FUNC_##_mux,             \
>> +               .pull           = PMUX_PULL_##_pull,            \
>> +               .tristate       = PMUX_TRI_##_tri,              \
>> +               .io             = PMUX_PIN_##_io,               \
>> +               .lock           = PMUX_PIN_LOCK_##_lock,        \
>> +               .od             = PMUX_PIN_OD_##_od,            \
>> +               .ioreset        = PMUX_PIN_IO_RESET_DEFAULT,    \
>> +       }
>> +
>> +#define LV_PINMUX(_pingrp, _mux, _pull, _tri, _io, _lock, _ioreset) \
>> +       {                                                       \
>> +               .pingrp         = PMUX_PINGRP_##_pingrp,        \
>> +               .func           = PMUX_FUNC_##_mux,             \
>> +               .pull           = PMUX_PULL_##_pull,            \
>> +               .tristate       = PMUX_TRI_##_tri,              \
>> +               .io             = PMUX_PIN_##_io,               \
>> +               .lock           = PMUX_PIN_LOCK_##_lock,        \
>> +               .od             = PMUX_PIN_OD_DEFAULT,          \
>> +               .ioreset        = PMUX_PIN_IO_RESET_##_ioreset  \
>> +       }
>> +
>> +#define DEFAULT_PADCFG(_drvgrp, _slwf, _slwr, _drvup, _drvdn, _lpmd, _schmt, _hsm) \
>> +       {                                                       \
>> +               .drvgrp         = PMUX_DRVGRP_##_drvgrp,        \
>> +               .slwf           = _slwf,                        \
>> +               .slwr           = _slwr,                        \
>> +               .drvup          = _drvup,                       \
>> +               .drvdn          = _drvdn,                       \
>> +               .lpmd           = PMUX_LPMD_##_lpmd,            \
>> +               .schmt          = PMUX_SCHMT_##_schmt,          \
>> +               .hsm            = PMUX_HSM_##_hsm,              \
>> +       }
>> +
>> +static struct pmux_pingrp_config tegra3_pinmux_common[] = {
>> +       /* SDMMC1 disabled */
>> +       DEFAULT_PINMUX(SDMMC1_CLK_PZ0, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC1_CMD_PZ1, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC1_DAT3_PY4, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC1_DAT2_PY5, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC1_DAT1_PY6, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC1_DAT0_PY7, RSVD1, NORMAL, NORMAL, INPUT),
>> +
>> +       /* SDMMC3 pinmux */
>> +       DEFAULT_PINMUX(SDMMC3_CLK_PA6, SDMMC3, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC3_CMD_PA7, SDMMC3, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC3_DAT0_PB7, SDMMC3, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC3_DAT1_PB6, SDMMC3, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC3_DAT2_PB5, SDMMC3, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC3_DAT3_PB4, SDMMC3, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC3_DAT6_PD3, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC3_DAT7_PD4, RSVD1, NORMAL, NORMAL, INPUT),
>> +
>> +       /* SDMMC4 pinmux (eMMC) */
>> +       LV_PINMUX(SDMMC4_CLK_PCC4, SDMMC4, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_CMD_PT7, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_DAT0_PAA0, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_DAT1_PAA1, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_DAT2_PAA2, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_DAT3_PAA3, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_DAT4_PAA4, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_DAT5_PAA5, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_DAT6_PAA6, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_DAT7_PAA7, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(SDMMC4_RST_N_PCC3, RSVD1, DOWN, NORMAL, INPUT, DISABLE, DISABLE),
>> +
>> +       /* I2C1 pinmux */
>> +       I2C_PINMUX(GEN1_I2C_SCL_PC4, I2C1, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
>> +       I2C_PINMUX(GEN1_I2C_SDA_PC5, I2C1, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
>> +
>> +       /* I2C2 pinmux */
>> +       DEFAULT_PINMUX(GEN2_I2C_SCL_PT5, I2C2, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(GEN2_I2C_SDA_PT6, I2C2, NORMAL, NORMAL, INPUT),
>> +
>> +       /* I2C3 pinmux, muliplexed with KB_ROW13/KB_ROW14 */
>> +       I2C_PINMUX(CAM_I2C_SCL_PBB1, I2C3, NORMAL, TRISTATE, INPUT, DISABLE, ENABLE),
>> +       I2C_PINMUX(CAM_I2C_SDA_PBB2, I2C3, NORMAL, TRISTATE, INPUT, DISABLE, ENABLE),
>> +
>> +       /* I2C4 pinmux */
>> +       I2C_PINMUX(DDC_SCL_PV4, I2C4, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
>> +       I2C_PINMUX(DDC_SDA_PV5, I2C4, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
>> +
>> +       /* Power I2C pinmux */
>> +       I2C_PINMUX(PWR_I2C_SCL_PZ6, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
>> +       I2C_PINMUX(PWR_I2C_SDA_PZ7, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
>> +
>> +       DEFAULT_PINMUX(ULPI_DATA0_PO1, UARTA, NORMAL, NORMAL, OUTPUT),
>> +       /* UARTA RX, make sure we don't get input form a floating Pin */
>> +       DEFAULT_PINMUX(ULPI_DATA1_PO2, UARTA, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(ULPI_DATA2_PO3, UARTA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(ULPI_DATA3_PO4, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(ULPI_DATA4_PO5, UARTA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(ULPI_DATA5_PO6, UARTA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(ULPI_DATA6_PO7, UARTA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(ULPI_DATA7_PO0, UARTA, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(ULPI_CLK_PY0, SPI1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(ULPI_DIR_PY1, SPI1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(ULPI_NXT_PY2, SPI1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(ULPI_STP_PY3, SPI1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP3_FS_PP0, I2S2, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP3_DIN_PP1, I2S2, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP3_DOUT_PP2, I2S2, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP3_SCLK_PP3, I2S2, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PV2, OWR, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(PV3, RSVD1, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(CLK2_OUT_PW5, EXTPERIPH2, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(CLK2_REQ_PCC5, DAP, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_PWR1_PC1, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_PWR2_PC6, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_SDIN_PZ2, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_SDOUT_PN5, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_WR_N_PZ3, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_CS0_N_PN4, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_DC0_PN6, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_SCK_PZ4, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_PWR0_PB2, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_PCLK_PB3, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_DE_PJ1, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_HSYNC_PJ3, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_VSYNC_PJ4, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D0_PE0, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D1_PE1, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D2_PE2, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D3_PE3, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D4_PE4, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D5_PE5, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D6_PE6, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D7_PE7, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D8_PF0, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D9_PF1, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D10_PF2, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D11_PF3, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D12_PF4, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D13_PF5, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D14_PF6, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D15_PF7, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D16_PM0, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D17_PM1, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D18_PM2, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D19_PM3, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D20_PM4, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D21_PM5, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D22_PM6, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_D23_PM7, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_CS1_N_PW0, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_M1_PW1, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(LCD_DC1_PD2, DISPLAYA, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(CRT_HSYNC_PV6, CRT, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(CRT_VSYNC_PV7, CRT, NORMAL, NORMAL, OUTPUT),
>> +       LV_PINMUX(VI_D0_PT4, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_D1_PD5, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_D2_PL0, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_D3_PL1, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_D4_PL2, VI, NORMAL, NORMAL, OUTPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_D5_PL3, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_D7_PL5, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_D10_PT2, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_MCLK_PT1, VI, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +       DEFAULT_PINMUX(UART2_RXD_PC3, UARTB, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(UART2_TXD_PC2, UARTB, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(UART2_RTS_N_PJ6, UARTB, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(UART2_CTS_N_PJ5, UARTB, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(UART3_TXD_PW6, UARTC, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(UART3_RXD_PW7, UARTC, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(UART3_CTS_N_PA1, UARTC, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(UART3_RTS_N_PC0, UARTC, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(PU0, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PU1, RSVD1, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(PU2, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PU3, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PU4, PWM1, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(PU5, PWM2, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(PU6, RSVD1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP4_FS_PP4, I2S3, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP4_DIN_PP5, I2S3, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP4_DOUT_PP6, I2S3, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP4_SCLK_PP7, I2S3, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(CLK3_OUT_PEE0, EXTPERIPH3, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(CLK3_REQ_PEE1, DEV3, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(GMI_WP_N_PC7, GMI, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(GMI_CS2_N_PK3, RSVD1, UP, NORMAL, INPUT), /* EN_VDD_BL1 */
>> +       DEFAULT_PINMUX(GMI_AD8_PH0, PWM0, NORMAL, NORMAL, OUTPUT), /* LCD1_BL_PWM */
>> +       DEFAULT_PINMUX(GMI_AD10_PH2, NAND, NORMAL, NORMAL, OUTPUT), /* LCD1_BL_EN */
>> +       DEFAULT_PINMUX(GMI_A16_PJ7, UARTD, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(GMI_A17_PB0, UARTD, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(GMI_A18_PB1, UARTD, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(GMI_A19_PK7, UARTD, NORMAL, NORMAL, INPUT),
>> +
>> +
>> +       /* Multiplexed with KB_ROW10/KB_ROW11/KB_ROW12/KB_ROW15 */
>> +       DEFAULT_PINMUX(CAM_MCLK_PCC0, VI_ALT2, UP, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(PCC1, RSVD1, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(PBB0, RSVD1, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(PBB3, VGP3, NORMAL, TRISTATE, INPUT),
>> +
>> +       DEFAULT_PINMUX(PBB5, VGP5, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PBB6, VGP6, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PBB7, I2S4, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PCC2, I2S4, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(JTAG_RTCK_PU7, RTCK, NORMAL, NORMAL, OUTPUT),
>> +
>> +       /* KBC keys */
>> +       DEFAULT_PINMUX(KB_ROW0_PR0, RSVD2, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW1_PR1, RSVD2, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW2_PR2, RSVD2, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW3_PR3, RSVD2, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW4_PR4, RSVD3, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW5_PR5, KBC, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW6_PR6, KBC, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW7_PR7, KBC, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW8_PS0, KBC, NORMAL, TRISTATE, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW9_PS1, KBC, NORMAL, TRISTATE, INPUT),
>> +
>> +       /* SDMMC2 pinmux */
>> +       DEFAULT_PINMUX(KB_ROW10_PS2, SDMMC2, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW11_PS3, SDMMC2, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW12_PS4, SDMMC2, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW13_PS5, SDMMC2, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW14_PS6, SDMMC2, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW15_PS7, SDMMC2, UP, NORMAL, INPUT),
>> +
>> +       DEFAULT_PINMUX(KB_COL0_PQ0, KBC, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_COL1_PQ1, KBC, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_COL2_PQ2, KBC, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_COL3_PQ3, KBC, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_COL4_PQ4, KBC, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_COL5_PQ5, KBC, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_COL6_PQ6, KBC, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_COL7_PQ7, KBC, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PV0, RSVD1, UP, NORMAL, INPUT),
>> +
>> +       DEFAULT_PINMUX(CLK_32K_OUT_PA0, BLINK, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(SYS_CLK_REQ_PZ5, SYSCLK, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(OWR, OWR, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP1_FS_PN0, I2S0, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP1_DIN_PN1, I2S0, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP1_DOUT_PN2, I2S0, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP1_SCLK_PN3, I2S0, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(CLK1_REQ_PEE2, DAP, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(CLK1_OUT_PW4, EXTPERIPH1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SPDIF_IN_PK6, SPDIF, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SPDIF_OUT_PK5, SPDIF, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(DAP2_FS_PA2, I2S1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP2_DIN_PA4, I2S1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP2_DOUT_PA5, I2S1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(DAP2_SCLK_PA3, I2S1, NORMAL, NORMAL, INPUT),
>> +
>> +       DEFAULT_PINMUX(SPI2_CS1_N_PW2, SPI2, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SPI1_MOSI_PX4, SPI1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SPI1_SCK_PX5, SPI1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SPI1_CS0_N_PX6, SPI1, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SPI1_MISO_PX7, SPI1, NORMAL, NORMAL, INPUT),
>> +
>> +       /* LAN_RESET */
>> +       DEFAULT_PINMUX(PEX_L0_PRSNT_N_PDD0, RSVD2, NORMAL, NORMAL, OUTPUT),
>> +
>> +       DEFAULT_PINMUX(PEX_L0_RST_N_PDD1, PCIE, NORMAL, NORMAL, OUTPUT),
>> +
>> +       /* LAN_VBUS */
>> +       DEFAULT_PINMUX(PEX_L0_CLKREQ_N_PDD2, RSVD2, NORMAL, NORMAL, OUTPUT),
>> +
>> +       DEFAULT_PINMUX(PEX_WAKE_N_PDD3, PCIE, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PEX_L1_PRSNT_N_PDD4, PCIE, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PEX_L1_RST_N_PDD5, PCIE, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(PEX_L1_CLKREQ_N_PDD6, PCIE, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PEX_L2_PRSNT_N_PDD7, PCIE, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PEX_L2_RST_N_PCC6, PCIE, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(PEX_L2_CLKREQ_N_PCC7, PCIE, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(HDMI_CEC_PEE3, CEC, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(HDMI_INT_PN7, RSVD1, NORMAL, TRISTATE, INPUT),
>> +
>> +       /* GPIOs */
>> +       /* SDMMC1 CD gpio */
>> +       DEFAULT_PINMUX(GMI_IORDY_PI5, RSVD1, UP, NORMAL, INPUT),
>> +       /* SDMMC1 WP gpio */
>> +       LV_PINMUX(VI_D11_PT3, RSVD1, UP, NORMAL, INPUT, DISABLE, DISABLE),
>> +
>> +       /* Touch panel GPIO */
>> +       /* Touch IRQ */
>> +       DEFAULT_PINMUX(GMI_AD12_PH4, NAND, UP, NORMAL, INPUT),
>> +
>> +       /* Touch RESET */
>> +       DEFAULT_PINMUX(GMI_AD14_PH6, NAND, NORMAL, NORMAL, OUTPUT),
>> +
>> +       /* Power rails GPIO */
>> +       DEFAULT_PINMUX(SPI2_SCK_PX2, GMI, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(PBB4, VGP4, NORMAL, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(KB_ROW8_PS0, KBC, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC3_DAT5_PD0, SDMMC3, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(SDMMC3_DAT4_PD1, SDMMC3, UP, NORMAL, INPUT),
>> +
>> +       LV_PINMUX(VI_D6_PL4, VI, NORMAL, NORMAL, OUTPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_D8_PL6, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_D9_PL7, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_PCLK_PT0, RSVD1, UP, TRISTATE, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_HSYNC_PD7, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +       LV_PINMUX(VI_VSYNC_PD6, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
>> +};
>> +
>> +static struct pmux_pingrp_config unused_pins_lowpower[] = {
>> +       DEFAULT_PINMUX(GMI_WAIT_PI7, NAND, UP, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_ADV_N_PK0, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_CLK_PK1, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_CS3_N_PK4, NAND, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_CS7_N_PI6, NAND, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(GMI_AD0_PG0, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD1_PG1, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD2_PG2, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD3_PG3, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD4_PG4, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD5_PG5, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD6_PG6, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD7_PG7, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD9_PH1, PWM1, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD11_PH3, NAND, NORMAL, NORMAL, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_AD13_PH5, NAND, UP, NORMAL, INPUT),
>> +       DEFAULT_PINMUX(GMI_WR_N_PI0, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_OE_N_PI1, NAND, NORMAL, TRISTATE, OUTPUT),
>> +       DEFAULT_PINMUX(GMI_DQS_PI2, NAND, NORMAL, TRISTATE, OUTPUT),
>> +};
>> +
>> +static struct pmux_drvgrp_config colibri_t30_padctrl[] = {
>> +       /* (_drvgrp, _slwf, _slwr, _drvup, _drvdn, _lpmd, _schmt, _hsm) */
>> +       DEFAULT_PADCFG(SDIO1, SDIOCFG_DRVUP_SLWF, SDIOCFG_DRVDN_SLWR, \
>> +               SDIOCFG_DRVUP, SDIOCFG_DRVDN, NONE, DISABLE, DISABLE),
>> +};
>> +#endif /* _PINMUX_CONFIG_COLIBRI_T30_H_ */
>> diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h
>> new file mode 100644
>> index 0000000..92eaec8
>> --- /dev/null
>> +++ b/include/configs/colibri_t30.h
>> @@ -0,0 +1,73 @@
>> +/*
>> + * Copyright (c) 2013-2014 Stefan Agner
>> + *
>> + * SPDX-License-Identifier:    GPL-2.0+
>> + */
>> +
>> +#ifndef __CONFIG_H
>> +#define __CONFIG_H
>> +
>> +#include <linux/sizes.h>
>> +
>> +#include "tegra30-common.h"
>> +
>> +#define CONFIG_DEFAULT_DEVICE_TREE     tegra30-colibri
>> +#define CONFIG_OF_CONTROL
>> +#define CONFIG_OF_SEPARATE
>> +
>> +#define V_PROMPT                       "Colibri T30 # "
>> +#define CONFIG_TEGRA_BOARD_STRING      "Toradex Colibri T30"
>> +
>> +/* Board-specific config */
>> +#define CONFIG_SERIAL_MULTI
>> +#define CONFIG_TEGRA_ENABLE_UARTA
>> +#define CONFIG_SYS_NS16550_COM1                NV_PA_APB_UARTA_BASE
>> +
>> +#define CONFIG_MACH_TYPE               MACH_TYPE_COLIBRI_T30
>> +
>> +#define CONFIG_BOARD_EARLY_INIT_F
>> +
>> +/* I2C */
>> +#define CONFIG_SYS_I2C_TEGRA
>> +#define CONFIG_SYS_I2C_INIT_BOARD
>> +#define CONFIG_I2C_MULTI_BUS
>> +#define CONFIG_SYS_MAX_I2C_BUS         TEGRA_I2C_NUM_CONTROLLERS
>> +#define CONFIG_SYS_I2C_SPEED           100000
>> +#define CONFIG_CMD_I2C
>> +#define CONFIG_SYS_I2C
>> +
>> +/* SD/MMC */
>> +#define CONFIG_MMC
>> +#define CONFIG_GENERIC_MMC
>> +#define CONFIG_TEGRA_MMC
>> +#define CONFIG_CMD_MMC
>> +
>> +/* Environment in eMMC, at the end of 2nd "boot sector" */
>> +#define CONFIG_ENV_IS_IN_MMC
>> +#define CONFIG_ENV_OFFSET              (-CONFIG_ENV_SIZE)
>> +#define CONFIG_SYS_MMC_ENV_DEV         0
>> +#define CONFIG_SYS_MMC_ENV_PART                2
>> +
>> +#define BOARD_EXTRA_ENV_SETTINGS \
>> +       "board_name=colibri-eval-v3\0" \
>> +       "fdtfile=tegra30-colibri-eval-v3.dtb\0"
>> +
>> +/* USB Host support */
>> +#define CONFIG_USB_EHCI
>> +#define CONFIG_USB_EHCI_TEGRA
>> +#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
>> +
>> +/* General networking support */
>> +#define CONFIG_CMD_NET
>> +#define CONFIG_CMD_DHCP
>> +
>> +#include "tegra-common-ums.h"
>> +#include "tegra-common-post.h"
>> +
>> +#endif /* __CONFIG_H */
>> --
>> 2.0.3
>>
> Regards,
> Simon

--
Stefan

  reply	other threads:[~2014-07-31 18:00 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-31 17:36 [U-Boot] [PATCH] ARM: tegra: add Colibri T30 board support Stefan Agner
2014-07-31 17:41 ` Simon Glass
2014-07-31 18:00   ` Stefan Agner [this message]
2014-07-31 21:55     ` Simon Glass
2014-07-31 22:49       ` Stephen Warren
2014-08-02 13:24       ` Stefan Agner
2014-07-31 18:21 ` Stephen Warren
2014-08-02 14:09   ` Stefan Agner
2014-08-04 17:02     ` Stephen Warren
2014-08-04 17:16       ` Tom Rini
2014-08-04 18:22         ` Stefan Agner
2014-08-04 18:38       ` Stefan Agner
2014-08-04 19:04         ` Stephen Warren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f92c195c2161b387e75ac743c7bce894@agner.ch \
    --to=stefan@agner.ch \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.