From patchwork Thu Mar 22 08:00:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rajat Srivastava X-Patchwork-Id: 889242 X-Patchwork-Delegate: yorksun@freescale.com 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="xZfF++CO"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 406JdM6VLYz9s1P for ; Thu, 22 Mar 2018 18:46:14 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id BF225C21DCA; Thu, 22 Mar 2018 07:46:07 +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_MSPIKE_H2, 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 A6DC7C21C8B; Thu, 22 Mar 2018 07:46:04 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id ED7FEC21C8B; Thu, 22 Mar 2018 07:46:02 +0000 (UTC) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00077.outbound.protection.outlook.com [40.107.0.77]) by lists.denx.de (Postfix) with ESMTPS id 8B9CCC21C29 for ; Thu, 22 Mar 2018 07:46:02 +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; bh=xVWf4bkOv4uokUGt2hUzVH1Zj6Rf9/qf+uKzJrwhP10=; b=xZfF++COTxEXWLXVn6WbFx4xFhmkhY005UqbL21txTQnP3fUSW3/3bHbeNQuOTAPh8nUmuYq6NJmhI0M/lcSjHtx8yw/Bww659Bw6K7SeI2C3fcMzS3m+Uytu22Qm+zjm68F8BpFVhFf7zjHXWVjMl0sxh7hxs30IkFoNA3vZ4w= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=rajat.srivastava@nxp.com; Received: from SIGTERM.ap.freescale.net (14.142.187.166) by VI1PR0401MB2591.eurprd04.prod.outlook.com (2603:10a6:800:57::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.588.14; Thu, 22 Mar 2018 07:46:00 +0000 From: Rajat Srivastava To: u-boot@lists.denx.de Date: Thu, 22 Mar 2018 13:30:55 +0530 Message-Id: <20180322080055.31267-1-rajat.srivastava@nxp.com> X-Mailer: git-send-email 2.14.1 MIME-Version: 1.0 X-Originating-IP: [14.142.187.166] X-ClientProxiedBy: MA1PR01CA0100.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:1::16) To VI1PR0401MB2591.eurprd04.prod.outlook.com (2603:10a6:800:57::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 360a3d7a-8ee7-4c36-dfe6-08d58fc8f52e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:VI1PR0401MB2591; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0401MB2591; 3:nfdGIrTA0950jxMQUUlIaNoj1MH1rhVMvOap8fB+MbhHL0djAswf3jLewIHrynYZwDbWIQZpmFbfjOnT5aTKk0U8pOendMZ/hZVWEH2tO9tLuJ4Hj8f7a5oUFzM761o+jXGFAoLK8LKcZqjv76T/iED0xlKIGFUfZP1oZLyVKrdfhW0w6yKKDxF5yNfOqjPT+sMOxBHHzGfLse2yJoIIvb4H/9TJLlwThY2JnAKLJsVTg1hPRtR8lIyfjZWk6WE/; 25:C/mEaTTiIsNryw770HNjHQDAuqHGHBLjZrI7MC8Upd1mWWmXv6iZWcoSp0/nzp2dX07EE63kNs2xyd7xG2PDUaJJfoDlcTwbQmrbo6/gev+Z3LlBJHbisc25QYCx+kOY/H/2oJPccLBgn52Uil9qsEj5H/wxD6t51N6NdGsjenVgJ6Il8dgRD4RxXXqclg2SRuGjxej0un0HDU6sPJYcP+l3BzlCuatGrUxGW5Z5WyI60QXMImxUdAYQXmDnQz+FbCZgdHqW8mYKHaHtKQnkHOhrGs4cLXfOajDbS9ODpXl4Aej0dc9PwsbktDAhsu3NNb/ecEefeMdVZZbg4NwdLQ==; 31:rJO03bQqjD3yKcToRcx/MI2s1XxrjSqk3tpCT4glIUxpcnBzsnKh1e6lMAND4UnagezySvrKSEcNHciAsYJ3jXqu5WhVUo+RBuC0MCu2OXGaeYBNtfru0IZWOqIK/+F9MfzViztkWBJl3OS0aF89/57RcemRQ+Np2isA03ppAsONSTUUoHaXrcnpTBIrOnfJXYbGmV2XHYssZcg9iW9hHQQ1UEjH46MlBzcXYF3u68w= X-MS-TrafficTypeDiagnostic: VI1PR0401MB2591: X-Microsoft-Exchange-Diagnostics: 1; VI1PR0401MB2591; 20:dB/5SDKC0461GR+t6ec275TrfeYYCaLPFWoltyaKvCE4d4/ZtBzZEJNVRPamsBbBOj5vwJb7LZwXd697xQDP6Pr+susRCj5R8A+NOdOHwRVuKEYiFnb05Sap0b9hDlqGSHBh9EQUUNwKVd0dm+BTO1ScKsgHu1SyKwujLH48u+tcN98w4UPJ3vdTmijWcp7DsR2ormOsfwWJRaQzCtKirtnLnXVuvU3D8rYRlSOTqpuw7fO93XAFd/3hzXOW5O6cfRKuPb042XM7Hy4wYqOV0MVB8sCIisdu996jMwSIvecgmPIYmc+7apOmtNSJaY0y8QXaUWUl83aRCEFjdUuXAy68yE/dQMbYZC42Ru8wzzfDIZJZQQRIq064so/gxT3bwFE/REjIk8fn4Wo79yEpP32Q+YYFZhLXIwzNkFiLRiXiP7XFE0gzfzgTwVdDa667mrMwfz6FLuxZqRsiJ4zzZggDvROYQWyEBIOzetawfF8l/1Are/yb6tTc1KtdxE3V; 4:+ywiqOevQpwr+zp/bryywPK2zl9c4Yl7qGSSYQDhB4rZZ+lIjpiTBVlJJBy7Tt08rU19IcAMay9+2c/4qlOA2Y1Jk5DyLafozLOPthobw05iOM1zZVJ4LG9wciMjIK2CjGgJE6zdM85ST1W1AyNpZ08dlzxvxg1Fb3+itcQu8iPyVmcur5pjwoLG5VT1FCJtrvfw+UQAYJrkzUtCObFtBLdzb904lVCXDJzkPLBNZJEyBYVWZAoCoj6cHHxRGxjIIzRylttQmGN8L9C7ruZxm4+I0vYwDWUjmKxucKfT1XjwsCRUDLd4Hh7RH1vvx6a2 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231221)(944501327)(52105095)(6055026)(6041310)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:VI1PR0401MB2591; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0401MB2591; X-Forefront-PRVS: 0619D53754 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(346002)(376002)(366004)(39860400002)(396003)(199004)(189003)(50226002)(186003)(16526019)(6116002)(1076002)(3846002)(1857600001)(478600001)(6666003)(386003)(2906002)(6506007)(305945005)(68736007)(7736002)(66066001)(50466002)(48376002)(5660300001)(26005)(106356001)(6486002)(55236004)(36756003)(53936002)(6512007)(8936002)(47776003)(2361001)(25786009)(6916009)(8676002)(39060400002)(2351001)(105586002)(4326008)(86362001)(81156014)(5009440100003)(81166006)(51416003)(16586007)(316002)(97736004)(52116002)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0401MB2591; H:SIGTERM.ap.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0401MB2591; 23:IeYS/XeYh1tonXfKpSvtw0nWGZ/6tZPI7dLsbER?= FZbPHNdOcESa1mN+Hma6ZGw4PKNYlotsNbkPz1jNVvg9dDEiqtCfEITDo2mQBJh8vSqb9Z0u4GW31wPtnUsTeTbHdntfC3RTN8oE5xFSErziU6gQAOC3GGahvPHcjFQ8avolG76OEN0DpabFHi46RIrRjMSzS7ZIDnWqCbnTlF12SYY3zw6xo2xBEjU2yL+Nbix6TxNZGI5hZ3BsCUmD2rqIdnxHL4BE0neXe7tb0jEofdjdY/sWXdHGCaveMuPSlDZ4Qj4/2YrhVLNtqNldjV2xEXrFIcsblGe0xqxmnqXilwwyr3uzRgQL7/cmErb1YTzUqDmtVV8582+Fpa9sM9Z/0bka3b+/4+6FUe2BfkKgBBZ8qMcXi/SdoqRlI9LD0HJ7D9Tc75LnjX52mgstaRCQGUvy/+x93V1JJi4/2D9gaATUDaAKpqYRl65x5NzP/MYlYKgsQg2jFQSIgiSfBdtdlJ4TmL8dJJH54uLYXYWN5XThvHZ29qwdgjLU1veyLCYEeuuFlDyHiJIeTra4kHLKLkH5A4TbsAYRC2R0sBAquwkOF4bWZ4RkcZfoQJGo0olIGPzQjhhpvYLrL7pBO6o520rueY2SHh/cJctlx0PruppdqhdTFYAwmLQyAVd2Ukyv+WgZTAFB8ojJnxMZ4L+V6218jLSWUIJN2mKWoCQJaoyTMyRdRYMuXXQvsKAuoQSZ7g2TWIiGQ1Ii5yfxAVJ0c8jcv3NXuGeSOVYpAwBvTgDNgGlt3FrZNh4B/4MZRJN6qt60wuSmI0gblk8iHrWoN7oNEw0fltjoo4mKTN0BFCmyN4pThOqVfXpdwkgam89YXDYONVFRHm2wEgdsMbtgD3wj2HbR0Xy/zFd1KcvDdzU0USX7zjSy4XxNi+xxHHp0OUG3/Y13/CuYq8JQcGd26Lb0+lzDVUbviHFf3Kzby+2NQmurNetZZ3l/Z5A2QIoqO1wrJv+BQw1D4cBRsRkUCYKETXUoWmZLKWU5ubj7BjIBqKjp0yULc4l3F1El5sTsuGN5nMkKpZ+6iL8NPGae1qbpSizSwgbgvVZ2grOYsLw5PpI1ZzD6ZpUdQj6vP8V0P5OGZ80c0UPzpSTm+wNO/tIwhMOzea5h1Ar/LBy++V/cKm5yIQSZUHZeGjyaLXHrKq4gt9BifLU8Z63HXId8j919QnWJEKclwbS7X+DrHkydoG9ohtv2MAc1BIB/Ihz4= X-Microsoft-Antispam-Message-Info: HMMKiVg/EwydDp59Mkdb5aBstJahlV2jNoe/pwC61jWLHs9lgjnF5FBTT2zGHqimzs37sG6G0ufBSRXLPuVe+CrrLE9Plg1GNLDFaNFzu1vPHhgWqaV3mDjTvrYvCGu8N9zhEnzN1BynOU8tGOi5fyMjetm+gE2k6I6H1mgVMEOU6oeMRqwnyxmMlxj8jvfV X-Microsoft-Exchange-Diagnostics: 1; VI1PR0401MB2591; 6:XqRpwSTmzggiQW2ZpOkiMVQp0a261EloJRyEYqfhjXj/OihLwIOanizbKo3DfEFXi9E+ce2oO0IhwmQgR3HQddIGO3dLmI+YvCe+nyUcl4xpQTFXKFp2Ne75rcTlBezHqnZd1lGqunYa1dDIzbFva0fRRRVjTOQ+MMvY7DrsvNfgRzUFwaGcdY5jHOT2gOvJ83B7A3BXYd0ojiY9mGw5mVWCSVoqPcfauqisKqiG2FW6GvGZt++F2wph4atM+lGhvkkCCnkldRcB7Yg3Z3N174aM6lMAKbos+EMGXpGBcZSHVPKO2xZq1xWULZ7UQOT1gIXlzjRv2eWQneUcGFqzOwUJKFoa5bW2KWpkT9HZ1G4=; 5:Ymf95FRjX5D+ai2Se9WHb0zPNVPO2nlCD+qFzSOO0OOcfqEFBISjT1f+YbZ+AWsGZYks9g+fOTG6dnpn5WZhi4uYUt0d2bRsjFL5uDpskzW2KDACg4nWx6AGCeNipfa47Zq6mzlYSknu5F0xC0/6vjrFvOqHOorQRQ9jmsPPyhM=; 24:lbGsDpFX+oYsQbE0XVx+C3d6bfPpT9pxXh3tVnoHYvrXXkkkqu5hEj8D3ZcLNkkk+vIj3qflbC58oW1/9DCUIVMr6fucDqzTpYXNEQG3rfg=; 7:bmvo6Cr/t4pTmEmK74+XLOhoWD9u138w+5NsO5fKLdBp3DJq430PzmzVdj7LZlru7FaDRUK8upF+H+EJYB/++WgMUKcJT/ijQAwaCro6aWvAWn0XbOp33Ice4NNxfG57GSYsVGYapfJXLpU+dNkDLOPN7i30xYeEmdNfRi/tTYc62odc0AbRR+tGPGQqTdxAIGad0fZUP34uhvNwvWHg/qke4f0Gt+9bPRquqxpce0iyFCKY9dYhrlFKPMmXRGeQ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2018 07:46:00.1264 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 360a3d7a-8ee7-4c36-dfe6-08d58fc8f52e X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB2591 Cc: Rajat Srivastava Subject: [U-Boot] [PATCH] spi: fsl_qspi: Introduce is_controller_busy function 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" Some SoCs have different endianness of QSPI IP if compared to endianness of core. The function is_controller_busy() checks if the QSPI controller is busy or not, considering the endianness of the QSPI IP. Signed-off-by: Rajat Srivastava Reviewed-by: York Sun --- drivers/spi/fsl_qspi.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c index c201c7f823..e264709a3f 100644 --- a/drivers/spi/fsl_qspi.c +++ b/drivers/spi/fsl_qspi.c @@ -156,6 +156,25 @@ static void qspi_write32(u32 flags, u32 *addr, u32 val) out_be32(addr, val) : out_le32(addr, val); } +static inline int is_controller_busy(const struct fsl_qspi_priv *priv) +{ + u32 val; + const u32 mask = QSPI_SR_BUSY_MASK | QSPI_SR_AHB_ACC_MASK | + QSPI_SR_IP_ACC_MASK; + unsigned int retry = 5; + + do { + val = qspi_read32(priv->flags, &priv->regs->sr); + + if ((~val & mask) == mask) + return 0; + + udelay(1); + } while (--retry); + + return -ETIMEDOUT; +} + /* QSPI support swapping the flash read/write data * in hardware for LS102xA, but not for VF610 */ static inline u32 qspi_endian_xchg(u32 data) @@ -1020,11 +1039,7 @@ static int fsl_qspi_probe(struct udevice *bus) priv->num_chipselect = plat->num_chipselect; /* make sure controller is not busy anywhere */ - ret = wait_for_bit_le32(&priv->regs->sr, - QSPI_SR_BUSY_MASK | - QSPI_SR_AHB_ACC_MASK | - QSPI_SR_IP_ACC_MASK, - false, 100, false); + ret = is_controller_busy(priv); if (ret) { debug("ERROR : The controller is busy\n"); @@ -1187,11 +1202,7 @@ static int fsl_qspi_claim_bus(struct udevice *dev) priv = dev_get_priv(bus); /* make sure controller is not busy anywhere */ - ret = wait_for_bit_le32(&priv->regs->sr, - QSPI_SR_BUSY_MASK | - QSPI_SR_AHB_ACC_MASK | - QSPI_SR_IP_ACC_MASK, - false, 100, false); + ret = is_controller_busy(priv); if (ret) { debug("ERROR : The controller is busy\n");