From patchwork Fri Feb 8 17:42:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcel Ziswiler X-Patchwork-Id: 1038851 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 43x2kl4wk4z9sMp for ; Sat, 9 Feb 2019 04:49:51 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 3A2A0C22031; Fri, 8 Feb 2019 17:48:46 +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 6A7E1C22036; Fri, 8 Feb 2019 17:43:47 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D5AA8C2202F; Fri, 8 Feb 2019 17:43:04 +0000 (UTC) Received: from mout.perfora.net (mout.perfora.net [74.208.4.197]) by lists.denx.de (Postfix) with ESMTPS id 8FC96C22066 for ; Fri, 8 Feb 2019 17:43:00 +0000 (UTC) Received: from localhost.localdomain ([81.221.139.23]) by mrelay.perfora.net (mreueus002 [74.208.5.2]) with ESMTPSA (Nemesis) id 0MN3r4-1glXPU3rI0-006fGD; Fri, 08 Feb 2019 18:42:57 +0100 From: Marcel Ziswiler To: u-boot@lists.denx.de Date: Fri, 8 Feb 2019 18:42:21 +0100 Message-Id: <20190208174229.23562-19-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:K82GEzUgQqX0zk45FesuSy4C5SIYET2ltce7dn1GYe97NEo0h+c 4eQR4imhs5oyAhauJ9TziTgKl3yAI/h4cG1Zz9WBc8IHbXHX+uVkpjsONNRrBb0eKrE0ptv c+W4DEjeopFX1HV5JNY6Fki0RE2lR2M6wJ7T0E1MrgNGZOehfUn6K+wtOCX3JfYQv3FpqPB MAJkm5mgr0OBFvS8cItug== X-UI-Out-Filterresults: notjunk:1; V03:K0:+YHozVRTY/E=:88+YvWZ6yeR9L0SwfoySU9 EG7TVYR4iq24sV5D2zEcYFIu4zIArxsfBVSEtY3lnY63QQ8ntwcChlxe2E6X2Se1NT3e46anB bjdtibqOvIGZdGGwoTsRKPM6Tas0hjyquF4fN/GIg5FMRXFil3KsQ1jkb3zM/qmlBsXwKVEqh Om40XOtxkJc3knOaStRI9PALkdKS2V9pbf0ot5MpBcSbePrSXLYCKv8mE4nJNZLYCLdQ7OC7W McCxdAVeWHyvZnSF/rSY9U92qzw5zlVeZmufRIiO6MOxkuSistCbt9qp97LxxtAxcbjEct8iw nR2ZFFFd53E794GkLGcJLzEK4OLyXZPbteLVmaQevtwD1LEzvuHDemGQsCmbh79BvhTL9x27X Zwe6HoVOGipvR2vT/VtJDFa/orRjs7B9hkwICgh1gZyKYhfMc8CJqokW3X3bmNVTqQHqDdcyc KakFmMP2tUApHoDnXu667T+Gr/XhkLGaHQp7CWs0Ws5h3MGRjSy9o61m/BV4L7G54zYvAvLeT lGLmDiP8yMJEuRYjubqdhslT/BP1uN7zTh3+RLfBEBECof9s7wTdPhD0jiM+9/vCTL79VfcLe 0dGYktQI+R7+uBoXadhqVT+fslL+REfG4C1sE4VawTi+wOtGJVFU4tQiUjrD0RNuH7cCDHviB +4SazSG/l06UrhBVCWIyHJlWWNk11WiqgHjJCZUv8UJfjSkOJjqCBT7DPr9wLemXe7WN2LdR3 t+zPNMHl2cgCz4BXw+k7ZoejHzQiSym5kn7LHA== Cc: Marcel Ziswiler , Max Krummenacher Subject: [U-Boot] [PATCH v1 18/26] colibri imx6: disable ri and dcd irq in uarts 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: Max Krummenacher If the UART is used in DTE mode the RI and DCD bits in UCR3 become irq enable bits. Both are set to enabled after reset and both likely are pending. Disable the bits also on UARTs not used in the boot loader to prevent an interrupt storm when Linux enables the UART interrupts. Signed-off-by: Max Krummenacher Acked-by: Marcel Ziswiler --- board/toradex/colibri_imx6/colibri_imx6.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c index 3d72a315b4..76b776e17e 100644 --- a/board/toradex/colibri_imx6/colibri_imx6.c +++ b/board/toradex/colibri_imx6/colibri_imx6.c @@ -271,14 +271,21 @@ iomux_v3_cfg_t const usb_pads[] = { * UARTs are used in DTE mode, switch the mode on all UARTs before * any pinmuxing connects a (DCE) output to a transceiver output. */ +#define UCR3 0x88 /* FIFO Control Register */ +#define UCR3_RI BIT(8) /* RIDELT DTE mode */ +#define UCR3_DCD BIT(9) /* DCDDELT DTE mode */ #define UFCR 0x90 /* FIFO Control Register */ -#define UFCR_DCEDTE (1<<6) /* DCE=0 */ +#define UFCR_DCEDTE BIT(6) /* DCE=0 */ static void setup_dtemode_uart(void) { setbits_le32((u32 *)(UART1_BASE + UFCR), UFCR_DCEDTE); setbits_le32((u32 *)(UART2_BASE + UFCR), UFCR_DCEDTE); setbits_le32((u32 *)(UART3_BASE + UFCR), UFCR_DCEDTE); + + clrbits_le32((u32 *)(UART1_BASE + UCR3), UCR3_DCD | UCR3_RI); + clrbits_le32((u32 *)(UART2_BASE + UCR3), UCR3_DCD | UCR3_RI); + clrbits_le32((u32 *)(UART3_BASE + UCR3), UCR3_DCD | UCR3_RI); } static void setup_iomux_uart(void)