From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754961AbbJ0WRA (ORCPT ); Tue, 27 Oct 2015 18:17:00 -0400 Received: from mail-bl2on0127.outbound.protection.outlook.com ([65.55.169.127]:61152 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751684AbbJ0WQw (ORCPT ); Tue, 27 Oct 2015 18:16:52 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=freescale.com; From: Han Xu To: CC: , , , , , , , , , , Subject: [PATCH v7 7/7] mtd: nand: gpmi: support NAND on i.MX6UL Date: Tue, 27 Oct 2015 17:05:40 -0500 Message-ID: <1445983540-27155-8-git-send-email-b45815@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1445983540-27155-1-git-send-email-b45815@freescale.com> References: <1445983540-27155-1-git-send-email-b45815@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD048;1:l/7IlsVF06uZeJX4w7t4DOZizrdtEqH3KGxgUyOiRMoyouTPF7ulUIgNUJ9w3yDTjlKTBOUcSiKrAih6JIljFvORU75tLxUxO9etvy3gMnqZcevJt/vkgyCEwJCsh+tu6yyfDQ9hzcJDgnZTlEUFKdmjip0CUhQ0R0/mGKHTglSRkyyMImExCdwUEcq4jw60AI6bGBXXkS6cDYBe5AxgP3s4+G0f14DYVCY6y7+0WC6/kHcy17HwjbGBK6t0vnHxQhuQs2Z4HgqxoP3jdKaGUuPk82CB2X1aaCp8V4Q9ysDGT1QrGN4H23rA5ST8ZX6Fr2Q+HLEfC134vT99QeCiMYaHX1CTlTFrOC4TBiWV7Ucn+eDnti6QHDI5GXLIDpvo9aGHTY8LXrAlnHLrPLeRpA== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(105606002)(50466002)(5001960100002)(48376002)(76176999)(19580395003)(110136002)(33646002)(19580405001)(50986999)(92566002)(2950100001)(106466001)(47776003)(77096005)(87936001)(36756003)(5007970100001)(11100500001)(6806005)(50226001)(5001920100001)(189998001)(97736004)(81156007)(5008740100001)(229853001)(85426001)(2351001)(104016004)(5003940100001);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR0301MB1297;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1297;2:wYA7TNCrNuN8Nt3AP4rsTBeLox5LC0t6YEo6Do7BvdGe7fthj4jTToT9JZwJMFGT2K76UdPtuu8ZOM6ii2a5M1HGMuHB4WzH92J3MpFeZVXpBzcJmAFq2hUxFbcnRg+fgNrDc95fMuplLmP1kk/DGdl4WrQ957fl26CozKOmDzw=;3:GjsdACNObFjHBZVXSy8MRvRzwnKDabsobLk+XA4Jw1eeDScYBBbtbUk6weCOm0RaDxMcfhbusKKeWYVfqfpz7C440QDNKio/1qrznBWZS8NqU4IC3CbX9J05NPrQCmUZ8EzUpM1XQmaQ5r2yOwTiuUmLos/NLtdeFPxFExjp3kWbqoYGnDO5YdIJnN7Ej189X/w0qiRbe+9WYr1p8vyE8G3P+hC4OZdv3gKyZBHILE0=;25:zKoBxAamfzo/e2k4efzEMSl1oGx9Nr6VFoA4pdlIcC4N6XknwCsOcIkiVYja4VG33OqtiQBbLthDa74wdaz7YyzUJy2tHw+P9GxoP5YwTx7EC1MaUXKGTRcQ1V76TE3FnJALAvOJh2qEVaVZzstCZCC2GAPrWTb8dB07iAM94Xks/sz5nbA2hjfzOV2jJBwNHnG+uSDkazTTtaMA2ECb8krIRmUso0veaaThe2H22+U/QeAp1YKOmuvML1aOSVROPDs8VmxTKHFvH6InSaVN3g== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1297; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1297;20:k3cMr9KIcenP0Kivo+e7hbVV90jhgAcXxeYrAshcZwkvbTV2t6+xkq/MG8pwKpRlB44s7qNYSFBQNEHJvjkzx3fQEwHBy37dk+Hh68rEg+hwH2mkSjSNmlAbVkqqwJYMSmKoHHmptPgVYd3INIBk8KG9VfWaTND1KgYXO30p8AbLz3q0nWcrJkUuiIzvDRZgX9TBrhvcDNENWQlqZgaWfDstQsuc2tRpseyOZDgsc7LsuzfSEq/A/TMyB5YdsJ61kvgc98kbWSlkhUXZ4udtkjKSyb3s/ZNY9S020Pr2HZ6tXK0tjkELDoPrj6UFQU+BLPcvt/zjHz7L9gJrFKu24v8kNAZfoeb9V0hc1OjWEps=;4:Q1eFofFhQ88T5kEnRzOqPuOTeVHqyG0H8pLbgt2F2WxpjHqhR0xgVqegNAOjlQ3g75tsXjo3bGO+TD0nrVJjtAUEFem5FP7/jQbdQvZlCc7OEIJcPgyf8V2GS2vRw8fOZjvf5UFNwSJ4y4i6hgTvt4exJKl6hi41MkvTD6a/WzeD6oVkjYHRqvHMG4QSwVNEYSw9zIZXsnWlvtyuHr+8tFWipadl/2SeJxiZ+UY8ol4YRqJ5uMThvU3bgyA9LTR1WTw0GQhn6/QuA2PcxIENvsRGTzd2Z+E9unvJakKSCDFLjP4E5MUzbwjcYJRVkzGDmQRQyNxd8NrTrigayWwRINoh2bjieCdIPMtLNYiQpkf7GhnQwdI42tbgB7k+x2dy X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(102215026);SRVR:BN3PR0301MB1297;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0301MB1297; X-Forefront-PRVS: 0742443479 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR0301MB1297;23:ZVlxdq+aIkWQ6+laviFGRBiJpGX3oqS/2CW/Z/3?= =?us-ascii?Q?n2JsXbBxCbR2e8jFKXCRbNUnDEk0JRotr4BM5qT8RQJzHEc4jpmFM1fHwbk3?= =?us-ascii?Q?usX8VXLLzV85JBm8a9x+mKdiKl5u0zUoKB1MtLHOaxM7PRZfZ6x1oDqnlW1F?= =?us-ascii?Q?CDPVNX1cwvAuPJri0w/gUTgW6MR5ImEnoAeqrcJ5tP9hA4XVjPLAsZdlaXrG?= =?us-ascii?Q?Mn3hX6ph7O2/x9It8msLToz6kEBWnuGBUx3NWFIk//3mR1xrSsGO1Q2PgsgV?= =?us-ascii?Q?cXkkNMExDfuKK9EXmP4KLKX6d3TkEN4iT9ZK2uZf0v4w28sRBskyPl6QV6HD?= =?us-ascii?Q?aejLsMNmNTjAiB8Tf80+zyW+ykK0IdGhErXV5RV0VYVx5xz/yafPgjwvOODv?= =?us-ascii?Q?rpVrudHUDuLFmbHI9cf34VoxQwy96UnrMPjVRInj1QUmwvgbmWOQTuvYAM6O?= =?us-ascii?Q?rrTBv45aylU7SKF30zSZsfivfvs/rZMEZxvRR5Nc19haC6yNFFQurL7DA100?= =?us-ascii?Q?VXhfj1jy/DNXEJ1tXDmDaEwA7GeDYj6+EMUkyqFXJPJKu7EtzJbf9EN2AxHW?= =?us-ascii?Q?DOUWpRqnMYZrNDCbuWCxixBXfTQHJj/hlSAjS8az6dlwHI42n1+ePAOTDDid?= =?us-ascii?Q?Ta0JHjoYSN5bi6aFShDvOC0MiKgPCMw+zixN4JRcxknCpWjPabdDuHAaaLaI?= =?us-ascii?Q?yNb7Lv69pAur1mhP3/VYYbjBDbMCDtEvxwClDm+RQjdT4mr9glFIoXDaHM6h?= =?us-ascii?Q?JAzqgu7lA/UDypJJ0FlSyJx7w7b93Ih7AfuGDBAoKXL7sGL1sOhxoVP/qHju?= =?us-ascii?Q?/ZmjXViyP3idYXYZbMTQIhxQLDoNE0fuNuT1EJn7nq4Kd4GaNgj7PYxN4mwI?= =?us-ascii?Q?TKIYLPgvA7A8yrRFBD/QT88J+9hAtQmBn0NOMonvBCZqW+eGmdz9Usv3H9nr?= =?us-ascii?Q?KlxNnLC7XLFbblu8nyMsqVjUIWonY5NeMO1mJGIYJ3rpfCJuMAY3suftyGqu?= =?us-ascii?Q?tdmrmWnJp16Srgri28T1XOaNTrYLykrV5gGumHYKabi8CbtiTpLiZ60cTZaD?= =?us-ascii?Q?joyN2CuY=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1297;5:bvbBsDczDACqsk0/CpwbqBjSXX+BS6ewW3ErcK1e8hmi+NESRT3bUqiqa+kQhTA1Kj8yuB+7DE6IlXQdDwIJ/Gd+cQFnDPsJ/aXNGjofVdLEieG2vWE/A+DXylgsuWbNYtl6/woA3w4C+k/bFwj15w==;24:nk+vaBkzVqySrCLBkfbphvBTNbe4hcEoz9C/gIqIg28eelF/XBb8NzhkcXlWy9WHrAbk2b9hOeF0lR01upETBEHlcO+rJBoQdzdN2Fc/V3I=;20:SeEFZw1l2hB7X3PDK60dENZNE9SYOvy1YKHltZTyTpxebtAVVxOL8aPsswY2YE3xq2zaw0uYv2r+dLLx+7ieQg== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2015 22:16:50.2740 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0301MB1297 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org support GPMI NAND on i.MX6UL Signed-off-by: Han Xu --- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 9 +++++++++ drivers/mtd/nand/gpmi-nand/gpmi-nand.h | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c index d34c35014..8bdf8a1 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c @@ -89,6 +89,12 @@ static const struct gpmi_devdata gpmi_devdata_imx7d = { .max_chain_delay = 12, }; +static const struct gpmi_devdata gpmi_devdata_imx6ul = { + .type = IS_MX6UL, + .bch_max_ecc_strength = 40, + .max_chain_delay = 12, +}; + static irqreturn_t bch_irq(int irq, void *cookie) { struct gpmi_nand_data *this = cookie; @@ -2016,6 +2022,9 @@ static const struct of_device_id gpmi_nand_id_table[] = { .compatible = "fsl,imx6sx-gpmi-nand", .data = &gpmi_devdata_imx6sx, }, { + .compatible = "fsl,imx6ul-gpmi-nand", + .data = (void *)&gpmi_devdata_imx6ul, + }, { .compatible = "fsl,imx7d-gpmi-nand", .data = (void *)&gpmi_devdata_imx7d, }, { /* sentinel */ } diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h index 149a442..331f98e 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h @@ -126,6 +126,7 @@ enum gpmi_type { IS_MX6QP, IS_MX6SX, IS_MX7D, + IS_MX6UL, }; struct gpmi_devdata { @@ -310,8 +311,9 @@ void gpmi_copy_bits(u8 *dst, size_t dst_bit_off, #define GPMI_IS_MX6QP(x) ((x)->devdata->type == IS_MX6QP) #define GPMI_IS_MX6SX(x) ((x)->devdata->type == IS_MX6SX) #define GPMI_IS_MX7D(x) ((x)->devdata->type == IS_MX7D) +#define GPMI_IS_MX6UL(x) ((x)->devdata->type == IS_MX6UL) #define GPMI_IS_MX6(x) (GPMI_IS_MX6Q(x) || GPMI_IS_MX6QP(x)\ - || GPMI_IS_MX6SX(x)) + || GPMI_IS_MX6SX(x) || GPMI_IS_MX6UL(x)) #define GPMI_IS_MX7(x) (GPMI_IS_MX7D(x)) #endif -- 1.9.1