Merge https://gitlab.denx.de/u-boot/custodians/u-boot-imx
authorTom Rini <trini@konsulko.com>
Tue, 8 Dec 2020 14:53:03 +0000 (09:53 -0500)
committerTom Rini <trini@konsulko.com>
Tue, 8 Dec 2020 14:53:03 +0000 (09:53 -0500)
25 files changed:
arch/arm/dts/Makefile
arch/arm/dts/armada-3720-espressobin-emmc.dts [deleted file]
arch/arm/dts/armada-3720-espressobin.dts
arch/arm/dts/armada-3720-espressobin.dtsi [deleted file]
arch/arm/mach-mvebu/Kconfig
arch/arm/mach-mvebu/serdes/a38x/high_speed_env_spec.c
arch/arm/mach-tegra/tegra124/Kconfig
board/Marvell/mvebu_armada-37xx/board.c
board/Marvell/mvebu_armada-8k/MAINTAINERS
board/toradex/apalis_t30/pinmux-config-apalis_t30.h
board/toradex/colibri_t30/colibri_t30.c
board/toradex/colibri_t30/pinmux-config-colibri_t30.h
configs/cei-tk1-som_defconfig
doc/README.marvell
include/config_distro_bootcmd.h
include/configs/apalis_t30.h
include/configs/cei-tk1-som.h
include/configs/colibri_t30.h
include/configs/tegra-common.h
include/configs/tegra114-common.h
include/configs/tegra124-common.h
include/configs/tegra186-common.h
include/configs/tegra20-common.h
include/configs/tegra210-common.h
include/configs/tegra30-common.h

index 7cefce6..02d04f5 100644 (file)
@@ -204,7 +204,6 @@ dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \
 dtb-$(CONFIG_ARCH_MVEBU) +=                    \
        armada-3720-db.dtb                      \
        armada-3720-espressobin.dtb             \
-       armada-3720-espressobin-emmc.dtb        \
        armada-3720-turris-mox.dtb              \
        armada-3720-uDPU.dtb                    \
        armada-375-db.dtb                       \
diff --git a/arch/arm/dts/armada-3720-espressobin-emmc.dts b/arch/arm/dts/armada-3720-espressobin-emmc.dts
deleted file mode 100644 (file)
index 29ccb6a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Device Tree file for Globalscale Marvell ESPRESSOBin Board with eMMC
- * Copyright (C) 2018 Marvell
- *
- * Romain Perier <romain.perier@free-electrons.com>
- * Konstantin Porotchkin <kostap@marvell.com>
- *
- */
-/*
- * Schematic available at http://espressobin.net/wp-content/uploads/2017/08/ESPRESSObin_V5_Schematics.pdf
- */
-
-/dts-v1/;
-
-#include "armada-3720-espressobin.dtsi"
-
-/ {
-       model = "Globalscale Marvell ESPRESSOBin Board (eMMC)";
-       compatible = "globalscale,espressobin-emmc", "globalscale,espressobin",
-                    "marvell,armada3720", "marvell,armada3710";
-};
-
-/* U11 */
-&sdhci1 {
-       non-removable;
-       bus-width = <8>;
-       mmc-ddr-1_8v;
-       mmc-hs400-1_8v;
-       marvell,xenon-emmc;
-       marvell,xenon-tun-count = <9>;
-       marvell,pad-type = "fixed-1-8v";
-
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc_pins>;
-       status = "okay";
-
-       #address-cells = <1>;
-       #size-cells = <0>;
-       mmccard: mmccard@0 {
-               compatible = "mmc-card";
-               reg = <0>;
-       };
-};
index 1542d83..96a4b3d 100644 (file)
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
 /*
- * Device Tree file for Globalscale Marvell ESPRESSOBin Board
+ * Device Tree file for Marvell Armada 3720 community board
+ * (ESPRESSOBin)
  * Copyright (C) 2016 Marvell
  *
- * Romain Perier <romain.perier@free-electrons.com>
+ * Gregory CLEMENT <gregory.clement@free-electrons.com>
+ * Konstantin Porotchkin <kostap@marvell.com>
  *
- */
-/*
- * Schematic available at http://espressobin.net/wp-content/uploads/2017/08/ESPRESSObin_V5_Schematics.pdf
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file 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 file 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.
+ *
+ * Or, alternatively
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
  */
 
 /dts-v1/;
 
