From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756526AbbJUVvV (ORCPT ); Wed, 21 Oct 2015 17:51:21 -0400 Received: from mail-bn1on0143.outbound.protection.outlook.com ([157.56.110.143]:45120 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756490AbbJUVvI (ORCPT ); Wed, 21 Oct 2015 17:51:08 -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, 21 Oct 2015 16:40:08 -0500 Message-ID: <1445463608-5836-7-git-send-email-b45815@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1445463608-5836-1-git-send-email-b45815@freescale.com> References: <1445463608-5836-1-git-send-email-b45815@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD040;1:DfMMRy2wnHXiHHKq89vpKacIB13aUsjK81r/kVNmcKQmQoCIBkoz0oJvlmY+iy9UNcP7g7sC2IqamFIGoT+7wGVHM3vDnOc/VJepnMFpyyIRrpu4GZV3xT7bJlRXdcGlJEophAhwD7d2wQliNHByjau3PiuXVBKX38V2qvhJmhhD3Pm7z4gF31xK5S5eJuVOHQ5bZRGiUO6VRl4dr3wh/qYRrqOda5LTEGCgQqYHgjmpF2U21t7np56zMRpkoHYBI92uQ/3iI45K26jsFoXG261EkinUgxxLB1Bb95Oq9nEUQO9XS+SktXlMW5gFHPxr49D7KtVief2Bn8Sw4w348yM1dfrnhnqGVjoGi+sjJSlMpdy8YBtTZrlqa3c4FWHmh1J5yXiabuDuYiRbKPtfJA== 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)(19580405001)(106466001)(48376002)(19580395003)(33646002)(36756003)(50986999)(76176999)(110136002)(2950100001)(5001960100002)(47776003)(5007970100001)(6806005)(105606002)(87936001)(189998001)(104016004)(5001920100001)(11100500001)(64706001)(92566002)(5008740100001)(77096005)(50466002)(5003940100001)(81156007)(46102003)(229853001)(97736004)(85426001)(50226001)(2351001);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR03MB551;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;BLUPR03MB551;2:AOvAPIzgQT+m3W5pDWq9sumqLx4SUPp35Qdi5WpgDW5rj8iDNio5oJxb833G3rJohjWT/bdmKq1jS5ZWmo93E1fZdASsnKgshVBIiR/gXlDOrjzKCW4ww93ycb0kxhjAUNfFjkbmpksSvP6fLE4DCKe8D57H0XxV3DDpF9QrUOk=;3:cUay5XdkPevXr/CqI+VrAovSLcZ89HHwql2mInpPUU1ZEY/rS3PwXRz0YVVCtvbSvYAJ6yOLxp8e7JxRabbjmvNwt/qwtH2k8YD0TiopaSeTOElY/3baGNYUtESS/t7qHv9e2lo9luBruOc3mVmYP3RIpIhrNv67qzlUgBFPqRWTUp6E+J4fZQHbFaRzoWAx9fe2pbNzTC9s6X3qSSRRZV8GCPsGUJaX+hp6beUFGwE=;25:BFhap62QyvBnIw+8WOYqkYQK5r5olkX2n8UqX+w30OmCOG8+zSwgaV+9y9Xx0seOocH8OmG/eLkeSpDjSt32GPthPQg5VVH5G7Y7FNsGHO8UHxcAbWZ4tpB3mNFRITun7AcgTSP9fqJkjcsXb1zylOW3c6o0E6Y/puU7fN2QTcpvweeAtlDGOitGPoU/wkIJJ2alHT3nlHOL2sIqMERG/X+OCnkdh80LpNAJmeBUTLeknXPAF0QWciJJPfK3xV/r/7+v5KWhcE9+VkM/fXwvZQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB551; X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB551;20:FUKRDoXQSWE0fIBOsZPqQItb+fEcIuW/hhwAWhxkGtYbcKeIQLCyJUlgRFlpPJEukLdioJCV5vbqTZYI0ax1uIYaIXHGVC3oW0GmUYbSEgTHJfz2WFog3lQ/AyadnK5711ELhbbb4t/hsz/95cdxBSlkGTG4LXuXNk5fkh5bfpi/i+5GzwFNgjZVn1RZCkZdzE8MRBAKliPqFVcZ4DkZDqr++v1CU6hr1GqarjTuirP/RC1rt0YcIupjy2PS/cpyaWJUwEolHbN3AGkJOiIThNxNQTtXI9phE6OL8PPhXAvKZywkX5phxUMyVjrV/7BxPHcKPOvVaReh1iO9MJUq/OrsQ3XaeoBjR3urG1e7mCA=;4:gO2QWgW9xGghk7yHUAKyczAgpPz0dOQGDi9nxgERK7pdxHFSaFPzGZo/vr6Xcvwk+c9okeD/NI3aL1IwGM1jbPKWjrwiDbFWbUonfJ4GPdEj0pQzOif8XYofcUGbCL9SHnhf8QJQI9gXpusVpwFHUc3PsNuuBcJY1I9NhEg69DAk0H9C3ANfnOdziU57EPfE1y7CGo/WsDL9V1F8L6L6wP4ncr+Uvu0ClFu4CT7WCzr3n8OX91Q6uL8dznPv6TJe/TggYm2yINWdOEJCcS/2+hB3YUXrQ/5KJ/3DNPcZCgd/vP5oYUxtK2KerQP525RJTz/udAWEe+ijPZaDHOvMF4VfiM/tVYkq2wYzOtwob5TYWm/bRtFR1l6tRz6X1G2H X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(3002001)(102115026);SRVR:BLUPR03MB551;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB551; X-Forefront-PRVS: 073631BD3D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR03MB551;23:5QWC1xNl8nuNbTJ3vmvMx+OTa42f0bt46FVOdNnUsQ?= =?us-ascii?Q?IW8w4yiEt99aY6V+w14o2jVwM/jo+IoIsocTpfqF/vgHNbanLn74r4iRQO+x?= =?us-ascii?Q?Kj0DS55yH+/zvQtzdtqrOEBIF9AWsZPSLrxi8JoG8ESStzNNxVO/iEweufDs?= =?us-ascii?Q?upcwpAosOkUxXU7oeTGmmSzvjCghAYAuKGCN91S7Nb/VbhwxoBNK9G5Kwb2f?= =?us-ascii?Q?4zS9w0uGcFgEokd2ii0iaqSnGu5PWyRnQc2DAy9DU0DcI0XOHvwKVs7jcTgM?= =?us-ascii?Q?Y6McSxe3g5LTD1t+VKqEVj8s/XUg9w5QCtF8V9B/la626P0lO1OOE+kq5l0a?= =?us-ascii?Q?uOs5KH5UeCKUZzwVSb5mIWjJnE40eM5eoepLOKKX/x+p16AwzpHnVpcyQqqL?= =?us-ascii?Q?hlF5s0QgucHuGJ/U0YQHa2AcnVBLSgOJK7iyiBh55eXk++uK8xvekAeC12zu?= =?us-ascii?Q?m2cUU+Sr4JImt8e4nLuHFGxFCmpxSQK27thJLc8ByoJBHtkrebxtVR7rJDOr?= =?us-ascii?Q?QG5sS7qDLqJB+h1kr47aSbfSGCWh1QMu06jC7te4ZXq5/QtddkD3zn95L/kj?= =?us-ascii?Q?CdAu5mP8ezxFCUzn8xp5nWpv5qZln9H7CnaobLOrQTn8uZ9IGsKaCTc71zwO?= =?us-ascii?Q?noN4STHhSnmsyM7N764UWtTkIkVFZ+QMjui7gAboc4VaKN/DO0cV59IzYvhX?= =?us-ascii?Q?/i6LcvjBa5JT455a4rRzvbfiMjqLIIjVzhiIGwFzP38TT4IN7HmQqkqmZ0zV?= =?us-ascii?Q?18ui1VWSja4a9KpZaOg5yNvpetFvla1HsirG29ZunzgvTIgj+7ntkyyDRSju?= =?us-ascii?Q?m6qOJY2j1ANH4uT9NfvWfv5eSRtxS59WmsWnwQ0Kxg8GNtc3/L5fkl5Spuu2?= =?us-ascii?Q?AVtDJ28uavwTFiXdf3I+iLoYG6irjFpFz1UgE333BbIYw6VqTqg4nhpQxPIT?= =?us-ascii?Q?JPkTiwGm1QRmmIT6I9MbgBagF657BFHFKrNTU7WCh84Bx8WxXzD8jReruKFR?= =?us-ascii?Q?e8g8PvvOhFOu9mG0y8kDXf6f63jwE9VrsxwJiC9ZgdpYl4bN1BDkQs1kl+pr?= =?us-ascii?Q?Wii0wwcM+r0MTWd2qVBkKcfRKMfJ8OkVQepqYFqz1dP1iCzw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB551;5:ZgeMnj1AP9XkUilUJevO9Hwmp+5h99DRX7gtTa086jljX0Zoh3EvyJIUnQ2OusnGEx14kE0x21OGXWkkpjpZd+zu54Aily/pRTniK5LjzSRWdso8ayAAoh8+6O/4tR13KJDoXuEc5JrOdgT4nI615g==;24:bN2OMoqGX5Q+ze8R27Ge8OQV/O6id7o09/CxBadxQB6IfR3Byq9n6MblA9g2+2Rscv8AHZWNEwqWswqjJ3SifKNcCv1LKB73YRxtagMbaB4=;20:9lNNq6pWadGELjuKdW1Cqua68fyVWRz/unisCRH1aAB2o1B6hYx2q56m4c202AzaaJySJ7pibSM+VLvflOBedA== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2015 21:51:04.8793 (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: BLUPR03MB551 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