From patchwork Mon May 28 12:25:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 921528 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=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="gsB382gX"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 40vc9C01fZz9s0q for ; Mon, 28 May 2018 22:48:30 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id AE028C21E0B; Mon, 28 May 2018 12:28:23 +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=BAD_ENC_HEADER, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS, T_DKIM_INVALID 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 A47AAC21DFF; Mon, 28 May 2018 12:23:50 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 326B4C21E16; Mon, 28 May 2018 12:22:50 +0000 (UTC) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0053.outbound.protection.outlook.com [104.47.0.53]) by lists.denx.de (Postfix) with ESMTPS id 10FD2C21E73 for ; Mon, 28 May 2018 12:22:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D+c/RG5d22eDy8+ty1un5q4R1DZBDg7ToX2Ncvv59/8=; b=gsB382gXkumFqkMNj1GaAzquL5EPjzL0FdJ+PXLEcLes0nRW7EEpVXWNLkGCi9DGjNNXmpRNUDzLtTMG5zDvA5M0R+MGAg6M2AOOog8lpNT7lM05QI4joOWrHDadg4mYA6TS/EDIaV4GXAtbsSFoUAaPslaVaL06uSjz1PUeGe8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; Received: from linux-u7w5.ap.freescale.net.net (92.121.68.129) by VI1PR04MB3006.eurprd04.prod.outlook.com (2603:10a6:802:9::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.797.11; Mon, 28 May 2018 12:22:42 +0000 From: Peng Fan To: sbabic@denx.de, fabio.estevam@nxp.com Date: Mon, 28 May 2018 20:25:09 +0800 Message-Id: <20180528122526.20597-25-peng.fan@nxp.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180528122526.20597-1-peng.fan@nxp.com> References: <20180528122526.20597-1-peng.fan@nxp.com> MIME-Version: 1.0 X-Originating-IP: [92.121.68.129] X-ClientProxiedBy: HK2PR02CA0175.apcprd02.prod.outlook.com (2603:1096:201:21::11) To VI1PR04MB3006.eurprd04.prod.outlook.com (2603:10a6:802:9::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB3006; X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3006; 3:bYD9Yh2/PX8FNIn4/G8C387svdCl79hE+XCD0ES2iXlHOd3PvYqRCyTjQz0X+oRn11a0gRuRAMGW8HwtHHMETOGeopWw9Npo3y+Jci7IsDgv/VOQeWHZ3Zw68bX2+grJGVxN+Eihkx1MIIhxIQ4xeSQHEboJyzx7s4l8aoiQmXIn+cfV73wOAOH7PnDGBVfQ39uS85b+Y91ZmIO70HX0tdJcMpqJRVdNMppTyNsOV9lcluyBY0QWwquEjjGIQIjy; 25:ZYk5H2h++Kg/gWNXNBmnfW/l0dza67i+vILYa3f1j7QJ0nPc7QFs9u+D+mS1zE/L3mK1M2s5SC0Xhv4bwoDBAVg/L5nzlUePxM1PK4fwYJlu13LM9W9ZxtrBqo0bhN7q2LhY4HZdNFOlH3qhnju5Y3WUItXp0pp0hJoh+39K6vKvn0FUIUEwfCV6o6237wYD99VPmhfZjC+K0w7dGl8R5v9cDeFxSErC4Lk+VW/4Jm8ptMUW4vP3kx8aOs9ebWC26uTJsWcTPJTIn0HkLo6Pvt1eUJ6ulsjoTKG//JsNKc4JD+6mZo5IHeDboRwFRHAVf9pwsKBKSjdusQrTCh88lg==; 31:pzg6YKTk0sP+21VXSvwYCxea+Yfc3bXONELcOVRNg2s45R9kHJx8GPTTo5RYk96JhihgHdh1rCIyplZ2s8A2jpkc1AdXK4hZzJLjheJdnQHLrK+XenMlJgdA88olPOQQHoN7wcjQcK1ErA00gC9WjtTMRVRaZJG23KnhvM4sT4aiLjLNrEfq04MOUbz2N8eMl05wHItJwV2RmvFBz1SzJjJXKTAdEZvgdptFZ7Nv43A= X-MS-TrafficTypeDiagnostic: VI1PR04MB3006: X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3006; 20:LeOJQ20xsSZz8JLctjVqGoyXPtGdH+YV6vK9NOiBSsuoklix+bnSIgZOTakX8P9gYWNyhjxsOHo7unpFzysiBySSGil67Hem12OlRiM1k0G+pEPBDPudbr981/XaImHCUMokf5MXSxuMVaCvZLzXxMEbdIengA/DSYWvLE1XqDJfdTNo1ENFMbHPuGCGX95rVgPiZW+y99OdOIQAqx2wAYJ1Qrz79fxWSUHIZASmsdJ7vGyj2wTzZ5txjyW6UFst5aPyLpR9x/MnBui5XjM+gO1AZyZg1cp5/n83Do0QDV0na+kM7WOd6HCBgQ3ocLYOLCj0aYoCkrlIlBEMQOJDJ4Mi0WGTgkEwChPZJiXaL1b/jOES7vWw8s9oHzaMReG3sbkgJ/L7Ncoc6tqDJhHT8mWYgWxePyEpKhbE4u/N7w6uZx4ReNOI0hwVY/PgU4pJYgqMlwkhcluCnXCZOx6/mYYxzQl/SgZKLBr91u894HVemHqmUVbhF460f0gWWeKT; 4:dHM6SfJUoy5ENdVv27hlowpebk5f53qprWrjLSWQw+PLa0AimB+aLZAoAyYD1fOC5YLvruzHEyjD//Ra7TzVeAgm2UlouIevStto9mC37rPMLWkR8EIHUNwRDKP1aOp/b8SpZT41egq/WPty2USisAyOR13xVHKHTMFLHoMDAwuo+Fa0u3ugBYd1Ausmbo0C2YPeWt06ArvECgeE+YvGVX24kic9HKdDq4iABvICSEDQuKI/jlp9gfuqyMvgEYd1uo6ZOKQa8NpbVomP6CJejb/FmLO1CXPzoLTUIEDz7GpSfvV1muV/dpEusYGQ6dYe X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(10201501046)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:VI1PR04MB3006; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB3006; X-Forefront-PRVS: 06860EDC7B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(39380400002)(396003)(39860400002)(376002)(346002)(199004)(189003)(36756003)(97736004)(6636002)(6666003)(68736007)(86362001)(8676002)(44832011)(8936002)(81166006)(81156014)(47776003)(11346002)(956004)(2616005)(476003)(446003)(25786009)(486006)(48376002)(106356001)(105586002)(186003)(50466002)(16526019)(2906002)(6512007)(53936002)(1076002)(59450400001)(66066001)(26005)(51416003)(478600001)(305945005)(54906003)(50226002)(6486002)(5660300001)(6116002)(76176011)(3846002)(16586007)(52116002)(6506007)(4326008)(316002)(7736002)(386003); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB3006; H:linux-u7w5.ap.freescale.net.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR04MB3006; 23:Kzz5lQT/zp5pz7tMlxaMQnzuoKWs8ztg6xNFUOmXp?= g+B5YXCOnRv0x3QPCfAGd94TiyzbPFmdNnOay66LQ62dbfrbTPu8VVNtZ0BYQz876Jckxqx8wdt95IfRCAxK8TSX9kVSk4eRXTpBRXNtwXWLnr8H7cSPzU5auJAWSe+DIvnCll31DaIdbfafEZs1H0me6d8BvrhsBR2H2dVrC2rd6ypliSPoi1+p20hxZTivE0RovgyQ4ZcuBEZ94FDPZAcdbofNGiUlkO7lJy3UT4Y3uZ64bGmp/D1MGtIwoNKX99DGWIgwLWbcWweDvNwFzKYCOn/X/7YEq20K0jOfnFeNtIlMSaCuqsQ9l0b+9JvpjIJKWSw8X1N9QKrcvM9myGE0+6hzWw5zmyS0UDgdJeL/5D7jqSZJqDP8OjPNOe6+QmPnP194WAYSnlC9C6y5eyjuVNKdOSKghBM9tS9zAQCYlk656hTBrg0mNZksfbWuP4XAB3iWLyvIWqXwu2Ie7N7+s/QhViQFtXh9S8x7hp7XaOLuo58gaU6/pnPSgYkKmidDR5XMtHSoYqpx4xokn5XB5OfyXtvjur9A7+Slc+hSQahm/YjZ+xjg8NtipEhxjOWWXjzyDADFSZrKqreBxPd8ChfkQXH2EOJm1sreYB8+b5m/pD8yztr2zzpk1h2TRGrdFwSt7zKyLXB12K241GH3oExolhYcL30tzv0udhO+23WLB3lGf7YK8g9Bd3+byGWi79Lda4vRJ6xefQ2snjFSMuFoV/RpyHIryXLOnvi3f+EuHTxdfREjShCvJ6djnkFfnveENiQlzOLGEP7fprlIS3fNz1dVxut735IOsyzdckCd5emZzFvvUM1DJ/9EcCDySHI6xZ4b4QIAoZLDmfbElDc1DFp89EdtNxTns3AGrjDQdY+70xeTJy72pu6cughd8EwFHvESO1PHSiKL59XlbxlBU7W/7YAEslpA7KmttPBpgRiw/qBE0X6phJRJEh5inkmFBaYgxLbKDUYjo2CrrhOUE3AI1PtSV+ARJnNPC/zf+yGIQHWczR7YrGpVyNHvdip2WBnWagZWK713Tfllgd68o0rjQBMwfYhN7/Ro5jnsXkFQGqSBcrvX4vGzQX/mAElIExmN7jT30KN9D34LG9h9cvGqZGm1PlodZwSiXN2zHbnNRtzUfcJAF7Bx5v1OYVx23gM+dDPkmfb//Jxw6LFM9d9pUBK+sLwgXonGBMg0tsxJ4am4UkqwdAE1cJ5uItx5W1oKl8+mEnfu2Yv X-Microsoft-Antispam-Message-Info: dDu2XJviFXPJ1s0imdmNnckuHnqfz5myFz7M2BUxiNhUm36+Jvo2C/yQgjodM1n8ITGjHNBFPfFma1sUh2VY550fCLC5HD0SLelREViO5wQnRWi2BqhSYvWYR+8B9vwVQoGTpXFoTmi8OCy03JSXSQ5AuyHYx2hAni+jPMjtq6+XUWDE1ERrhQuH7gfQjuFR X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3006; 6:zmZ9zLR/uLFfThy1wlGo8A6g2cKsQDv4FOK0NFnfCOZ4tXTkBGrzTTqSX8wGawF3/LmnGh8cTH4YGaBriODF53gmEMO6lX3irHanfY9Y6YmHq77i3swI3VO/c91b9na0EFDsRTnjYbqSApjLU9wPcl8CMtKZ+Q3rfFMRfdsDyrITE2hvDkjsg9SxGLpIB6PHJFWKlA/QtjBT2M3lwtB20JtFFwQ/sN/XAUbxnTKC6AwuT0SSqcJcHdevoWxQNwQslQ41jKpylQYB57raDV34AlpSRP6aObBDPjAe1Mdawy1noMoukpLWddmVXtBXuZaxnWyIYVwm7Xu42hDA5QVd0PeVuwoENA4HHpLEMJ0NF+Xqi3g2nuG3VRbOj3Y6aHYM1Jzlt9qNEHFtJBE8GCeaxFPPeM6alcMmu2ReoAJFFUqHE22lEXCzGdp+JWU+T+B4q0EsuMDwfQ86Y5vo0kkXGw==; 5:daM5eqL0vEemFR3XV5SQ3qgqGV7l5/edQ6+59YCPBatPxKI3L/AqM3q+kL6PD473j8oHtf6hvOUbCm9mmvgmiOeQ6P6ykGfkJjEm/NfMca91i7SnL97Q4A3A2ti/egA6r0mZ6wyVCl4lytjpRV2UMWjiTIioL5Ui93laCbxmWqs=; 24:yS1jeqoQujZJKncW6GfCug2te6bLJf3Yv5HIIsUQjAGC6z3eG6SOBGnqVhOvWoEFdOeRpYH6ONC2ra4Hbp3JVmG7UjSPpMOjNP6gTJ5fqLE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR04MB3006; 7:VHRtUWMENvhJ0KS58JxxRWSvXwYZrZW/mLQ5GeclWeVmKhmc8GDGfoP6pV9FO5mnbtqaSx4YItQq8lreDYVj3L+5qqdFSTOmcI7xE5BYtb5/t4xo6lnlqErNAyJE8rqdOmr/NYvUtWFW1p/Q9sW0nsm7hkD3O2wM7ZHCzNFhyiwcJ17TG/8YTCkjGlYlVegCRYqQbxSBHnfnzHg55fnbpVf5bXh3Zr3R0gJyruPk19PIut6yeUc3oX2OzkukSVC4 X-MS-Office365-Filtering-Correlation-Id: 44977057-4b98-4af9-9381-08d5c495b75e X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2018 12:22:42.2611 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 44977057-4b98-4af9-9381-08d5c495b75e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB3006 Cc: u-boot@lists.denx.de, Gao Pan Subject: [U-Boot] [PATCH 24/41] imx: lpi2c: fix clock issue when NACK detected 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: Gao Pan For LPI2C IP, NACK is detected by the rising edge of the ninth clock. In current uboot driver, once NACK is detected, it will reset and then disable LPI2C master. As a result, we can never see the falling edge of the ninth clock. Signed-off-by: Gao Pan Signed-off-by: Peng Fan Cc: Heiko Schocher Reviewed-by: Heiko Schocher --- drivers/i2c/imx_lpi2c.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/i2c/imx_lpi2c.c b/drivers/i2c/imx_lpi2c.c index a6e41c5c91..d2e11b411b 100644 --- a/drivers/i2c/imx_lpi2c.c +++ b/drivers/i2c/imx_lpi2c.c @@ -15,6 +15,7 @@ #include #define LPI2C_FIFO_SIZE 4 +#define LPI2C_NACK_TOUT_MS 1 #define LPI2C_TIMEOUT_MS 100 /* Weak linked function for overridden by some SoC power function */ @@ -184,6 +185,7 @@ static int bus_i2c_stop(struct imx_lpi2c_reg *regs) { lpi2c_status_t result; u32 status; + ulong start_time; result = bus_i2c_wait_for_tx_ready(regs); if (result) { @@ -194,7 +196,8 @@ static int bus_i2c_stop(struct imx_lpi2c_reg *regs) /* send stop command */ writel(LPI2C_MTDR_CMD(0x2), ®s->mtdr); - while (result == LPI2C_SUCESS) { + start_time = get_timer(0); + while (1) { status = readl(®s->msr); result = imx_lpci2c_check_clear_error(regs); /* stop detect flag */ @@ -204,6 +207,11 @@ static int bus_i2c_stop(struct imx_lpi2c_reg *regs) writel(status, ®s->msr); break; } + + if (get_timer(start_time) > LPI2C_NACK_TOUT_MS) { + debug("stop timeout\n"); + return -ETIMEDOUT; + } } return result; @@ -363,10 +371,8 @@ static int imx_lpi2c_probe_chip(struct udevice *bus, u32 chip, } result = bus_i2c_stop(regs); - if (result) { + if (result) bus_i2c_init(bus, 100000); - return -result; - } return result; }