-#include "armada-3720-espressobin.dtsi"
+#include "armada-372x.dtsi"
 
 / {
        model = "Globalscale Marvell ESPRESSOBin Board";
        compatible = "globalscale,espressobin", "marvell,armada3720", "marvell,armada3710";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               ethernet0 = &eth0;
+               i2c0 = &i2c0;
+               spi0 = &spi0;
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
+       };
+
+       vcc_sd_reg0: regulator@0 {
+               compatible = "regulator-gpio";
+               regulator-name = "vcc_sd0";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-type = "voltage";
+               states = <1800000 0x1
+                         3300000 0x0>;
+               gpios = <&gpionb 4 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&comphy {
+       max-lanes = <3>;
+       phy0 {
+               phy-type = <PHY_TYPE_USB3_HOST0>;
+               phy-speed = <PHY_SPEED_5G>;
+       };
+
+       phy1 {
+               phy-type = <PHY_TYPE_PEX0>;
+               phy-speed = <PHY_SPEED_2_5G>;
+       };
+
+       phy2 {
+               phy-type = <PHY_TYPE_SATA0>;
+               phy-speed = <PHY_SPEED_5G>;
+       };
+};
+
+&eth0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmii_pins>, <&smi_pins>;
+       phy-mode = "rgmii";
+       phy_addr = <0x1>;
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       status = "okay";
+};
+
+/* CON3 */
+&sata {
+       status = "okay";
+};
+
+&sdhci0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdio_pins>;
+       bus-width = <4>;
+       cd-gpios = <&gpionb 3 GPIO_ACTIVE_LOW>;
+       vqmmc-supply = <&vcc_sd_reg0>;
+       status = "okay";
+};
+
+/* U11 */
+&sdhci1 {
+       non-removable;
+       bus-width = <8>;
+       mmc-ddr-1_8v;
+       mmc-hs400-1_8v;
+       marvell,xenon-emmc;
+       marvell,xenon-tun-count = <9>;
+       marvell,pad-type = "fixed-1-8v";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc_pins>;
+       status = "okay";
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+       mmccard: mmccard@0 {
+               compatible = "mmc-card";
+               reg = <0>;
+       };
+};
+
+&spi0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi_quad_pins>;
+
+       spi-flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "st,m25p128", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <50000000>;
+               m25p,fast-read;
+       };
+};
+
+/* Exported on the micro USB connector CON32 through an FTDI */
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>;
+       status = "okay";
+};
+
+/* CON29 */
+&usb2 {
+       status = "okay";
+};
+
+/* CON31 */
+&usb3 {
+       status = "okay";
+};
+
+&pcie0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_pins>;
+       reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
+       status = "okay";
 };
