From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756660AbbJUWHq (ORCPT ); Wed, 21 Oct 2015 18:07:46 -0400 Received: from mail-bn1bbn0105.outbound.protection.outlook.com ([157.56.111.105]:33976 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752955AbbJUWHn (ORCPT ); Wed, 21 Oct 2015 18:07:43 -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 v5 7/7] mtd: nand: gpmi: support NAND on i.MX6UL Date: Wed, 21 Oct 2015 16:41:41 -0500 Message-ID: <1445463701-5921-8-git-send-email-b45815@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1445463701-5921-1-git-send-email-b45815@freescale.com> References: <1445463701-5921-1-git-send-email-b45815@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD042;1:06lIoCsxRfXwARbQgAwUGNG95wpGltYJwT0NLm4+IGXEdaW+fhdagJ7mU+4yKfR4e8EId8ZSv6LSW8IPmsn+zJdm0YyHYPiC/SZZQTpEONsjpfzUZ0XNsMjTgF7KEAKbUgPI44PJ8caD3CpRNZIo/aQeFxaCxpRCzPb8myerASzV4FIQ0/t63515H5Qk/sfo29CMkGDLuIYC6xNhqcADt2WKMAyz4oOrjmVylQjd+z/jHBTHzlQbYLnx9qsoKOZsjLstQVp8hg/KhiHHaeKwivbqKLvZBGH0mJ/w+Y09LMFSlurgNDlaHRkScdh8nl5iuNN3X3MECJ6Q8syNBnyza/AE5YVCEB65z0FuHwcaoYmbO8dNPpVpjCf3Rh865cz7G5IZvSVz8G80qDtiOED9Pw== 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)(85426001)(5008740100001)(19580405001)(46102003)(19580395003)(36756003)(87936001)(33646002)(92566002)(50226001)(189998001)(5001960100002)(104016004)(6806005)(48376002)(110136002)(50986999)(5007970100001)(50466002)(5003940100001)(229853001)(76176999)(47776003)(64706001)(106466001)(2351001)(105606002)(97736004)(81156007)(2950100001)(77096005);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR03MB557;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;DM2PR03MB557;2:J60m7nRiRIWce8r85rJ0pT/4eWnQiGvCyoo9DVZ8yY11jeZp9M/4zNrcI6d0wKFc84EpSWB+zMzhfRxuoEGC5XrbGzzi8aAA8b9wPuAdCJxI0RsIoldRmwbYn68WhTUZnXt0bFlarLqJf8Zx1GTZLOCKtQzB4b/isvn9b9WKttE=;3:RZU+0p4jhANh0jTD2VTOlsSqvR+56msnFZPJ6+ZMMIwQ6RRmsbRZo6jW7sY/LycJ7sry04h4AOS9FGTU6u+vjFYVf7fb4e4gBzW5T2HnnWoR0XaDP8y88UhbfVNGyj6avB76Li5/5lzeDua0Oj3N6xbJN+9xRFgsd9z2Efgkb7bOHseAloOgC9UuDI9gyRy8T3Rfr531L/7eg9yrWmRL/+z2XrPERyUD+QqAB4GWGsU=;25:3cEgRax2f0OQZRsy4gmC+WMgJXIElHEWmswIJYpy61UgYa2FwcRpNtWkUV3UaozyNnVTAJ9nNf52bdElXfFngNQUJxwakJHVkp70VTR60kgym/LvyS/IDsfWyrXOsO0zUXxKcdKVet9/mhKmMDyiu3KukuGTPTkmMrx032a5WIcFWYV0udAGdK8CfGVubR+JltdvWXhaQcLAUy4sSmdDqH+cywcMcMQgFhX4PyKsiXwA0/6X1eigezRsVhUw0feUhkyToB/vUKWe2ABe9WxPRg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB557; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB557;20:ZR2Jy/0dJih1bsK3zYFDzRAa/Y5xsE6v0nCvbp/24ltaQGsJr/2JLCd3x7TbyEeoQf2fN7kydRNyDP8zDledPOzWNk3A2+mnqqww9mxnHKMh5B2ojKQxVxdROKZo3SgTvV42YP5Rt9+l2IKz9kx0L/GtHgGED19aLKk4Nbc4Vp43MtYWMYYCo2YzR7GixHBgwPPMva4V5R+bcGu0HtKSLv/rAsujwC0A1KdV9kHl8XxRiphpFjWJllSsrvR2hBrfv33GInAKYc6s5m907Q427D97Z97pJs/QxWPsrmIYtoRl+bMM4OBYbOl2orwy+HohfVF5Qy6q36rmDkgTJ6eV3fDsBNcLRF1SAzvqBZhM0p0=;4:fGFOUOqos7xy3xbCArqDGTZoo64ygtamiD5wNBxLAiiLy58QU0xeJtAr7LuoP15UfTBIcwQHFzpVsM6pIwZI+eqO2BZowvKvVCekDqkquYEzXeEdQCn3NamBJBVVebaZy1RrwOqg7LDeg4DM/gcKf2hwcGz6ElW2rD9jDLwSnLgiO7zmMf6oDl86gSyhfcc3l3+n1hYHtSToJkCUDqcuCpxLwx9oy12a8Ckl4s0ukDTR4HY2bE4li7kgIqEfZgBfluIxwXFbl3GXZmsdHfof7ZYyhrM18FzlRrOqf8GBiNs11pInwiFGm87yVtqgUjrhtx1OoSjMUXnXNPOfg0k16lYPlz13aB/WwYidR/c2+mGxDBQAJ/rHkNserKhTw0GE X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(520078)(3002001)(102115026);SRVR:DM2PR03MB557;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB557; X-Forefront-PRVS: 073631BD3D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR03MB557;23:9sRjf3VQoa4HS3ajEC4cf2IiNT12k87qrv7Zv4A5b+?= =?us-ascii?Q?wanhVKdYLyBb9tYXLJ7aDKQFTHQfWLoujHaK5VI2DZbPqNN6T2sUZlnzMsAu?= =?us-ascii?Q?WgsP7dgQRFmKOn+vB0zXF9wlYgd3cRHBD4/chnSTolo9aFPhjO/K6LtLtDIZ?= =?us-ascii?Q?X7ea+xxWFBbNudubZaRgh88cvYkGQtvdCVYlfUA+UVswiAXLhJVNSQoKngUq?= =?us-ascii?Q?MzV2vYLGg7lyiWLgyP69awkD+H61v5qmm1/SPBnThuKz8gzi/THSTKfB9Vtn?= =?us-ascii?Q?Es5elJIJzqtfXM8/pp7zZ4713gjhu87K0d91QlSwyh4SjnnwwiycxbssF7Xd?= =?us-ascii?Q?JvmeFehsVvrRowLO8L+jmxRNKoKh0Js3edv0uBAnFf/c6G3WpKHRGCxJ4lOb?= =?us-ascii?Q?qOyNu50Ulh1J5TX3gPqRGI5/UhuY01Dwl58dssq8X5Ar5oDrfrLbQfZXLexL?= =?us-ascii?Q?vC/bpumfduRLXGpyYKLuAPvXlDOJoWFw5LDO6PvXS1NMFJq/z2TZngiN6geH?= =?us-ascii?Q?KffNCI0JAp5sv9bIARqe+8KvVLXNFUQk0/MY8rcCYW9NwHATq/jDyW27vgad?= =?us-ascii?Q?HuMusXGc2l2wZctQJUMM18EVLelp0oZC7XJ/Wp60ZT326EJWNV+yrCYq9hz4?= =?us-ascii?Q?4+Q77ULlHAnKnO4AwqQlSK1p2rIBYNiRPIOOUiIHq5SRjf3r1ULm2+KPiJWP?= =?us-ascii?Q?rlxffuqpVr2Xc1uWmiNCa1aoVv750pIgX1WVhqrh1esAVEw5lHiWqOn9aY6L?= =?us-ascii?Q?HPIO6BUTGzA5VptXsRQqaoEdSpTR0rfGbjN31lYlZTZY5+iPFMcGuS1RZ02l?= =?us-ascii?Q?6xNGzaYRhpUx5YzvpDQjVZhsdz9K3SrybbfLNbjdvpBmYF6iSLae8gOgI+5E?= =?us-ascii?Q?9mXZwzoGX5Wrv0uZr0PhxCroSvLkI16JjBbMifSzC6wcoRVnB5Vppj0pyuaj?= =?us-ascii?Q?ohEVsiPI145+xbi0ibl5AqnY+65dnNo4bVg3TMm1R55ymFAdwxjJq2gE52Sl?= =?us-ascii?Q?o9PAaHallb3+7B/8OmT7mky7jpB4ecSIvnuted3lFn8A=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB557;5:aCrtAz+ervSc1LNpGZYpvleioNwyWIQnsfFpWx7QDnPGpz2agkt9pK+xuG98uyzjnjPiBGm2IaQnlKqaLPI2wsy0+zxAuisB/CsrDdOujKo/h+1pwLIm1NS48K6apFeNrc94voaig52qt8M0MnnBeA==;24:nh/ah8hKE6MXg9PTIwKf9d4RWWug0x97icv1YiuI+0vJxi3szyeDj4Al8USyehF8dI/nnwzxGe092N9mPQEOupYQ8/atage5sx7Hlvw0XHA=;20:YniZJ3xMWEV9/k2tKJK1sbyB9U3axVdtzGwM6PGDe6QWzB1SaV7V0+tUIT8N780N12S1ExRWR3Bc+TQ3n0L+hQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2015 21:52:35.9860 (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: DM2PR03MB557 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 fff2694..761073eb 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