From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753440AbbIIXBu (ORCPT ); Wed, 9 Sep 2015 19:01:50 -0400 Received: from mail-bl2on0114.outbound.protection.outlook.com ([65.55.169.114]:61855 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752397AbbIIXBo (ORCPT ); Wed, 9 Sep 2015 19:01:44 -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 v4 6/6] mtd: nand: gpmi: support NAND on i.MX6UL Date: Wed, 9 Sep 2015 17:37:24 -0500 Message-ID: <1441838244-2106-7-git-send-email-b45815@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1441838244-2106-1-git-send-email-b45815@freescale.com> References: <1441838244-2106-1-git-send-email-b45815@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD042;1:sJKF7t6oesIpFZVsffwR6o1L/qwBy+9yBECtndSP+Y4GSsHMsjovZHDrbW2B4DrNp5To6qpmtMBn96aGwzlIxw/oKmqD9z0Z+4IBlqmGeuj8lhEmUac8M+/velHa6d+Q0rt2ZLLgr8m15jqbG1tBmdO+ii2p+3m1xbIAtaE0DOrskn3J1+n6rI9hTcxYgLJcArDITnjy1GuZi8tKfHriw5fxlJTxoYqMrOeuxZzjvkRwW9q4bwUlTk/VxeWt7inhasKDZZoZyECgq1k15vsOhyDPS0wlM5P2Rn1CzNrKYVsDPJD5D1fKffj4vZCL5Xzuv8N+wrHUwF/GaFaGfoNp1P4ihjGsCkiQTy94GE8Ji4m4ws+CwVhcRUjPXAmUOYdctV+R1jd4qgAsQQI0xm/NXQ== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(104016003)(33646002)(50466002)(19580405001)(19580395003)(64706001)(5007970100001)(5003940100001)(97736004)(11100500001)(81156007)(48376002)(47776003)(4001540100001)(6806004)(189998001)(2351001)(85426001)(50986999)(36756003)(5001860100001)(5001960100002)(77156002)(46102003)(110136002)(50226001)(5001830100001)(77096005)(76176999)(87936001)(2950100001)(105606002)(92566002)(62966003)(229853001)(68736005)(106466001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR03MB555;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB555;2:Dda6rfUqQlmh9zSRThlOhnZBn+vFG2FQnqhW/wuO5lPHsfnZUYZ1YntZbJqmVcU7MJ9P0gTSMO6x0BaMqK7nbByhXM/BitsY94yByTzBUCdaiYbgDuqq/Bxvqkz7SmfqPDEbmy65q7/90BU1ZW504jCOSj/UQc/fODqIVn/iCFU=;3:ZY7OnqdcZQCIMmXSGVNLnspvfl5QaykizvTVaQI7B4vz82pN0Vs/eK1/bSuB+hr5Rbm3Kq9B+FXqbHHund5iSL3i1O1QXppYRNpkMjg4CXMsKJOTXl7Q6uj+9AjZyMWimtmx1jE3gHZ2ci4kSyoN+vRrfPamo4qLdBPGnjzZBDgAPLrXtPEqYXWrzzVb9hTv75jAbNVfQclkYamtb63hxMNwJDGiJ7KlkYimHzsoOjE=;25:lFFrGSjurznBrPSPNTeukfYahjzSWrkNC1oHvdkl26IulgFOy1Q4ZZ55SOQV2Uq/6n8rVaPC7y5TNR09dcvHtBtJLkAawc7p9h3KyiHTbkIUNnFJ7hHpvW96eb+616gLfTuUhG6LP1H4N/VIDPfeymaYVhAS5GT48VhRkzJ0pnl9vzXsuwesK217PmkwZRXxWDsRJMu42zYqLrSw9ZOaG64puvLmsS76ZSgoCBYqBk8mNSQ388k1Vp38Oh5PxgUaNECh7p1QfaJTnsH178RfiA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB555; X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB555;20:7wKzpLd7gifgKVDGczuo2kpNCyQPpzxIRC9M/ZLlire6+kYs43c1jpp+bktn/B8PJ51t6Pj5JxaottKtetf6H378wIxi7uxocuwNbERjMlImabepQ2RTV3BtMnfmunnAtNN8sO/HwaovCl6NfTqClVp/ELrWPJ/+KxKv2Fx1UtlNZEHb0utBP6YI/VoMRKjQSqrzNfJCtSZxmB26ipGi96TyXcJvuCrQ60tnD/pnfGTArE/NbqnQf0Jlor3Sx/fpQDMG1oQlOCiWCswq0i30qQs7Bs5bYfnSL1KFp6yL2OxJagppYMxuyp7QqQwMVNZPwV0jOHkFuHpYn5GnEZirPnbbcVHxMlG7qySB4iNvcWU=;4:+0mj6IKfGtYP/DYWobv5XKiTbSxkMxuOWPLhRhgGG/m59/OYfRR1weaSfEoHoV11X70QItiOMZj+LsGBCHd938NzsDhANHRvMmLL1vVavWOqkkZlwDmE4YvknBkjphJ2Xgkk9yp9RQEAMZYDe0/nV3s88fj++h5cr9guz8jPLkco0CbDD9eh0ZLvanfZCPSLheLGd7D4ZMfWhHAkxCIMLhPKlNOI45twcRxJjdBCj7V3FRNDJsktULpZAWRmo+4JQQ/8Uo7paR2xa0khrOl79Cf3U9Jegqvf2h0CeXqaa4UvBnrijCvmtqqUzaJv9u4n X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(8121501046)(3002001);SRVR:BY2PR03MB555;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB555; X-Forefront-PRVS: 0694C54398 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR03MB555;23:Tb+gnBYDro3n3KAUnANWJ2HVSEHjfxk7arg3SoVNNt?= =?us-ascii?Q?SHM+X25YE4KTJQzpBOhhu58mB0lOsFqQemeUgRlEwXdKWQaFg3LbqE4EdsLj?= =?us-ascii?Q?GLuYc/oW0HMAKQ9ThgS0VF5tBDIMDykANtdKq/gJipbkFFFD3S4rpptwD1JK?= =?us-ascii?Q?l8w0l+D+SkUMI7WJVoSVWWp6HeXLo4dVTCPu13/axFgha2QWBC4y2B49VxjT?= =?us-ascii?Q?KwPDzXnheEwVHMJZzLZngbdrAq5XElLHEbFQ0xYrT3Rwn2Q5ybWxk9cwLZpy?= =?us-ascii?Q?e5RNXP7VqctJL/e0i2YNKypyIMxBiAlv3gxIOqp0Wqj/AQVWoFSLfIgciiUi?= =?us-ascii?Q?E0OW3atQEstoqFwe9iRY8tyFitYkxyJ2YOL6jII6cOKRm0SNB2SFISb6+FH1?= =?us-ascii?Q?RAw2MUrogSxN+8YqdXVmuMN24KgBA0qGHjmKlde50NlJH/pijISbyLJVFbS2?= =?us-ascii?Q?fxoe0S8jJRWW3wMzAKc80KhS4N8awBni1TBoi2B9Rtp81v1b5GWES8Di1A9v?= =?us-ascii?Q?GlupnQPYvFKXNdf9FM4u0xNFw0l4QRuyzyVyBEBwcrdDPzdylmx3gNo/jbNi?= =?us-ascii?Q?aOE5I7LnZqhseXYdozH7yndRCkVejQ4o5Hjcau+IL01W1Dlv98fsAtY8Tq9A?= =?us-ascii?Q?S0SrVOrYTMRFLH66iB9R2v/FBqgvofRE6UgTZS/uNDicFoCgURl9nShfnJh5?= =?us-ascii?Q?5NTHsXQQDi4/A3yTUuNiM9cUa7hfKBbuQ6p8fJk7tdIZOP9l8tnYdVffiwdv?= =?us-ascii?Q?V8P21wTT2X0HwpASVrYxavCZ4E0mkdJXF5ONhU2zTP2Mff5h/QeMb5BRubIe?= =?us-ascii?Q?NKiMnABd6XXA5cnGHG09SuouD3ZjebX6HDm8OYJuCjVikMmGwgN45WHTRQ99?= =?us-ascii?Q?Pu7e0djb6HJJtLUzOHV5sfCvNlJCd6pvHIlywO8UFm455+zGnXgXqRqu8uZ4?= =?us-ascii?Q?3E38InqeyCwy6FGpgvzuzyxap/mWvonCdRga969SixyXp4h+qapP466v8sgR?= =?us-ascii?Q?StN+Icha5gihgYycfQACPmkMBUuIcaPfTNON+Zw6Rno3zo3Kr4LZPOr4YkaV?= =?us-ascii?Q?m1KodJxOE6hsgWg0KhOhkfN157yIiDbsd0uBxs5jpyK3Za5awxVxeW8K4TEq?= =?us-ascii?Q?eQPtDTVtl6OYS6BMd81i5eHyVhN9e3deJhe9bfaBJLi+kwStPe1w4bTz3uoq?= =?us-ascii?Q?V/1Dp1L0oDK34=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB555;5:OKA4dZksKnMhsa/ZbnC6UI6l94al6yHGvobUO29F2AsFyeqjonoADS+asBh1I3aydIdaDYphCbACXTzX8QM9I62SNbWiyc0vDQtt4dSR4LCevI3GJzBWPnN9s7PfVC9RCJl8W2nrHr4PYgo/ehPF5Q==;24:LNI2aqi9u5blsmc3biZf1ZwTbz2vknReIkB5daYck7bFVJ1my8OSxedERudui3QUpOWGoECtgQ1F20jbuKR6Qc3Na0MF0aR0ACZHUcESvtw=;20:H84QC+zRX1GMUgPF2f/FU3dUMS6b1AwSi2ZhcWOBY6/it+c4vcH1vImlolalRoKqyV0/h8KblsnRojRk9L1K1A== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Sep 2015 22:46:46.5456 (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: BY2PR03MB555 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 e038258..ed4e874 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, } 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