diff --git a/arch/arm/dts/armada-3720-espressobin.dtsi b/arch/arm/dts/armada-3720-espressobin.dtsi
deleted file mode 100644 (file)
index 05dec89..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Device Tree file for Marvell Armada 3720 community board
- * (ESPRESSOBin)
- * Copyright (C) 2016 Marvell
- *
- * Gregory CLEMENT <gregory.clement@free-electrons.com>
- * Konstantin Porotchkin <kostap@marvell.com>
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file 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 file 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.
- *
- * Or, alternatively
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-
-#include "armada-372x.dtsi"
-
-/ {
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               ethernet0 = &eth0;
-               i2c0 = &i2c0;
-               spi0 = &spi0;
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
-       };
-
-       vcc_sd_reg0: regulator@0 {
-               compatible = "regulator-gpio";
-               regulator-name = "vcc_sd0";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-type = "voltage";
-               states = <1800000 0x1
-                         3300000 0x0>;
-               gpios = <&gpionb 4 GPIO_ACTIVE_HIGH>;
-       };
-};
-
-&comphy {
-       max-lanes = <3>;
-       phy0 {
-               phy-type = <PHY_TYPE_USB3_HOST0>;
-               phy-speed = <PHY_SPEED_5G>;
-       };
-
-       phy1 {
-               phy-type = <PHY_TYPE_PEX0>;
-               phy-speed = <PHY_SPEED_2_5G>;
-       };
-
-       phy2 {
-               phy-type = <PHY_TYPE_SATA0>;
-               phy-speed = <PHY_SPEED_5G>;
-       };
-};
-
-&eth0 {
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&rgmii_pins>, <&smi_pins>;
-       phy-mode = "rgmii";
-       phy_addr = <0x1>;
-       fixed-link {
-               speed = <1000>;
-               full-duplex;
-       };
-};
-
-&i2c0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&i2c1_pins>;
-       status = "okay";
-};
-
-/* CON3 */
-&sata {
-       status = "okay";
-};
-
-&sdhci0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&sdio_pins>;
-       bus-width = <4>;
-       cd-gpios = <&gpionb 3 GPIO_ACTIVE_LOW>;
-       vqmmc-supply = <&vcc_sd_reg0>;
-       status = "okay";
-};
-
-&spi0 {
-       status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&spi_quad_pins>;
-
-       spi-flash@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "st,m25p128", "jedec,spi-nor";
-               reg = <0>; /* Chip select 0 */
-               spi-max-frequency = <50000000>;
-               m25p,fast-read;
-       };
-};
-
-/* Exported on the micro USB connector CON32 through an FTDI */
-&uart0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart1_pins>;
-       status = "okay";
-};
-
-/* CON29 */
-&usb2 {
-       status = "okay";
-};
-
-/* CON31 */
-&usb3 {
-       status = "okay";
-};
-
-&pcie0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pcie_pins>;
-       reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
-       status = "okay";
-};
index 0d8e092..72aee8b 100644 (file)
@@ -30,6 +30,12 @@ config ARMADA_38X
        select ARMADA_32BIT
        select HAVE_MVEBU_EFUSE
 
+config ARMADA_38X_HS_IMPEDANCE_THRESH
+       hex  "Armada 38x USB 2.0 High-Speed Impedance Threshold (0x0 - 0x7)"
+       depends on ARMADA_38X
+       default 0x6
+       range 0x0 0x7
+
 config ARMADA_XP
        bool
        select ARMADA_32BIT
