From patchwork Fri Nov 17 08:21:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhang Ying-22455 X-Patchwork-Id: 838897 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=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-i2c-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ydWkX4sMvz9s0g for ; Fri, 17 Nov 2017 19:39:32 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965495AbdKQIjb (ORCPT ); Fri, 17 Nov 2017 03:39:31 -0500 Received: from mail-dm3nam03on0076.outbound.protection.outlook.com ([104.47.41.76]:18688 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S965444AbdKQIja (ORCPT ); Fri, 17 Nov 2017 03:39:30 -0500 Received: from MWHPR03CA0017.namprd03.prod.outlook.com (10.175.133.155) by CY1PR03MB2362.namprd03.prod.outlook.com (10.166.207.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.239.5; Fri, 17 Nov 2017 08:39:28 +0000 Received: from BN1AFFO11FD040.protection.gbl (2a01:111:f400:7c10::168) by MWHPR03CA0017.outlook.office365.com (2603:10b6:300:117::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.239.5 via Frontend Transport; Fri, 17 Nov 2017 08:39:28 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD040.mail.protection.outlook.com (10.58.52.251) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.197.9 via Frontend Transport; Fri, 17 Nov 2017 08:39:28 +0000 Received: from titan.ap.freescale.net ([10.192.208.233]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id vAH8dPRQ006450; Fri, 17 Nov 2017 01:39:26 -0700 From: To: CC: Zhang Ying-22455 Subject: [PATCH 1/2] i2c: imx: add workaround for erratum ERR010027 Date: Fri, 17 Nov 2017 16:21:03 +0800 Message-ID: <20171117082104.18140-1-ying.zhang22455@nxp.com> X-Mailer: git-send-email 2.14.1 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131553815685079171; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(7966004)(346002)(39380400002)(39860400002)(376002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(50466002)(50226002)(16586007)(4326008)(316002)(8936002)(2906002)(36756003)(85426001)(5003940100001)(77096006)(104016004)(53936002)(189998001)(86152003)(50986999)(5660300001)(2876002)(8656006)(305945005)(33646002)(97736004)(356003)(86362001)(8676002)(68736007)(6666003)(47776003)(106466001)(498600001)(48376002)(2351001)(105606002)(81166006)(6916009)(81156014)(1076002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR03MB2362; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD040; 1:4Y6P9XsuYoNgFGMBBZ3t8nY9CXNNfwFZA6larTMnhv5v3iNEBAexqYU9X+qFkIew4A4mv7yCPeqbb8tWlPQXyHVe9Z9SlvAtavjmPD+s2Pr0UFujCp1u6EIwlt71qGv7 MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2efdb613-3f17-4662-a083-08d52d96b738 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4628075)(201703131517081)(2017052603258); SRVR:CY1PR03MB2362; X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 3:goRcG1A16F1+5yasGstYKdZcvAF62BoHd8UKHT3TUFxvEici63MF61ZvKGHnZA/9DWU+vTeA7fRhLIZptui5y47oaPq7A0lRzT1gxGdC0B/CaU7Tz3EUlR8NLLlgdzuhBjcN02FM31pHCBf19VWf2YU0CG2RxZTwrhLXxk1U14oTQ1gnfg95SELcQJsPeGWbqVGE2IAGLpwYgx8iKDVN3AqkIPC9rN45+DRv9KJwAjUNVRniR0fu60zA87ZOyNUiCZ4s7u4i0fm0IkGzg5w6XDIgoqVdz4S/jCFXiP7KItCWYWDdj1DxWnOFizNA7OLi+vY6omhI9S8wF+EzcckGWDYMegCPmuEDM6pUA0ca6m4=; 25:u22GIcRgRR7FUSqiE07noT43DKQmhRj3TkipIZVkKR5K2jwB49WEA78Tz4jw6nWtEtLfacU/ZoXX913f5hsOwQYF/32FQwJbPl3UhxUCvW8iVqZE+3XhZ/bxwQ43MkQfjlFvl8t58qBJkyhmZYOnl8yC+/Ah7uwIjzmFgySs9qB1fybDQlipljhEL9tI1ajmnVvB2vHvF8s6ps8g00KJCGrsFC2LtTZFLOy7FsypHHPOynOhsYJl4N35CWmW0Yl5VCc+tfzYEtcp+SpAE75gQZS6bsIIHaDE0h6yRtBccgPhJJF3/0Jm75KdogRM7ZAIhD7hZk6DmSX8C7Ikmfg2rg== X-MS-TrafficTypeDiagnostic: CY1PR03MB2362: X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 31:Erpw8sGuUEvritMC0/DjMUXroK0uHLBFhxWkkwBYJ6dplTW3VPCR+yOm4t5NFPARXimmkt+8MxwJxivtaxbCpTQUNY9bhF2WW5RPMR+IF/SXuXFCuaSW3SIJFdGZWIFnOo9QUVNA3JKaacdDIjiw89UCyRP3O+70YZIywNranWcnk9oWpd6ZXvCUahAcBTzwIHzRtaQL2aWct21VM99y52pe4DXHLcHIt1vxIaGtQ9Y=; 4:cm8vEQpc7i8M7GjFAR6e2pvFzDF6vpX5TNu5A4eigLof1c/DVmrjpMnKsVKl4+40avB44/XmHxHnTFpIK+yCXpVxoO/oLKJvz+TAIjec9a44NfQp+qJRuRvr9JvCnX9hl031OE2qvg6QB7Ru2jVlr6d3SIk5y7orJK/O9mI5Rs4JMyb6vGYGTuEw2m4cqB8bJfJ/rrepNEftSRefrr+Z87d8A7ZpXHr37jjkN4XT+i73TbessV4mUvImimRNOC2eJghGkmYwBTKp79Z4v67/Y4ZBFQIRb+Q2UOm+lEsS3aX6IlFH1fHIN7x+yBCz5Zl7 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231022)(100000703101)(100105400095)(6055026)(6096035)(20161123559100)(20161123556025)(20161123561025)(20161123563025)(20161123565025)(201703131430075)(201703131441075)(201703131448075)(201703131433075)(201703161259150)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR03MB2362; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR03MB2362; X-Forefront-PRVS: 049486C505 X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 23:zeRBf3CyNFgPLIf4ddtmmC0qL1OAmQIoaXEil9+5g60otWy2QNyvzFTdPz8B8BVlZYmz6yX5Y9n9xOs/vMnk/mqQ6R6x+eiU5LEu2M/mOrf6HCk+585x7JyvUDA4Q0ByuzDWrfYlejQQ+3n4GXuLiSIlLRLxf7HFOLPNxLlOIr5DOY6Q6+WwDkiw0F+s7HJeJy4u073JmyO4wRZgsIboYofFpNpheBnK49WlZL48iXHe1tz3O/FOQC6GRDWBsuiehqgd7q+jEErxlRMRPcBjf7tat+N/J9cB81AfmrGzb54SqlHeB8GlB9lJzNUObbX+XiF7kDccBPJyzZi3VAriP1vAPgBC8kV+2yGkummzzwhmI2oUFZNn9QjaUK1Yr+0wZVgRBhRk/yC08O4BWHdc2uOb13yffWqq0RWbautCenvSd4q0IZu6k4kqprjnAUffYnl4QQlpSwfgH34ESjVpAcTzwu84uwzQkPVX1CNFA6xDh9S2eZ50HZt3xV6GNznPmcupiIrueSYRecsdyHrh0rhxhi2jB2jZw/AzKOGnAGQV1FIrrBLorEhzBBXisa6gHajgu3Ohc1JsDHs43X56NNZw8Wh+m/nDF6tP9smCouST7TGO8c1Hx0fVhiNlnmfgg2kjyXpzAVENEo29V8L0kOlZ4E67KeKMq7R3IpXPdS3qhSUu05mDMxprZpit7CI8KxVUlIPQGJd5iZSZIpFQp2bDSImRgYAoUrY45zBQp1iroyVSkD7vmgpcLKVqnXCcUBUEszxvXHvpf+u/eEAPZ+1Io2fl6OmZqP0klHlxNTsyfwsaqrMu3Be7I8WOkQdg5COkdMnFbAdN1uUDLy4Dnrx1SB5sC2n8hdT4QvQkJ1VQDxFpwRd0VaaIqrAZkzFQYuV7kfaFe0jjD7ImG3KD5ov64XM8Wm6/CGNEM3u9pKYa49QTfuUVS2rXOwfv3rht5ZgIrpOXa1hl2tydHtmXEv6XvVHdcGnBAC5hohiS77+bCAh7rzrBRKf9P2A90Ff/pDbVih6c3B921WRsZua/2ShY79nBVzJAyFN+PHUK11Xe7qQRQa/lvo+MrT0JTCQOIGR4azH6gmXk/Fq5OjU4JScb/GMmBgBy/ORDkx12CJeDcwU96BOQ9QjA67QMLMKMLVRS1hxwANd+K9bqx10Ngw== X-Microsoft-Exchange-Diagnostics: 1; CY1PR03MB2362; 6:6lStSHFNLZ9vKheAsraBz6kvdRAnQRWBtYvUuMiPldDtTv+iyPQeISdDu/kEXZaywZcTWzZxszdqh1nzNUc+W/dLn06N1pNRBMfR/8A+53m1PakVVM0EifeRzNkYZH3LzQT1kgLcUCKkgqXFN0tAQzKu7MLiZS3i91/+X2HYEi0OEdPk7c+N4C/riXRGg7Yxj0R0jQRz8Gd6iZXDHWXMr9ieeHBeva10uhwTLH6UZ8AJl+WDkAnuuHTOsK5mUKe2WbLkQfIJF+ZMUW7V2XCl4DEu7hv56AxruPriAvEOSRuIsToPFc2bDRHDRLZ7yXGBPyeiYcrx7JoakNo+fYmqiKe4fG2YCJk5OsaRdWidtLg=; 5:qFpvIYD7fGch+m9xssXupYiU6J/m7D+e7kFbGW14JE0qu0DJZcpMpUpf0oHJE47cGQRww7oNOzfVNXt+MJk3UAMPFGXggJ6WxDzaHZcquHBwQCw89jZJY9w5gurhJLXWLE06CclnKcDFjH1Mgr5nBfcS+Azp2ZEwniX7abSxuEc=; 24:rDguSMnoA/rAhpIJ6tUUfSwQJI/knfjpvLjuKy5ggOVRffhxIUlhya7u+uDLhtOl56PLSjT3wxRYRli8Sw9mNatgl4KMJ4jZ8v/ux1AwuBc=; 7:Pdkro7ASYWBIC8v5sarq+VXY9xM5bPu3avg8jxICJIG+Mw6tQe8XWw9QdEXZMMYvTj0v+mZcT0rg1nIPeimJMG8zLoP+T8VJ9gWWhm9C4zQ9xdSxylTVoGtCfjPH6wfC4T9tSAJQfIm++vVUZCoqq4g/mcZsetbv5cfloRJ5CrCA/tK9fxdmT2lJVsS7wSDCOC4tn5J4KRH1KDmQYmlhsyAcKT7q3osA9sGok6b4Av980mewJQyPJCWGg3ytSvT3 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2017 08:39:28.3363 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2efdb613-3f17-4662-a083-08d52d96b738 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2362 Sender: linux-i2c-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-i2c@vger.kernel.org From: Zhang Ying-22455 ERR010027: Attempting a start cycle while the bus is busy may generate a short clock pulse. Software must ensure that the I2C BUS is idle by checking the bus busy before switching to master mode and attempting a Start cycle. Signed-off-by: Zhang Ying-22455 --- drivers/i2c/busses/i2c-imx.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c index f96830ffd9f1..5df381c5f70d 100644 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c @@ -889,6 +889,14 @@ static int i2c_imx_xfer(struct i2c_adapter *adapter, dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); + /* + * workround for ERR010027: ensure that the I2C BUS is idle + * before switching to master mode and attempting a Start cycle + */ + result = i2c_imx_bus_busy(i2c_imx, 0); + if (result) + goto out; + result = pm_runtime_get_sync(i2c_imx->adapter.dev.parent); if (result < 0) goto out;