From patchwork Wed Dec 6 08:15:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar Kushwaha X-Patchwork-Id: 845058 X-Patchwork-Delegate: cyrille.pitchen@atmel.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.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="VWMfwoFE"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3ysBNZ1lfBz9s82 for ; Wed, 6 Dec 2017 19:19:26 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QX1MS9cG2tCa+rjIN7MyldolWYUzad+cW/Di4fhCvII=; b=VWMfwoFE0dNJnf rfRUfGfdMOMhxo1t08d+Q6NBlUuXRQ1FFzuoCEe16OsAHxx/ZuEBZxTbKS29QiXOKGE+cgMuJF0Xe bb4XLJ+bQzn4PucPt7cvGoOTzlON1iyHIRLh4iBjH3ZV8bDsTxuIiWpf9CMtU4p+B2w1WDsFpitN8 +e6Bz1LFkstmmpQITwfhQUEQYo9iPCwXV9LLDubcedptogUMn7soj5l7cbBmoev+3x4Z0LFLw+78W crcd6CEuJFzYxjPqY1eTYPy0j19nw7pvskg9fvZv0wplvcihRwNySL4LHE7bVspxjbzPXxSCaFQlv 6rnyi8ktpPKdhTNIxLmQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1eMUvF-0003Lu-NG; Wed, 06 Dec 2017 08:19:17 +0000 Received: from mail-bl2nam02on0066.outbound.protection.outlook.com ([104.47.38.66] helo=NAM02-BL2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1eMUsz-0001Km-R2 for linux-mtd@lists.infradead.org; Wed, 06 Dec 2017 08:16:59 +0000 Received: from BN6PR03CA0021.namprd03.prod.outlook.com (10.168.230.159) by DM5PR03MB2700.namprd03.prod.outlook.com (10.168.197.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.282.5; Wed, 6 Dec 2017 08:16:35 +0000 Received: from BN1AFFO11FD046.protection.gbl (2a01:111:f400:7c10::132) by BN6PR03CA0021.outlook.office365.com (2603:10b6:404:23::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.302.9 via Frontend Transport; Wed, 6 Dec 2017 08:16:34 +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 BN1AFFO11FD046.mail.protection.outlook.com (10.58.53.61) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.239.4 via Frontend Transport; Wed, 6 Dec 2017 08:16:36 +0000 Received: from VirtualBox.ap.freescale.net ([10.232.132.175]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id vB68GBbj009213; Wed, 6 Dec 2017 01:16:31 -0700 From: Prabhakar Kushwaha To: Subject: [RFC 06/10] mtd: spi-nor: Update hwcap based on mode of fsl-quadspi Date: Wed, 6 Dec 2017 13:45:37 +0530 Message-ID: <1512548141-3319-7-git-send-email-prabhakar.kushwaha@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1512548141-3319-1-git-send-email-prabhakar.kushwaha@nxp.com> References: <1512548141-3319-1-git-send-email-prabhakar.kushwaha@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131570217965722367; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(336005)(39860400002)(346002)(376002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(199004)(189003)(76176011)(85426001)(498600001)(6916009)(305945005)(356003)(5660300001)(2950100002)(104016004)(2906002)(33646002)(2351001)(105606002)(106466001)(316002)(16586007)(50226002)(68736007)(81166006)(81156014)(4326008)(8676002)(8936002)(97736004)(15650500001)(50466002)(86362001)(8656006)(47776003)(48376002)(51416003)(77096006)(53936002)(39060400002)(54906003)(36756003); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2700; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD046; 1:KNLK3pN1LjW3IBikdIiU7aYuVIEBuz0x28550FLdsUjA9G8+tHw6zVrR/+hRIzzshGRw+wgNq8QTJ8bJPK53h2vr/CnuuRWUcC+qBMroAyTjjAWx3e0Wi3gUyunWsozW MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1e86f8f0-8f41-4328-b99f-08d53c81ab52 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4628075)(201703131517081)(2017052603286); SRVR:DM5PR03MB2700; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2700; 3:Pq1ASIByWMrtLRHraudOr3S2TVYvT/KhDZEzGoyM6wXAGZsjpCPbQuwa1zoMDUXJGlm8KuPfBiPW3n1GawirfTvCM5OJ5ijpmzHpM3xw/jLELB/sf+5dc6lBV0SOREj0aThvh8lXaZM1JIAntmQWVe3vvBEosRN0x25MrAuPNIYjtQHyA4Oc3p4o60Uc8y47vfsWA2yDtTv2VZh6dvQ0vRc3gle8kAIPhes1V1VzNiPWt2ehxFMsgNipaSNgsD8gtPoKT/RVO7sHi+9FcBtUcs8PIjXb6dxBws1ege/ihyV/6h3+T9OQuYiUmdM3vq0CICyWRduOip4cgF4D7O0wV3TfxTdnhkA9k7MWERZgFD4=; 25:ncR5AeN+L4ksVznm70xs/t2P1AUY6n2ODNLTxApmKlRUgqtr3HU+It4TGRMMbXrUIAIlU59x2qcqYNlS6cqZ7nEhOAZnM+BcF6jcSRvsFeQ1s/GAc4mAHABejzDGM4CbzDaLrToUlVm/qHTNuicCTHoLDSrV+46Jm5Hrmxq8CyFL/mE2JPuI0EDGSYgQUeg5BnrKe+MRXyr2UUNp1jtVV2SQXBYqmUqFkW+R6xsemLUGca8XB+54b7dNOpN+m179hqfW36wnDWWfpFsjAevUpmcBPcxRS8VpmjCTSRAUfCON80i12HG+9Dai9fvXAfOFKVhoXcONMARiV2rY7znICw== X-MS-TrafficTypeDiagnostic: DM5PR03MB2700: X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2700; 31:vlWSD5ybVAx60KtXlbjOASOyDQWG6micGaa3aC5aSxAFU/Qw++RPgJvfdkdjHJpORJpWqLkVfJRjfYN4tU657NxUb/HOKW+I4gkQ1ixphNqJuLHyLrb6YtKYI2V1i9R5eOFTRoDPa1gw8wj/wG/mWxzeAlh3QIkR7D80tp7mtpXozFC1+rvzg3oaO4J3VMaEuuccT8Dg2ORGxgtVpnOjNa/OiygkQbpCd9Ktd/N3KdA=; 4:5IMKyWgI+MCkLe3IUFJcD5UvCQjhIH6A9b0IY+s1qknmL1DgWe1YW76BFDAqeNRPM9ePfC5JbRLEu4Jza3M5lKnbCC1fYDkxPdB/Mb423vP4Aq3n1kXaDv9IgbYGnjWBMN92u9ZI0ixaZxorqRiqv0uRikQKTCvSudNNa5J5fPGwhNcj3ZTacwUyljgohEkrTfm/HJPgQfcYwuiDZZb4zrTLwEMs5wdRuuGe2B5XIA3T0byJ/jS5oDBr8py7SLBNwFOhmywKdel9rGs+HvmlNyFEeCagG1Fhx81dF18SEiLNUgPY0aKINFRhGhwhhfEe X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231022)(10201501046)(3002001)(6055026)(6096035)(20161123565025)(20161123556025)(20161123563025)(201703131430075)(201703131448075)(201703131433075)(201703161259150)(201703151042153)(20161123561025)(20161123559100)(201708071742011); SRVR:DM5PR03MB2700; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:DM5PR03MB2700; X-Forefront-PRVS: 05134F8B4F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB2700; 23:YxvTPIMY9J/hZTCTF2bORhQrv1xNNdi0r+2M3twh0?= CNFExQcmTTzg3Ij2bnRbK+F7cwGqvebPtETFyeQ3ZjJu/WR8j3SKzaZs52ebEVCJ17Ys1rAhxbkNTzF1V9ugxqNZfoh5ib4Enu+quhzNcO61eR1JBsASLgH/f6vRruhC2o8WJ57L9PkGDW4A134k5qpBjyWc51+EW7ZcG0fTb9MetymCeo/EgKhScaZv/Y0kJwomGPnrtNzAJKyl1RyU5K6V2jwwD0I2DlED6bS4jxMIaByfCtCpiBbAifxgjWKeGkJYdTsdoOYeh+mMdqB/KJGO2Y4dKSW7tgkhrjxtsT3DwNDa329aTxhCW20YeuNml1w7uYRr4U9YcIz54GzBy8ub8PoD5royVViImXtSKaUASV5SG8Mz8BSHG7KkNe6mKYwhNusCwChAftNLbYPUnrn2g2pk8pSlw5BGCmR2Ex3uhf6UqhNAdJ/weI2TfuH/AEJVRWNzM3JNlHI6Hl9uGeEoVsmdGYB/z/jt0VcfPgZjNICZSdDOeCPY7YCRAnwWmoNwvHHxIYykGskPKeUbcu3VRc5nqjvUCBw4g+CPy8PB/clD6Cz7TDNLNKv+bDxDqppo5fVsm0W8smU1mXQ2c4VvxdtwvCrQ5QWmZUmYs9CNWFl8KyfGavc6iAGMOQ6sfzXvUgvoMNR1Ga1SgOCPqyo+7A51tO5Vw1pSn6vq/2SDc3UkdSXJWvA7W02Z60ejHaJtv4ZHG06iOqqk3AHFEHVNa2HEVI2ZoKvBiT/s1N4OGDNvuXHenMbSl1vP0kHUyeFqBPFKBaDpRd+iNSV+TQvZmmnqgG9VYXIHkLAM3LcCKFl+dpPxW7d0V40uoPtRhyk7FEomvfCLFC17duiyXbJAbGGa52SSIZlGEIAHhtkYuMQxpkp+W5xDfQWHJpw6zASYgJX9uv0Z/FzCCA2Uey08o1a7vZHi02k2hgFeMxkKpJoJJR6Qa0MMOP/A/+wWiWNBsb21raCyJBONDJasRcSxiNjRRZPFbguXja3TNTNWoTobR446n8OWQJGuVD0bdrEhsshuOYYC7cQEBmjXJAHsVL8meBlF3LBVXWQxMLliQxQ4BMoWJ9naSPrCigEqfM= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2700; 6:w9HCCpcBuEc2OlojR0AJ/nmh5K2BGjauynurWsAFaGMYKBKI+SR+2EXIc8RnRrZ5JtGeD6/XUAiOf2fvwOnVTQtoM8aFLvpQ2PlxNzDV8BpNpYzcWDfFDYZEXlypRl+CNbjrC9L9X5ZiD4CroHDj0LQeodPZWWoB/0aAZaVplXbrQ2qiUzq7nd4Fhd2p1UNFEbww45TZbKMQYk8YVY2BrPHHzAUihqFToWKhIcjXshei7dCUiOB6IfEyEjM9/F/HhF+fmn8CmPCxhLv18vxAvooH8nhMKC2g2+TXNDFZNCumJUDQH1JZd5vg5V3GUNOFeNNe0Ah879ZOfpn4C4AxPgNIOsjt06eXOEkX1yccrMo=; 5:BSbdayVfGR8JHdvaIE/Pu8PpxKQXkGuxM2zJIwXer7mOMBPPRXJ5muz5qX3ylhArJg28pxQStij87KxVIxfHJBwOiGEAvQ6CpDDU5G9bDKEfXVR2mDnFuvoPMi7GPXApa06lVZCratHasjStdiN2sjKszEFux5QiENMPk+JaBYo=; 24:23COI+JRSgAqebHR64dYAVXV1puP4TgC/jXZa8FuRDb05i5sNNko/ZiN62JOekvFVyF3AQfYaZYv50J+hJZyKeNsIbLmqwEtLcHqY5P5NW0=; 7:uFTfuZDhSX+yeUmNG7o8EqYLU/E4aMU5BKVuv+MkpTgLV6NCqxuhRP4sl96LcwvTGDckvyLvv/eL8IK9XzY+9s4hFH4KbQPKh4qE0dRI/ZimXSmBFkAKfGX7Bz36DTQjqhgFXEV/FRfqUCJFhaazFO69kvcmfsijPBFlKCIS8nydE0pyDyYfDmU+m3dNTGAiTiqieNve9erbHEPqMlKuqid16dR+2dOJB8R42sfmA/jDSnerB0eV4AQ2FvYx+zni SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2017 08:16:36.3850 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1e86f8f0-8f41-4328-b99f-08d53c81ab52 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: DM5PR03MB2700 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20171206_001658_060880_48658B4C X-CRM114-Status: GOOD ( 13.31 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [104.47.38.66 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [104.47.38.66 listed in wl.mailspike.net] X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: boris.brezillon@free-electrons.com, computersforpeace@gmail.com, Prabhakar Kushwaha , dedekind1@gmail.com Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org FSL QuadSPI controller supports Single, dual, quad modes of operation. Mode information is available via "spi-tx-bus-width" and "spi-rx-bus-width" nodes of device tree. Update read hwcap capability by reading "spi-rx-bus-width". 1_1_1 (SNOR_HWCAPS_PP) is selected as default write hwcap capability (PP). Signed-off-by: Prabhakar Kushwaha --- drivers/mtd/spi-nor/fsl-quadspi.c | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c index f17d224..5477d78 100644 --- a/drivers/mtd/spi-nor/fsl-quadspi.c +++ b/drivers/mtd/spi-nor/fsl-quadspi.c @@ -957,9 +957,8 @@ static void fsl_qspi_unprep(struct spi_nor *nor, enum spi_nor_ops ops) static int fsl_qspi_probe(struct platform_device *pdev) { - const struct spi_nor_hwcaps hwcaps = { - .mask = SNOR_HWCAPS_READ_1_1_4 | - SNOR_HWCAPS_PP, + struct spi_nor_hwcaps hwcaps = { + .mask = SNOR_HWCAPS_PP, }; struct device_node *np = pdev->dev.of_node; struct device *dev = &pdev->dev; @@ -967,7 +966,7 @@ static int fsl_qspi_probe(struct platform_device *pdev) struct resource *res; struct spi_nor *nor; struct mtd_info *mtd; - int ret, i = 0; + int ret, i = 0, value; q = devm_kzalloc(dev, sizeof(*q), GFP_KERNEL); if (!q) @@ -1015,6 +1014,28 @@ static int fsl_qspi_probe(struct platform_device *pdev) goto clk_failed; } + if (!of_property_read_u32(np, "spi-rx-bus-width", &value)) { + switch (value) { + case 1: + hwcaps.mask |= SNOR_HWCAPS_READ | SNOR_HWCAPS_READ_FAST; + break; + case 2: + hwcaps.mask |= SNOR_HWCAPS_READ_1_1_2 | + SNOR_HWCAPS_READ_1_2_2 | SNOR_HWCAPS_READ_2_2_2; + break; + case 4: + hwcaps.mask |= SNOR_HWCAPS_READ_1_1_4 | + SNOR_HWCAPS_READ_1_4_4 | SNOR_HWCAPS_READ_4_4_4; + break; + default: + dev_err(dev, + "spi-rx-bus-width %d not supported\n", + value); + break; + } + } else + hwcaps.mask |= SNOR_HWCAPS_READ_1_1_4; + /* find the irq */ ret = platform_get_irq(pdev, 0); if (ret < 0) {