From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965775AbbJVUGZ (ORCPT ); Thu, 22 Oct 2015 16:06:25 -0400 Received: from mail-bl2on0101.outbound.protection.outlook.com ([65.55.169.101]:17129 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758180AbbJVUFi (ORCPT ); Thu, 22 Oct 2015 16:05:38 -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 v6 7/7] mtd: nand: gpmi: support NAND on i.MX6UL Date: Thu, 22 Oct 2015 14:54:36 -0500 Message-ID: <1445543676-19876-8-git-send-email-b45815@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1445543676-19876-1-git-send-email-b45815@freescale.com> References: <1445543676-19876-1-git-send-email-b45815@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD025;1:PNXvz8hG+gKm4FBKtl+dZCD9CyT1f+rKQVfWghxy1nP1PpCFm7EyI85PFP7EKhI6EEdtsevbYP4Wn74mEtIPHR+IBGDnvyleuO4XJWNbOhLD9nvHdxcwYFOBx2GGQaJbv350Sy6YCEZWUhfMm6TWoGV1M6ozmDdWuQnzBwJJGSaXxm3VTPcgt83p80AIcJs0VxWx9M10YZ66vz8DE/vwIj33OEbOtv6qHymj5Ny/upcjeXXcCQzIUvahORhpBsr4RynWWaoxsXcRmK1vfZyNZvpyeWafzEXos/lHcsGQT08J2Jk4+WMjnohn4UcvOAGEhMA+B2soKkE8FwjcJGC7hCsmJ1YnWhwRv6m1tovd883D2RNyLTVQK/4btYqUDSLYvc6b14reCGFw55FbLCk7YA== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(87936001)(229853001)(50466002)(19580405001)(106466001)(105606002)(19580395003)(47776003)(48376002)(5003940100001)(2351001)(85426001)(5008740100001)(5001920100001)(5007970100001)(81156007)(77096005)(92566002)(97736004)(50226001)(50986999)(2950100001)(76176999)(6806005)(36756003)(104016004)(189998001)(33646002)(5001960100002)(110136002);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR03MB560;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;DM2PR03MB560;2:FrDXb7xjUo/n81vf4SIjMXpaVeYHLmTbVRX4OwXr7f/nFkNA2N1i4csKjXKIBQgTMA8PaR1CxaX0k5nvWx58MxAFsjgAuzWGPurnwTo2hCJ1LVHQgcanSkavV3vsnI6peeYk1X9Rfc44b41mSbpx7zJT2YyB1ytAMpWgnH5EHzQ=;3:XJRj6zADbrIhAuTCRDpLOV4jk3gi/l6irifmPE2gm3tIMMsl3oz9yXI205prjMzg00Z8PaRMakT0bczdRSNfoTFy9gYh1TjiAV0sdmVq1oQwk+KSuETsVN37Cby2kz9K4A09o8mP1CY+xa5TjTi+rWLrhA4N25RAVXbO51A8tadzIcgNq7Ch5MxQKuhzPzfly5FwVfThkPnAkj+un48i81PJtqV065We0GQcByZo22E=;25:3yr82AFqsOXqh2NbTVAYvG7XQOuFizO1rKhk7nPID6FAmhG3QWqgR6HTAeABvcGSpK/MUldWAM6xfhefJbnFuQ32EmS/Juurg0YszvpZRQW/hxRix1y+0dRJ+dFJNAaORzzuDTveqoBF+enFX04u+xNO2Kf2uN6FXis/5ZfQZ+cgm22zaqFT2Ki1/H0RrUSHzacDJ2ck8DUhOwQfvWCOOUdphdljsRsF/sC3gfjSo3mntUUyvyqomRNGcgd17RJ1X2o2Mi6FxyMJzFhv5JDinw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB560; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB560;20:1G7eKnQ6DGt9X+846qZHmuzaOvI8AhCs8A88f2L/4zdMY4jRwSCrJehsYlmBfMVfjudoO9COwR2ydtR8FdrvVj7+1iSaOkql4pM1QIJbq+UxcTR2FQyJfqQZalLP+LjEwcV10o7+10kdOTMt8/AytXk81+apEffJzxmkiifQq+YWK69wsh9hA8TWJVC+MmUVLGNAtveWoTgmjkNcsYeEqJjv/79bilN2MTgXpoziUSB7HrQsk8B+y88DMFk0PIStRbrrCe33zmbEmbkcJMRO7HrjYy2uoDqL0WP+xBU0db32T+dOaw2KyPGI4iYaHtAb/+T3Uvm2cF/FsF5av7XaKzUevuRRkH6BxwB1IwqlYeo=;4:61dEYpn8zwo3tmO0RRRznRUfB4WqcKas6oEUHOLGfWRIiuCGqMHkepmkx4I0lcpKSkHjgXu21uESzcH30YsZZRt8kms89sK0xxWrYhm57XY0OwFaleYgjx36zCeu37/X2mqtyW+Tkyia5sxgJORyoANxzoaOa+wKT0Txqeo9hurkXc0wQxcwD7srXdzoq9klMf9KD8/kD81Y2VV6RI45hLSpzyD5cL+NjFsTqPq9UzQOyxLjlI6vJ1NsvZCK5ek52ILnwKeXh197Pj2XVAf1SFtrVncRQhP+hdgz6co6UqYxfoutsu005M22zrT5fsH8Pbh9Dn4iUVr720OV8YmEbDWlxyfLQspDhnk26KK+ZgmguZG8DpgwGilQ/Otjuodz 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)(5005006)(520078)(3002001)(102215026);SRVR:DM2PR03MB560;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB560; X-Forefront-PRVS: 0737B96801 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR03MB560;23:xSJMzEQojbGNdiyBoFEi2FDej8KqyoUSSfavJULynZ?= =?us-ascii?Q?Dd6PaEPxhzKbOf3Qq+6NweOHllS0Fa0zo+3vRvmoijXuYUzKqPNKk7yytH5U?= =?us-ascii?Q?xrVyAg3fiV8BkFnbfhZL59JA/2g7bbqU3XL1gHvcyhaLU/V4Pipc3gXN8X5s?= =?us-ascii?Q?+yJTCE/zcvZIMqEGlRbdkTHYI27CKwrLcMZ+XgXIcNVIY5leYPKRlWDxlYKI?= =?us-ascii?Q?AIvXDdzbsFmrO9zVmOKBT5ZOZbm25Nbq30lXs0dHrpXPXT525tcS/khCkOaB?= =?us-ascii?Q?Us2+ING7O/0N34yourWHZ/gkK/u5IbgqTstgEUf8igcwHBH3y27uSHzUTx4/?= =?us-ascii?Q?3TrnvigvtyFrzNXGaPbNxkN6VBNPOXvH7KTMvqyMSarzyBs4ZTeBkUeUvg8c?= =?us-ascii?Q?f51XkyMuH9neOzfZlspyL+3ZTjieYlIHUOcwp/3eZVmFLc87B5GhHryvddSx?= =?us-ascii?Q?YtGP6zRxw9rKO+MVHKEdzRUVqSFYRYtmUeq4D7t1AvyrMSHS+wf3PLHIiidJ?= =?us-ascii?Q?rj/cUN6ba8BfhAAu633cYqib7Sd8Kq0YsVakRdTbs0mVy9qe7SrLXGr5b0Mr?= =?us-ascii?Q?IQN5IfBkIcvvBFaCpXFFwV0ryIlz28cdpimFpc2kZHzzDbuZNV6FPAzSVpvx?= =?us-ascii?Q?kd+F/8YRFQ+H+cn7BNQet1glwIqmx7aAtlclKAEdShdyaNYI2Rj5b6aiSyEn?= =?us-ascii?Q?kiEIM7V+AVvKfxXYXLWGJ1CbbRImETpvnOVCMrup40l/oDiyFmpZgpvJE7y8?= =?us-ascii?Q?TEtFHFtgUCPx4IIK3rb4vk3ce2NOV9NU0sk98Jwg16rjE3w9ZmXskI5vJ0Tk?= =?us-ascii?Q?fcsrERulslAMAM5Gj5CLwvVPM31k7wyyjI2CZfpSScoggJe9fDzwI1t7XMBh?= =?us-ascii?Q?hyV8wlSn4uKXeGCAEWY6c8epYZWZs3V7fohQQrAcrVyc3Rn0Z3Sc76V1DiXl?= =?us-ascii?Q?cuIRSu0Ns27i3sNw3VSbAuHGy5QGH8rUsnYRrSZYUwtNkQ4+zgfVtND06uKv?= =?us-ascii?Q?GvIIa0m+cTQAZimAFSLV4r?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB560;5:gJoxLWycgqtblUMVEGYP6JSgMTvQFrKBkWvfRaJFJgTDkksQdOu/Dfgq8PHu4VmGEoHD1nPmg1kztxB8Nu6PV6xMQBeu0QXIBODf2WfC5w5frR3lkU3KGt+9ThyghmRozWhj0YQs9JIRH3ggxsfpUw==;24:Ts6YYkxgGcB4+kU7e5eV6jtnvu92TWYvYCERTkzovtP5u4iJxRipgyniEsE/h5rIhUaiBkqnCqm9kWEq0Ef6de5WjtbDh4zxdGGMwmGieyw=;20:1XFyb4zW+45NzVuZhmGbFXUUjKOXz8IMZMk41OQPQQ7YJ90vuVmmpEjDzYDSD8P0KQYTb4I1MS79NpZRXHad1g== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2015 20:05:34.8796 (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: DM2PR03MB560 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 90065ec..fbaaa8d 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