From patchwork Fri Feb 8 17:42:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcel Ziswiler X-Patchwork-Id: 1038861 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ziswiler.com Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43x2lc0mMdz9sN9 for ; Sat, 9 Feb 2019 04:50:35 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id ADBACC2208E; Fri, 8 Feb 2019 17:47:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 9A7B4C22082; Fri, 8 Feb 2019 17:43:27 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C110AC22057; Fri, 8 Feb 2019 17:43:12 +0000 (UTC) Received: from mout.perfora.net (mout.perfora.net [74.208.4.194]) by lists.denx.de (Postfix) with ESMTPS id 64021C22039 for ; Fri, 8 Feb 2019 17:43:08 +0000 (UTC) Received: from localhost.localdomain ([81.221.139.23]) by mrelay.perfora.net (mreueus002 [74.208.5.2]) with ESMTPSA (Nemesis) id 0McoOF-1gaMDB3Zuz-00Hyqu; Fri, 08 Feb 2019 18:43:05 +0100 From: Marcel Ziswiler To: u-boot@lists.denx.de Date: Fri, 8 Feb 2019 18:42:28 +0100 Message-Id: <20190208174229.23562-26-marcel@ziswiler.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190208174229.23562-1-marcel@ziswiler.com> References: <20190208174229.23562-1-marcel@ziswiler.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:sZYrZ4ZztaBlL7cjC1E/gmlVkjnoQbw1SUDix0HsYnucjufxBlK zWAHs63L8IfwqouFf4GeRw8kJ8mlkZPRJ6qMCoam+2qiZCJYgP5XgS/1uZn4JufhacvFaLj H2CDIIP517tMYdBdC3SRvsMvGO28UjLx0lk6wVQfZASyfPi1qfeQHVoONkZwFdHACUj/e6S /YTQl73SXXgLse8+49ibQ== X-UI-Out-Filterresults: notjunk:1; V03:K0:hi5xBBt8cUA=:9C9Kr7pz64cPXBbdZljkkY 0sxCZpHUDEFrqmh5Q2xvT8o2Ed6WAnbUJ1olDqGwtDxVhGp/bEpr1iMimPxycVkNHQsFWKMsg LEtCc8Yp4jMeVBYtrHMP8NcNhv19IGw47rGjJ2dqWAcAPRRc+s2YN0O/NcHeakZsXCn+s0XLI Jk43RveCJG0+m3iqJZD23g4vyzmaOHOn1z2Wxdm0IvoHZIhR4nSZx/qwLPHs+i4DK/pkxZHKe Zk/e6PZTEc6G47ccYbOreR1Ep9R6X7O19hd+aSzSiA9uEVQRkvoIwo9WrEfEkca2TANb+U1gH mynEcFXE2+XIzmPPevQv0Jl9dqVSVQP+fCmo3ryALMDbt7mu5Q+j0Z2/tjkKXONqLYY3h2pe9 9N52RCk79GyNa/mZciMurmDGo/qpv8GakNHChUqtSYUjg7fGeOBfPC+Uk1Qwj0GssOU65vYYi O89hqHLqT+b27YM3Z//zDOoRFK/hXfk1JpAk6Ss7vUIWfzq3l3cLbCHXJZBb2cJv4FgD98guB nuA4SR1g85s0Tv/oXQSU/fmJxHvbfo37tbaJIRhN2C9rkge+kEeF6n6a9E0Q2FjwxywNBDqux WrsA2Hw7tGYfnascNxAXuDZODz9OpK76T82PtO8Pv4JTMtUdP677NtzPAnwUE94FCcsVD+wMG yHTUvtKTECB2xoYVfgEqC8KY+L28Yxw8+RDUXU0eI9mv6ZufRm5wNemDhFbg7mtBY74ATcw5G OBmFn2fxpAWaY8J0PNALoACeSMMwizzlVddKVQ== Cc: Marcel Ziswiler , Gerard Salvatella , Max Krummenacher Subject: [U-Boot] [PATCH v1 25/26] colibri_imx6: added nreset gpio on reboot X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Gerard Salvatella RGMII_RD1 pin (active high, GPIO6_IO27) is triggered on reboot during the SPL phase. This asserts (active low) nReset_Out from the PMIC. Only V1.1 and later Colibri iMX6 modules implement this in hw. Previous versions do not use this pin, so it is safe to leave it enabled at all times. Signed-off-by: Gerard Salvatella Acked-by: Marcel Ziswiler --- board/toradex/colibri_imx6/colibri_imx6.c | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c index 4d9032419a..98ad87af19 100644 --- a/board/toradex/colibri_imx6/colibri_imx6.c +++ b/board/toradex/colibri_imx6/colibri_imx6.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "../common/tdx-cfg-block.h" #ifdef CONFIG_TDX_CMD_IMX_MFGR @@ -1061,6 +1062,26 @@ static void spl_dram_init(void) udelay(100); } +static iomux_v3_cfg_t const gpio_reset_pad[] = { + MX6_PAD_RGMII_RD1__GPIO6_IO27 | MUX_PAD_CTRL(NO_PAD_CTRL) | + MUX_MODE_SION +#define GPIO_NRESET IMX_GPIO_NR(6, 27) +}; + +#define IMX_RESET_CAUSE_POR 0x00011 +static void nreset_out(void) +{ + int reset_cause = get_imx_reset_cause(); + + if (reset_cause != IMX_RESET_CAUSE_POR) { + imx_iomux_v3_setup_multiple_pads(gpio_reset_pad, + ARRAY_SIZE(gpio_reset_pad)); + gpio_direction_output(GPIO_NRESET, 1); + udelay(100); + gpio_direction_output(GPIO_NRESET, 0); + } +} + void board_init_f(ulong dummy) { /* setup AIPS and disable watchdog */ @@ -1087,6 +1108,9 @@ void board_init_f(ulong dummy) /* Clear the BSS. */ memset(__bss_start, 0, __bss_end - __bss_start); + /* Assert nReset_Out */ + nreset_out(); + /* load/boot image from boot device */ board_init_r(NULL, 0); }