From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751912AbcFXVkn (ORCPT ); Fri, 24 Jun 2016 17:40:43 -0400 Received: from mail-db3on0079.outbound.protection.outlook.com ([157.55.234.79]:57120 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751337AbcFXVjI (ORCPT ); Fri, 24 Jun 2016 17:39:08 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=han.xu@nxp.com; From: Han Xu To: , , , , , , , , , CC: , , Subject: [PATCH v3 1/6] mtd: nand: gpmi: add GPMI NAND support for i.MX7D Date: Fri, 24 Jun 2016 16:40:06 -0500 Message-ID: <1466804411-19874-2-git-send-email-han.xu@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1466804411-19874-1-git-send-email-han.xu@nxp.com> References: <1466804411-19874-1-git-send-email-han.xu@nxp.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [192.88.168.49] X-ClientProxiedBy: BY2PR04CA0010.namprd04.prod.outlook.com (10.255.247.20) To VI1PR0401MB1853.eurprd04.prod.outlook.com (10.165.235.19) X-MS-Office365-Filtering-Correlation-Id: c5bb032b-ad45-4d03-9520-08d39c77f782 X-Microsoft-Exchange-Diagnostics: 1;VI1PR0401MB1853;2:+7qSoPBayNiZfV3/EiT3AzOctQq/PAOAcggZnKyF5L+8Ff7xnpU9oOuLyd533tjEsu9vOyF9hYxzwUo/8pr5eD4z3f8Ircut7KnS+RIuVQiUus9TZ5DzOLfCBKGJ3IF6m4zmLi7QFAg6ISTg3HDmP0S6CGveNhjpULMIl0QGxAvgIcLpou+hdj+a4ooRg1jF;3:dre0NEhQcNXXbUWp+iF1J77oL6Zn6zMMlwCsKzsdsM9EAO/BdqiCR56jBzvbs0GHODJC1YKAYClVbQBel1SxWPEbRZUYJ/aFACiGTFYzCN2UoiozIxS6ljtkuF+soe6i;25:DjvG4EIjDS7yPII028QVdFnp5zW5TMjqnjK48KgdENXThWKW0oUv3C8ogWJIECcA2plO4k9m9rV0Ui5v05jFk36/tthZoP1LTsJY44dF0oMhtSGL+WM78q/TDkOC/sTjQtUz4w20G8BVJ1ZQDKi/3kWSfsixDQzKXK2mMzy6guxxevG/+GDz/UIcivX7tRJQwtYiKsLnLWzNkpMITAUGurrheiAsOs9x+B+6aimSBPw4Y3WkRBpoCFFpD21xwFGJ67j1Odye0v+L2TsZiFDqhlVbADecjSttwsFrOZxHB9ksANHAT7cxojjARjNlmTMYPKzuFGjD+RzxES6YI2tyo7KtK0CpgbiIf2sXAO1yJrv7EyDkj/dUXurhAywTDnyz8kqtHf6G9Z7K04ifL7pUMzZ+vxcFREii49968U+gHhc= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0401MB1853; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0401MB1853;20:WxCNIG9q3IhG2xasRuKkICP37fMt7DCcSX0aTCsfpnhqZkXDXN7H05pjwlL3z+60mGqxnef+WZBt9vm7HF6Ldfrw2kgV9nsU8Ep8m2Htx5dFkfOS87UtOY/ocvwqoDSpEwLdS/BHG6C4cfoXo/joSAkt2pRochorZLlAfBWX6fQfeEvzC+v6kIBTXi/GDdTmPaUmbEc0gWRv83t2CTEBxntMuxcm1QG5dgUS2PeuRJcimcZb7w/sOTzdHc7TiKoqIhD6jboXKCi7xtK0vgVAxp+x59Q6jALwB20ZyE2ZWE9i0cAO6jZKcGQk3qZeY7rM7F41a2S4j9IaUcm4UilpZL0XIMpEwLO7AQ8IXmc9G9C2lJznRNdIjLPHQcNgeItuB3zpESLZenc2rblf8tPPTgmk/mhd/WphzYwXY1zyeeQiz3xgvi+C2PQ4sFlAHCXxa8SOO1eqDDRqBPJ3+CdPX3EhQUWxJNjpkZ70MnZyN1FQzNPz9KpbmCJUKIImpvSt;4:ynoan2Qy/Rw0x0yR40VtmZjG9oxFJTPBdmU3ySE85f7QlLNT3pRNKeRu3P1LD/BR/5I0e82QqqAKsbXpadxV0iBMpBlivmttPBtIxza+r7ft95P9Y/mYIVXVBvz9qcOd2e2mhFuQshC8FSxo9JeIEvZidhMKhWl8+qYJlbNvTd1va2teeF72He9NAj26njy0C5BldU+uLwR26ShgMqQBoPEbFkhU3/0/KcdTwYO01v7aQV2khJjVzqKlyhTqhwVNpSlX4vWT3ejvqwoVjy9p6rSVrxvZzY1PlvxxWD+Ct3Ee1vyaf6B1G0VZ2N+Ruwq+sQeAlNtQNBAyBDx1MAC+umUYlpBtonFaLa2hG3QTNMFCqhA7B6lIHEWfwSnSUgoAtvkOG4oEUQWES5Ekimgxh81rITXOPD7mFC9Z1xu0SY/CxNH1szsRhAMLanjJDs5U X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026);SRVR:VI1PR0401MB1853;BCL:0;PCL:0;RULEID:;SRVR:VI1PR0401MB1853; X-Forefront-PRVS: 0983EAD6B2 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(189002)(42186005)(68736007)(305945005)(7736002)(50226002)(229853001)(66066001)(105586002)(2950100001)(106356001)(48376002)(7846002)(4326007)(36756003)(77096005)(101416001)(2906002)(50466002)(76176999)(50986999)(8676002)(81166006)(81156014)(92566002)(33646002)(19580395003)(47776003)(19580405001)(2201001)(586003)(6116002)(3846002)(189998001)(97736004)(86362001)(5003940100001)(5001770100001)(575784001)(2004002)(921003)(1121003)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0401MB1853;H:Cayman.am.freescale.net;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR0401MB1853;23:Mk0JPW2evxlobhr8tLA/oyuwq0GtFzl6gcZIfxT?= =?us-ascii?Q?CLHpB38jHh1Z9JYCHm9hQeL9em1/vLnWraqjHRlkSHdGD0RYEbZuepBBtW59?= =?us-ascii?Q?o3aP11ZW9TC98Mql896NVrFx0C0aEyC0J8YXmdk9LB1D07QmVveBegkqE6S4?= =?us-ascii?Q?deeSnZYv5h1v2UfnMVBO4wCfA9gKrDoUH4ssIr3IyHch3Njy11J5VvExWBow?= =?us-ascii?Q?4TMI4iqvDyBY7H/b3h4m6AVplpj/Q1qzfd+9a/IOjWsd7RV8klKK5dj58uSe?= =?us-ascii?Q?teVS+EtUW2E6m3PLaI5xgBOGqebCUvpOfCSoB2tZXqzu0eRWvQ1b7/YrwiQl?= =?us-ascii?Q?tQPRIWFy8WetGHvCzfp4UojPm3UdMFv3z/MCa+vnY+hxEgaZPkjy5WFigE/D?= =?us-ascii?Q?gNPR5mGGpj8nPYJ5Dpb2CszkkrodKVEkTIZwcis94wGYZmVhaQvNPxsIXj8I?= =?us-ascii?Q?CcDY36k/6NL9HpbM75LWvZEk9xi8exKI2FmfrgBTRYDoJxSipudybFr6ZEh3?= =?us-ascii?Q?LD4nWiGrJUZp6apDop8es8AaGbkCT4JaWCeuDYi8qzk4LRt/fiAVxdHP8mHT?= =?us-ascii?Q?ZnkEjMRAeFKKMweQU3WgfESnzl2TaCuZ3Y1hE4zKu697cSf2LDIAubzcZKwH?= =?us-ascii?Q?t7aJUUEHyqeF+ZXUQi/oSyxS3+1xB37LC66Ly1s4KeDqZDm2PQhZv9zNB/Wu?= =?us-ascii?Q?8BHqHbtHtmPXVG/OAOl0oWlUoAJB4B7z7FGHrz+Yc2/2HafTDcjJf94b6mlb?= =?us-ascii?Q?vZSSa4rDsLZdh645CHEjTRyMc5PsMfdSPBDEC/kt8P4NiVAVTqBSdaA0kG86?= =?us-ascii?Q?0H4IBCqnzAHG9aN0i4gneNVFUYab6il9LXJlqbtSztfgnUzn2s/A338CRYhE?= =?us-ascii?Q?T7iSz9X54sK81nKmBIHaSAwMIVl6t87DeCf4m79SgJp1w2w+ke5JHR+UB6I6?= =?us-ascii?Q?SJs1KX32v+lIwCDpzpPXHmirmODIzRmOm9H07Mz+8Vb03BMRWrGi+kKHZFTb?= =?us-ascii?Q?FZbeeU1A9a8uP6UqrR+znZw5KM1m/XCLJV3/KxyMUP+PSx7rPA6lco3fixWR?= =?us-ascii?Q?9XoFpyhFM5C4KRqEx98ayYWvwnomujjmbwxs1en3u4+1jigRuClGcqeplrCW?= =?us-ascii?Q?hrTpkGsG7DDwqsQ83Lwz2S3mq+Sl4FmbWIw0x4+AkHumoJ5pIRljLFWdA/bn?= =?us-ascii?Q?2K+AzNtPzcspheHo=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0401MB1853;6:pOrxk8PSFdaElDAWK56qXl+fmeqbLcQr/v2kUglNm3WgQy1LJNBuU5gzEPyq9hHVF5Gme1GDbGdG+ENK1C1P4R9LZCzy92v6fRV1rqlDqA5YRe8XQY0pRTV5CZeiZiMWpQENYcFwu8wZ6Hp0Ozz804+5u8NXlTmJu1rNDF1WVicI76Osr6Kmc82JLURTHjBmKGe4CDoCTHTGNv0CBKdvEBlBiNX+W8Fvg2ZY1Tpt0/ewkfNS7gQQ1B6zNvLSOwJq7Ktn2tU2V2ZfnNj9hqeutmZaW+KIUT8TE0OltSIhhkog0VY3e6eopFaDksjyWMQ7FtwQK5c/ZdigEJVnYBmc9b8+JTWDG7YAeW/SQu69mVI=;5:6ZAeTIVACo3QdBcu7jONYroVRXddDFkuvLMpq87sr/IY3bem50+4eQu3eGcxYi6Rs615qshIMSchW7bN3eIug/j3huwSGMSr6WNkMDgOGOeIRBKRHdAf3C4/QVYqUF7W8sHqWL9Xo6UOhV+lH9pgIg==;24:eAMpmUdKSy+mYC5fsVX+ZJVVjNC9Ph4RxP1jpig8nagMRtuX6zDEAGlEbhEvjEMzLZGPCRkan0s2DXwWIK3b3CBUhVx1VE2BKoiWqN41ZSI=;7:F2aCIAZlt+zOu6V1YnxsYGWocj1Ri9ylVqJAF65BHAr/F7JuxgTUrW8m/yFZnPawpOYfKvLsJwyPlgrMIqXomCJazS+7pmLxJZI5fO6CapHqKTBU6juspYLkcAljVf6Ku2/NtpEMFI/IkulyliGvxwB92piwHh9U4/0kouYKByrzOs5tV7CJCPkUVcimxrI80ohMh9FB2lq3rWFLeQluR8mf6Dz7WON/5xoTYgaoVyN55vus0hxP1v2F7IAGaEPsMXzSOqF9azZR8ydZ9xmrEQ== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2016 21:39:02.5558 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0401MB1853 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org support GPMI NAND on i.MX7D Signed-off-by: Han Xu --- drivers/mtd/nand/gpmi-nand/bch-regs.h | 14 +++++++------- drivers/mtd/nand/gpmi-nand/gpmi-lib.c | 10 ++++++---- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 30 ++++++++++++++++++++++++------ drivers/mtd/nand/gpmi-nand/gpmi-nand.h | 7 +++++-- 4 files changed, 42 insertions(+), 19 deletions(-) diff --git a/drivers/mtd/nand/gpmi-nand/bch-regs.h b/drivers/mtd/nand/gpmi-nand/bch-regs.h index 05bb91f..228142c 100644 --- a/drivers/mtd/nand/gpmi-nand/bch-regs.h +++ b/drivers/mtd/nand/gpmi-nand/bch-regs.h @@ -1,7 +1,7 @@ /* * Freescale GPMI NAND Flash Driver * - * Copyright 2008-2011 Freescale Semiconductor, Inc. + * Copyright 2008-2016 Freescale Semiconductor, Inc. * Copyright 2008 Embedded Alley Solutions, Inc. * * This program is free software; you can redistribute it and/or modify @@ -54,7 +54,7 @@ #define MX6Q_BP_BCH_FLASH0LAYOUT0_ECC0 11 #define MX6Q_BM_BCH_FLASH0LAYOUT0_ECC0 (0x1f << MX6Q_BP_BCH_FLASH0LAYOUT0_ECC0) #define BF_BCH_FLASH0LAYOUT0_ECC0(v, x) \ - (GPMI_IS_MX6(x) \ + ((GPMI_IS_MX6(x) || GPMI_IS_MX7(x)) \ ? (((v) << MX6Q_BP_BCH_FLASH0LAYOUT0_ECC0) \ & MX6Q_BM_BCH_FLASH0LAYOUT0_ECC0) \ : (((v) << BP_BCH_FLASH0LAYOUT0_ECC0) \ @@ -65,7 +65,7 @@ #define MX6Q_BM_BCH_FLASH0LAYOUT0_GF_13_14 \ (0x1 << MX6Q_BP_BCH_FLASH0LAYOUT0_GF_13_14) #define BF_BCH_FLASH0LAYOUT0_GF(v, x) \ - ((GPMI_IS_MX6(x) && ((v) == 14)) \ + (((GPMI_IS_MX6(x) || GPMI_IS_MX7(x)) && ((v) == 14)) \ ? (((1) << MX6Q_BP_BCH_FLASH0LAYOUT0_GF_13_14) \ & MX6Q_BM_BCH_FLASH0LAYOUT0_GF_13_14) \ : 0 \ @@ -77,7 +77,7 @@ #define MX6Q_BM_BCH_FLASH0LAYOUT0_DATA0_SIZE \ (0x3ff << BP_BCH_FLASH0LAYOUT0_DATA0_SIZE) #define BF_BCH_FLASH0LAYOUT0_DATA0_SIZE(v, x) \ - (GPMI_IS_MX6(x) \ + ((GPMI_IS_MX6(x) || GPMI_IS_MX7(x)) \ ? (((v) >> 2) & MX6Q_BM_BCH_FLASH0LAYOUT0_DATA0_SIZE) \ : ((v) & BM_BCH_FLASH0LAYOUT0_DATA0_SIZE) \ ) @@ -96,7 +96,7 @@ #define MX6Q_BP_BCH_FLASH0LAYOUT1_ECCN 11 #define MX6Q_BM_BCH_FLASH0LAYOUT1_ECCN (0x1f << MX6Q_BP_BCH_FLASH0LAYOUT1_ECCN) #define BF_BCH_FLASH0LAYOUT1_ECCN(v, x) \ - (GPMI_IS_MX6(x) \ + ((GPMI_IS_MX6(x) || GPMI_IS_MX7(x)) \ ? (((v) << MX6Q_BP_BCH_FLASH0LAYOUT1_ECCN) \ & MX6Q_BM_BCH_FLASH0LAYOUT1_ECCN) \ : (((v) << BP_BCH_FLASH0LAYOUT1_ECCN) \ @@ -107,7 +107,7 @@ #define MX6Q_BM_BCH_FLASH0LAYOUT1_GF_13_14 \ (0x1 << MX6Q_BP_BCH_FLASH0LAYOUT1_GF_13_14) #define BF_BCH_FLASH0LAYOUT1_GF(v, x) \ - ((GPMI_IS_MX6(x) && ((v) == 14)) \ + (((GPMI_IS_MX6(x) || GPMI_IS_MX7(x)) && ((v) == 14)) \ ? (((1) << MX6Q_BP_BCH_FLASH0LAYOUT1_GF_13_14) \ & MX6Q_BM_BCH_FLASH0LAYOUT1_GF_13_14) \ : 0 \ @@ -119,7 +119,7 @@ #define MX6Q_BM_BCH_FLASH0LAYOUT1_DATAN_SIZE \ (0x3ff << BP_BCH_FLASH0LAYOUT1_DATAN_SIZE) #define BF_BCH_FLASH0LAYOUT1_DATAN_SIZE(v, x) \ - (GPMI_IS_MX6(x) \ + ((GPMI_IS_MX6(x) || GPMI_IS_MX7(x)) \ ? (((v) >> 2) & MX6Q_BM_BCH_FLASH0LAYOUT1_DATAN_SIZE) \ : ((v) & BM_BCH_FLASH0LAYOUT1_DATAN_SIZE) \ ) diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c index 0f68a99..358ff5d 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c @@ -1,7 +1,7 @@ /* * Freescale GPMI NAND Flash Driver * - * Copyright (C) 2008-2011 Freescale Semiconductor, Inc. + * Copyright (C) 2008-2016 Freescale Semiconductor, Inc. * Copyright (C) 2008 Embedded Alley Solutions, Inc. * * This program is free software; you can redistribute it and/or modify @@ -971,7 +971,8 @@ int gpmi_extra_init(struct gpmi_nand_data *this) struct nand_chip *chip = &this->nand; /* Enable the asynchronous EDO feature. */ - if (GPMI_IS_MX6(this) && chip->onfi_version) { + if ((GPMI_IS_MX6(this) || GPMI_IS_MX7(this)) && + chip->onfi_version) { int mode = onfi_get_async_timing_mode(chip); /* We only support the timing mode 4 and mode 5. */ @@ -1093,12 +1094,13 @@ int gpmi_is_ready(struct gpmi_nand_data *this, unsigned chip) if (GPMI_IS_MX23(this)) { mask = MX23_BM_GPMI_DEBUG_READY0 << chip; reg = readl(r->gpmi_regs + HW_GPMI_DEBUG); - } else if (GPMI_IS_MX28(this) || GPMI_IS_MX6(this)) { + } else if (GPMI_IS_MX28(this) || GPMI_IS_MX6(this) || + GPMI_IS_MX7(this)) { /* * In the imx6, all the ready/busy pins are bound * together. So we only need to check chip 0. */ - if (GPMI_IS_MX6(this)) + if (GPMI_IS_MX6(this) || GPMI_IS_MX7(this)) chip = 0; /* MX28 shares the same R/B register as MX6Q. */ diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c index 6e46156..a8936fd 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c @@ -1,7 +1,7 @@ /* * Freescale GPMI NAND Flash Driver * - * Copyright (C) 2010-2015 Freescale Semiconductor, Inc. + * Copyright (C) 2010-2016 Freescale Semiconductor, Inc. * Copyright (C) 2008 Embedded Alley Solutions, Inc. * * This program is free software; you can redistribute it and/or modify @@ -110,6 +110,12 @@ static const struct gpmi_devdata gpmi_devdata_imx6sx = { .max_chain_delay = 12, }; +static const struct gpmi_devdata gpmi_devdata_imx7d = { + .type = IS_MX7D, + .bch_max_ecc_strength = 62, + .max_chain_delay = 12, +}; + static irqreturn_t bch_irq(int irq, void *cookie) { struct gpmi_nand_data *this = cookie; @@ -601,6 +607,10 @@ static char *extra_clks_for_mx6q[GPMI_CLK_MAX] = { "gpmi_apb", "gpmi_bch", "gpmi_bch_apb", "per1_bch", }; +static char *extra_clks_for_mx7d[GPMI_CLK_MAX] = { + "gpmi_bch_apb", +}; + static int gpmi_get_clks(struct gpmi_nand_data *this) { struct resources *r = &this->resources; @@ -618,6 +628,8 @@ static int gpmi_get_clks(struct gpmi_nand_data *this) /* Get extra clocks */ if (GPMI_IS_MX6(this)) extra_clks = extra_clks_for_mx6q; + if (GPMI_IS_MX7(this)) + extra_clks = extra_clks_for_mx7d; if (!extra_clks) return 0; @@ -634,7 +646,7 @@ static int gpmi_get_clks(struct gpmi_nand_data *this) r->clock[i] = clk; } - if (GPMI_IS_MX6(this)) + if (GPMI_IS_MX6(this) || GPMI_IS_MX7(this)) /* * Set the default value for the gpmi clock. * @@ -1965,8 +1977,8 @@ static int gpmi_init_last(struct gpmi_nand_data *this) * (1) the chip is imx6, and * (2) the size of the ECC parity is byte aligned. */ - if (GPMI_IS_MX6(this) && - ((bch_geo->gf_len * bch_geo->ecc_strength) % 8) == 0) { + if ((GPMI_IS_MX6(this) || GPMI_IS_MX7(this)) && + ((bch_geo->gf_len * bch_geo->ecc_strength) % 8) == 0) { ecc->read_subpage = gpmi_ecc_read_subpage; chip->options |= NAND_SUBPAGE_READ; } @@ -1987,6 +1999,7 @@ static int gpmi_nand_init(struct gpmi_nand_data *this) struct nand_chip *chip = &this->nand; struct mtd_info *mtd = nand_to_mtd(chip); int ret; + int max_chips; /* init current chip */ this->current_chip = -1; @@ -2021,7 +2034,8 @@ static int gpmi_nand_init(struct gpmi_nand_data *this) if (ret) goto err_out; - ret = nand_scan_ident(mtd, GPMI_IS_MX6(this) ? 2 : 1, NULL); + max_chips = (GPMI_IS_MX6(this) || GPMI_IS_MX7(this)) ? 2 : 1; + ret = nand_scan_ident(mtd, max_chips, NULL); if (ret) goto err_out; @@ -2074,7 +2088,11 @@ static const struct of_device_id gpmi_nand_id_table[] = { }, { .compatible = "fsl,imx6sx-gpmi-nand", .data = &gpmi_devdata_imx6sx, - }, {} + }, { + .compatible = "fsl,imx7d-gpmi-nand", + .data = &gpmi_devdata_imx7d, + }, { /* sentinel */ } + }; MODULE_DEVICE_TABLE(of, gpmi_nand_id_table); diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h index 4e49a1f..04a3584 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.h +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.h @@ -1,7 +1,7 @@ /* * Freescale GPMI NAND Flash Driver * - * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. + * Copyright (C) 2010-2016 Freescale Semiconductor, Inc. * Copyright (C) 2008 Embedded Alley Solutions, Inc. * * This program is free software; you can redistribute it and/or modify @@ -123,7 +123,8 @@ enum gpmi_type { IS_MX23, IS_MX28, IS_MX6Q, - IS_MX6SX + IS_MX6SX, + IS_MX7D, }; struct gpmi_devdata { @@ -305,6 +306,8 @@ void gpmi_copy_bits(u8 *dst, size_t dst_bit_off, #define GPMI_IS_MX28(x) ((x)->devdata->type == IS_MX28) #define GPMI_IS_MX6Q(x) ((x)->devdata->type == IS_MX6Q) #define GPMI_IS_MX6SX(x) ((x)->devdata->type == IS_MX6SX) +#define GPMI_IS_MX7D(x) ((x)->devdata->type == IS_MX7D) #define GPMI_IS_MX6(x) (GPMI_IS_MX6Q(x) || GPMI_IS_MX6SX(x)) +#define GPMI_IS_MX7(x) (GPMI_IS_MX7D(x)) #endif -- 1.9.1