index 2454730..ae2a361 100644 (file)
@@ -677,9 +677,9 @@ struct op_params usb2_power_up_params[] = {
        {0xc200c, 0x0 /*NA*/, 0xf000, {0x1000}, 0, 0},
        {0xc400c, 0x0 /*NA*/, 0xf000, {0x1000}, 0, 0},
        /* Change the High speed impedance threshold */
-       {0xc0008, 0x0 /*NA*/, 0x700, {0x600}, 0, 0},
-       {0xc2008, 0x0 /*NA*/, 0x700, {0x600}, 0, 0},
-       {0xc4008, 0x0 /*NA*/, 0x700, {0x600}, 0, 0},
+       {0xc0008, 0x0 /*NA*/, 0x700, {CONFIG_ARMADA_38X_HS_IMPEDANCE_THRESH << 8}, 0, 0},
+       {0xc2008, 0x0 /*NA*/, 0x700, {CONFIG_ARMADA_38X_HS_IMPEDANCE_THRESH << 8}, 0, 0},
+       {0xc4008, 0x0 /*NA*/, 0x700, {CONFIG_ARMADA_38X_HS_IMPEDANCE_THRESH << 8}, 0, 0},
        /* Change the squelch level of the receiver to meet the receiver electrical measurements (squelch and receiver sensitivity tests) */
        {0xc0014, 0x0 /*NA*/, 0xf, {0x8}, 0, 0},
        {0xc2014, 0x0 /*NA*/, 0xf, {0x8}, 0, 0},
index 6fa31ea..fb016aa 100644 (file)
@@ -19,6 +19,7 @@ config TARGET_JETSON_TK1
 
 config TARGET_CEI_TK1_SOM
        bool "Colorado Engineering Inc Tegra124 TK1-som board"
+       select ARCH_SUPPORT_PSCI
        select BOARD_LATE_INIT
        select CPU_V7_HAS_NONSEC if !SPL_BUILD
        select CPU_V7_HAS_VIRT if !SPL_BUILD
index 73d69e0..f67b04b 100644 (file)
@@ -8,6 +8,7 @@
 #include <env.h>
 #include <i2c.h>
 #include <init.h>
+#include <mmc.h>
 #include <phy.h>
 #include <asm/io.h>
 #include <asm/arch/cpu.h>
@@ -83,6 +84,7 @@ int board_init(void)
 #ifdef CONFIG_BOARD_LATE_INIT
 int board_late_init(void)
 {
+       struct mmc *mmc_dev;
        bool ddr4, emmc;
 
        if (env_get("fdtfile"))
@@ -95,7 +97,9 @@ int board_late_init(void)
        ddr4 = ((readl(A3700_CH0_MC_CTRL2_REG) >> A3700_MC_CTRL2_SDRAM_TYPE_OFFS)
                & A3700_MC_CTRL2_SDRAM_TYPE_MASK) == A3700_MC_CTRL2_SDRAM_TYPE_DDR4;
 
-       emmc = of_machine_is_compatible("globalscale,espressobin-emmc");
+       /* eMMC is mmc dev num 1 */
+       mmc_dev = find_mmc_device(1);
+       emmc = (mmc_dev && mmc_init(mmc_dev) == 0);
 
        if (ddr4 && emmc)
                env_set("fdtfile", "marvell/armada-3720-espressobin-v7-emmc.dtb");
index 15660cd..55e485f 100644 (file)
@@ -13,6 +13,7 @@ F:    configs/mvebu_mcbin-88f8040_defconfig
 
 Puzzle-M801 BOARD
 M:     Luka Kovacic <luka.kovacic@sartura.hr>
+M:     Luka Perkov <luka.perkov@sartura.hr>
 S:     Maintained
 F:     configs/mvebu_puzzle-m801-88f8040_defconfig
 F:     arch/arm/dts/armada-8040-puzzle-m801.dts
index 49c2df7..3a2cf46 100644 (file)
@@ -11,7 +11,9 @@
                .pingrp         = PMUX_PINGRP_##_pingrp,        \
                .func           = PMUX_FUNC_##_mux,             \
                .pull           = PMUX_PULL_##_pull,            \
+/* TRISTATE here means output driver is tri-stated */ \
                .tristate       = PMUX_TRI_##_tri,              \
+/* INPUT here means input driver is enabled vs. OUTPUT where it is disabled */ \
                .io             = PMUX_PIN_##_io,               \
                .lock           = PMUX_PIN_LOCK_DEFAULT,        \
                .od             = PMUX_PIN_OD_DEFAULT,          \
@@ -118,7 +120,8 @@ static struct pmux_pingrp_config tegra3_pinmux_common[] = {
        DEFAULT_PINMUX(ULPI_DATA6_PO7, UARTA, NORMAL, NORMAL, INPUT),
        DEFAULT_PINMUX(ULPI_DATA7_PO0, UARTA, NORMAL, NORMAL, OUTPUT),
        DEFAULT_PINMUX(ULPI_CLK_PY0, UARTD, NORMAL, NORMAL, OUTPUT),
-       DEFAULT_PINMUX(ULPI_DIR_PY1, UARTD, NORMAL, NORMAL, INPUT),
+       /* UARTD RX, make sure we don't get input form a floating Pin */
+       DEFAULT_PINMUX(ULPI_DIR_PY1, UARTD, UP, NORMAL, INPUT),
        DEFAULT_PINMUX(ULPI_NXT_PY2, UARTD, NORMAL, NORMAL, INPUT),
        DEFAULT_PINMUX(ULPI_STP_PY3, UARTD, NORMAL, NORMAL, OUTPUT),
        DEFAULT_PINMUX(DAP3_FS_PP0, I2S2, NORMAL, NORMAL, INPUT),
@@ -187,12 +190,14 @@ static struct pmux_pingrp_config tegra3_pinmux_common[] = {
        LV_PINMUX(VI_MCLK_PT1, VI, NORMAL, NORMAL, OUTPUT, DISABLE, DISABLE),
        LV_PINMUX(VI_PCLK_PT0, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
        LV_PINMUX(VI_VSYNC_PD6, VI, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
-       DEFAULT_PINMUX(UART2_RXD_PC3, UARTB, NORMAL, NORMAL, INPUT),
+       /* UARTB RX, make sure we don't get input form a floating Pin */
+       DEFAULT_PINMUX(UART2_RXD_PC3, UARTB, UP, NORMAL, INPUT),
        DEFAULT_PINMUX(UART2_TXD_PC2, UARTB, NORMAL, NORMAL, OUTPUT),
        DEFAULT_PINMUX(UART2_RTS_N_PJ6, UARTB, DOWN, TRISTATE, OUTPUT), /* NC */
        DEFAULT_PINMUX(UART2_CTS_N_PJ5, UARTB, DOWN, TRISTATE, OUTPUT), /* NC */
        DEFAULT_PINMUX(UART3_TXD_PW6, UARTC, NORMAL, NORMAL, OUTPUT),
-       DEFAULT_PINMUX(UART3_RXD_PW7, UARTC, NORMAL, NORMAL, INPUT),
+       /* UARTC RX, make sure we don't get input form a floating Pin */
+       DEFAULT_PINMUX(UART3_RXD_PW7, UARTC, UP, NORMAL, INPUT),
        DEFAULT_PINMUX(UART3_CTS_N_PA1, UARTC, NORMAL, NORMAL, INPUT),
        DEFAULT_PINMUX(UART3_RTS_N_PC0, PWM0, NORMAL, NORMAL, OUTPUT),
        DEFAULT_PINMUX(PU0, RSVD1, DOWN, TRISTATE, OUTPUT),
index c5562f6..20cbb75 100644 (file)
@@ -58,6 +58,17 @@ void pinmux_init(void)
 }
 
 /*
+ * Disable RS232 serial transceiver ForceOFF# pins on Iris
+ */
+void gpio_early_init_uart(void)
+{
+       gpio_request(TEGRA_GPIO(X, 6), "Force OFF# X13");
+       gpio_direction_output(TEGRA_GPIO(X, 6), 1);
+       gpio_request(TEGRA_GPIO(X, 7), "Force OFF# X14");
+       gpio_direction_output(TEGRA_GPIO(X, 7), 1);
+}
+
+/*
  * Enable AX88772B USB to LAN controller
  */
 void pin_mux_usb(void)
index bdbbf5e..5ac1a6d 100644 (file)
@@ -11,7 +11,9 @@
                .pingrp         = PMUX_PINGRP_##_pingrp,        \
                .func           = PMUX_FUNC_##_mux,             \
                .pull           = PMUX_PULL_##_pull,            \
+/* TRISTATE here means output driver is tri-stated */ \
                .tristate       = PMUX_TRI_##_tri,              \
+/* INPUT here means input driver is enabled vs. OUTPUT where it is disabled */ \
                .io             = PMUX_PIN_##_io,               \
                .lock           = PMUX_PIN_LOCK_DEFAULT,        \
                .od             = PMUX_PIN_OD_DEFAULT,          \
@@ -178,14 +180,16 @@ static struct pmux_pingrp_config tegra3_pinmux_common[] = {
        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),
+       /* UARTC RX, make sure we don't get input form a floating Pin */
+       DEFAULT_PINMUX(UART2_RXD_PC3, UARTB, UP, NORMAL, INPUT),
+       DEFAULT_PINMUX(UART2_TXD_PC2, UARTB, NORMAL, NORMAL, INPUT),
+       DEFAULT_PINMUX(UART2_RTS_N_PJ6, GMI, NORMAL, NORMAL, INPUT),
+       DEFAULT_PINMUX(UART2_CTS_N_PJ5, GMI, NORMAL, NORMAL, INPUT),
+       DEFAULT_PINMUX(UART3_TXD_PW6, GMI, NORMAL, NORMAL, INPUT),
+       DEFAULT_PINMUX(UART3_RXD_PW7, GMI, NORMAL, NORMAL, INPUT),
+       DEFAULT_PINMUX(UART3_CTS_N_PA1, GMI, NORMAL, NORMAL, INPUT),
+       DEFAULT_PINMUX(UART3_RTS_N_PC0, GMI, NORMAL, NORMAL, INPUT),
+
        DEFAULT_PINMUX(PU0, RSVD1, NORMAL, NORMAL, INPUT),
        DEFAULT_PINMUX(PU1, RSVD1, NORMAL, NORMAL, OUTPUT),
        DEFAULT_PINMUX(PU2, RSVD1, NORMAL, NORMAL, INPUT),
@@ -204,11 +208,11 @@ static struct pmux_pingrp_config tegra3_pinmux_common[] = {
        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),
+       /* UARTB RX, make sure we don't get input form a floating Pin */
+       DEFAULT_PINMUX(GMI_A17_PB0, UARTD, UP, 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),
@@ -268,10 +272,10 @@ static struct pmux_pingrp_config tegra3_pinmux_common[] = {
        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),
+       DEFAULT_PINMUX(SPI1_MOSI_PX4, GMI, NORMAL, NORMAL, INPUT),
+       DEFAULT_PINMUX(SPI1_SCK_PX5, GMI, NORMAL, NORMAL, INPUT),
+       DEFAULT_PINMUX(SPI1_CS0_N_PX6, GMI, NORMAL, NORMAL, INPUT),
+       DEFAULT_PINMUX(SPI1_MISO_PX7, RSVD4, NORMAL, NORMAL, INPUT),
 
        /* LAN_RESET */
        DEFAULT_PINMUX(PEX_L0_PRSNT_N_PDD0, RSVD2, NORMAL, NORMAL, OUTPUT),
index a1b494e..987e3ac 100644 (file)
@@ -7,6 +7,7 @@ CONFIG_ENV_OFFSET=0xFFFFE000
 CONFIG_SPL_TEXT_BASE=0x80108000
 CONFIG_TEGRA124=y
 CONFIG_TARGET_CEI_TK1_SOM=y
+CONFIG_ARMV7_PSCI_0_1=y
 CONFIG_DEFAULT_DEVICE_TREE="tegra124-cei-tk1-som"
 CONFIG_OF_SYSTEM_SETUP=y
 CONFIG_CONSOLE_MUX=y
index 6f05ad4..6fc5ac8 100644 (file)
@@ -43,11 +43,8 @@ Build Procedure
         In order to prevent this, the required device-tree MUST be set during compilation.
         All device-tree files are located in ./arch/arm/dts/ folder.
 
-       For the EspressoBin board with populated eMMC device use
-               # make DEVICE_TREE=armada-3720-espressobin-emmc
-
-       For other DB boards (MacchiatoBin, EspressoBin without soldered eMMC and 3700 DB board)
-       compile u-boot with just default device-tree from defconfig using:
+       For other DB boards (MacchiatoBin, EspressoBin and 3700 DB board) compile u-boot with
+       just default device-tree from defconfig using:
 
                # make
 
index ff29ef5..82a3a36 100644 (file)
          "setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; "           \
        "fi; "
 #else
+#ifndef BOOTENV_EFI_SET_FDTFILE_FALLBACK
 #define BOOTENV_EFI_SET_FDTFILE_FALLBACK
 #endif
+#endif
 
 
 #define BOOTENV_SHARED_EFI                                                \
index bf0aefd..f0c003d 100644 (file)
 
 #include "tegra30-common.h"
 
-/* Board-specific serial config */
+/*
+ * Board-specific serial config
+ *
+ * Apalis UART1: NVIDIA UARTA
+ * Apalis UART2: NVIDIA UARTD
+ * Apalis UART3: NVIDIA UARTB
+ * Apalis UART4: NVIDIA UARTC
+ */
 #define CONFIG_TEGRA_ENABLE_UARTA
 #define CONFIG_SYS_NS16550_COM1                NV_PA_APB_UARTA_BASE
 
index dd3bdac..2c406d3 100644 (file)
@@ -28,8 +28,6 @@
 #include "tegra-common-usb-gadget.h"
 #include "tegra-common-post.h"
 
-#define CONFIG_ARMV7_PSCI                      1
-#define CONFIG_ARMV7_PSCI_NR_CPUS              4
 /* Reserve top 1M for secure RAM */
 #define CONFIG_ARMV7_SECURE_BASE               0xfff00000
 #define CONFIG_ARMV7_SECURE_RESERVE_SIZE       0x00100000
index fa0fa93..94802a6 100644 (file)
 
 /* High-level configuration options */
 
-/* Board-specific serial config */
+/*
+ * Board-specific serial config
+ *
+ * Colibri UART-A: NVIDIA UARTA
+ * Colibri UART-B: NVIDIA UARTD
+ * Colibri UART-C: NVIDIA UARTB
+ */
 #define CONFIG_TEGRA_ENABLE_UARTA
 #define CONFIG_SYS_NS16550_COM1                NV_PA_APB_UARTA_BASE
 
index 2b96891..432ecea 100644 (file)
 /* Boot Argument Buffer Size */
 #define CONFIG_SYS_BARGSIZE            (CONFIG_SYS_CBSIZE)
 
+#ifdef CONFIG_ARM64
+#define FDTFILE "nvidia/" CONFIG_DEFAULT_DEVICE_TREE ".dtb"
+#else
+#define FDTFILE CONFIG_DEFAULT_DEVICE_TREE ".dtb"
+#endif
+
 /*-----------------------------------------------------------------------
  * Physical Memory Map
  */
index d3a7045..9d751b6 100644 (file)
@@ -50,6 +50,7 @@
        "scriptaddr=0x90000000\0" \
        "pxefile_addr_r=0x90100000\0" \
        "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+       "fdtfile=" FDTFILE "\0" \
        "fdt_addr_r=0x83000000\0" \
        "ramdisk_addr_r=0x83100000\0"
 
index 522993b..0eb8f92 100644 (file)
@@ -52,6 +52,7 @@
        "scriptaddr=0x90000000\0" \
        "pxefile_addr_r=0x90100000\0" \
        "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+       "fdtfile=" FDTFILE "\0" \
        "fdt_addr_r=0x83000000\0" \
        "ramdisk_addr_r=0x83100000\0"
 
index b4936cc..d5f21e0 100644 (file)
 /* Generic Interrupt Controller */
 #define CONFIG_GICV2
 
+#undef FDTFILE
+#define BOOTENV_EFI_SET_FDTFILE_FALLBACK                                  \
+        "if test -z \"${fdtfile}\" -a -n \"${soc}\"; then "               \
+          "setenv efi_fdtfile ${vendor}/${soc}-${board}${boardver}.dtb; "           \
+        "fi; "
+
 /*
  * Memory layout for where various images get loaded by boot scripts:
  *
index 1e31d82..fdd8996 100644 (file)
@@ -51,6 +51,7 @@
        "scriptaddr=0x10000000\0" \
        "pxefile_addr_r=0x10100000\0" \
        "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+       "fdtfile=" FDTFILE "\0" \
        "fdt_addr_r=0x03000000\0" \
        "ramdisk_addr_r=0x03100000\0"
 
index 1b8e94b..2226eff 100644 (file)
@@ -46,6 +46,7 @@
        "scriptaddr=0x90000000\0" \
        "pxefile_addr_r=0x90100000\0" \
        "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+       "fdtfile=" FDTFILE "\0" \
        "fdt_addr_r=0x83000000\0" \
        "ramdisk_addr_r=0x83200000\0"
 
index 54bc675..6c5dc24 100644 (file)
@@ -47,6 +47,7 @@
        "scriptaddr=0x90000000\0" \
        "pxefile_addr_r=0x90100000\0" \
        "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+       "fdtfile=" FDTFILE "\0" \
        "fdt_addr_r=0x83000000\0" \
        "ramdisk_addr_r=0x83100000\0"