diff mbox

[PATCHv2,1/3] ARM: OMAP2+: Remove legacy gpmc-nand.c

Message ID 20170221094445.4u57nyj2e5cm5jhp@lenoch (mailing list archive)
State New, archived
Headers show

Commit Message

Ladislav Michl Feb. 21, 2017, 9:44 a.m. UTC
This code is no longer used and can be removed as we
are using device tree.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
---
Changes:
 split patch per Rogers' suggestion

 arch/arm/mach-omap2/Makefile    |   3 -
 arch/arm/mach-omap2/gpmc-nand.c | 154 ----------------------------------------
 2 files changed, 157 deletions(-)

Comments

Roger Quadros March 30, 2017, 6:55 a.m. UTC | #1
On 21/02/17 11:44, Ladislav Michl wrote:
> This code is no longer used and can be removed as we
> are using device tree.
> 
> Signed-off-by: Ladislav Michl <ladis@linux-mips.org>

Acked-by: Roger Quadros <rogerq@ti.com>

Ladislav,
Is this the only patch remaining to be picked from this series or are there more?
If there are more it would be nice if you can send them in a fresh thread. Thanks.

cheers,
-roger

> ---
> Changes:
>  split patch per Rogers' suggestion
> 
>  arch/arm/mach-omap2/Makefile    |   3 -
>  arch/arm/mach-omap2/gpmc-nand.c | 154 ----------------------------------------
>  2 files changed, 157 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
> index 093458b62c8d..c89757abb0ae 100644
> --- a/arch/arm/mach-omap2/Makefile
> +++ b/arch/arm/mach-omap2/Makefile
> @@ -241,6 +241,3 @@ obj-$(CONFIG_MACH_OMAP2_TUSB6010)	+= usb-tusb6010.o
>  
>  onenand-$(CONFIG_MTD_ONENAND_OMAP2)	:= gpmc-onenand.o
>  obj-y					+= $(onenand-m) $(onenand-y)
> -
> -nand-$(CONFIG_MTD_NAND_OMAP2)		:= gpmc-nand.o
> -obj-y					+= $(nand-m) $(nand-y)
> diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
> deleted file mode 100644
> index f6ac027f3c3b..000000000000
> --- a/arch/arm/mach-omap2/gpmc-nand.c
> +++ /dev/null
> @@ -1,154 +0,0 @@
> -/*
> - * gpmc-nand.c
> - *
> - * Copyright (C) 2009 Texas Instruments
> - * Vimal Singh <vimalsingh@ti.com>
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 as
> - * published by the Free Software Foundation.
> - */
> -
> -#include <linux/kernel.h>
> -#include <linux/platform_device.h>
> -#include <linux/io.h>
> -#include <linux/omap-gpmc.h>
> -#include <linux/mtd/nand.h>
> -#include <linux/platform_data/mtd-nand-omap2.h>
> -
> -#include <asm/mach/flash.h>
> -
> -#include "soc.h"
> -
> -/* minimum size for IO mapping */
> -#define	NAND_IO_SIZE	4
> -
> -static bool gpmc_hwecc_bch_capable(enum omap_ecc ecc_opt)
> -{
> -	/* platforms which support all ECC schemes */
> -	if (soc_is_am33xx() || soc_is_am43xx() || cpu_is_omap44xx() ||
> -		 soc_is_omap54xx() || soc_is_dra7xx())
> -		return 1;
> -
> -	if (ecc_opt == OMAP_ECC_BCH4_CODE_HW_DETECTION_SW ||
> -		 ecc_opt == OMAP_ECC_BCH8_CODE_HW_DETECTION_SW) {
> -		if (cpu_is_omap24xx())
> -			return 0;
> -		else if (cpu_is_omap3630() && (GET_OMAP_REVISION() == 0))
> -			return 0;
> -		else
> -			return 1;
> -	}
> -
> -	/* OMAP3xxx do not have ELM engine, so cannot support ECC schemes
> -	 * which require H/W based ECC error detection */
> -	if ((cpu_is_omap34xx() || cpu_is_omap3630()) &&
> -	    ((ecc_opt == OMAP_ECC_BCH4_CODE_HW) ||
> -		 (ecc_opt == OMAP_ECC_BCH8_CODE_HW)))
> -		return 0;
> -
> -	/* legacy platforms support only HAM1 (1-bit Hamming) ECC scheme */
> -	if (ecc_opt == OMAP_ECC_HAM1_CODE_HW ||
> -	    ecc_opt == OMAP_ECC_HAM1_CODE_SW)
> -		return 1;
> -	else
> -		return 0;
> -}
> -
> -/* This function will go away once the device-tree convertion is complete */
> -static void gpmc_set_legacy(struct omap_nand_platform_data *gpmc_nand_data,
> -			    struct gpmc_settings *s)
> -{
> -	/* Enable RD PIN Monitoring Reg */
> -	if (gpmc_nand_data->dev_ready) {
> -		s->wait_on_read = true;
> -		s->wait_on_write = true;
> -	}
> -
> -	if (gpmc_nand_data->devsize == NAND_BUSWIDTH_16)
> -		s->device_width = GPMC_DEVWIDTH_16BIT;
> -	else
> -		s->device_width = GPMC_DEVWIDTH_8BIT;
> -}
> -
> -int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data,
> -		   struct gpmc_timings *gpmc_t)
> -{
> -	int err	= 0;
> -	struct gpmc_settings s;
> -	struct platform_device *pdev;
> -	struct resource gpmc_nand_res[] = {
> -		{ .flags = IORESOURCE_MEM, },
> -		{ .flags = IORESOURCE_IRQ, },
> -		{ .flags = IORESOURCE_IRQ, },
> -	};
> -
> -	BUG_ON(gpmc_nand_data->cs >= GPMC_CS_NUM);
> -
> -	err = gpmc_cs_request(gpmc_nand_data->cs, NAND_IO_SIZE,
> -			      (unsigned long *)&gpmc_nand_res[0].start);
> -	if (err < 0) {
> -		pr_err("omap2-gpmc: Cannot request GPMC CS %d, error %d\n",
> -		       gpmc_nand_data->cs, err);
> -		return err;
> -	}
> -	gpmc_nand_res[0].end = gpmc_nand_res[0].start + NAND_IO_SIZE - 1;
> -	gpmc_nand_res[1].start = gpmc_get_client_irq(GPMC_IRQ_FIFOEVENTENABLE);
> -	gpmc_nand_res[2].start = gpmc_get_client_irq(GPMC_IRQ_COUNT_EVENT);
> -
> -	memset(&s, 0, sizeof(struct gpmc_settings));
> -	gpmc_set_legacy(gpmc_nand_data, &s);
> -
> -	s.device_nand = true;
> -
> -	if (gpmc_t) {
> -		err = gpmc_cs_set_timings(gpmc_nand_data->cs, gpmc_t, &s);
> -		if (err < 0) {
> -			pr_err("omap2-gpmc: Unable to set gpmc timings: %d\n",
> -			       err);
> -			return err;
> -		}
> -	}
> -
> -	err = gpmc_cs_program_settings(gpmc_nand_data->cs, &s);
> -	if (err < 0)
> -		goto out_free_cs;
> -
> -	err = gpmc_configure(GPMC_CONFIG_WP, 0);
> -	if (err < 0)
> -		goto out_free_cs;
> -
> -	if (!gpmc_hwecc_bch_capable(gpmc_nand_data->ecc_opt)) {
> -		pr_err("omap2-nand: Unsupported NAND ECC scheme selected\n");
> -		err = -EINVAL;
> -		goto out_free_cs;
> -	}
> -
> -
> -	pdev = platform_device_alloc("omap2-nand", gpmc_nand_data->cs);
> -	if (pdev) {
> -		err = platform_device_add_resources(pdev, gpmc_nand_res,
> -						    ARRAY_SIZE(gpmc_nand_res));
> -		if (!err)
> -			pdev->dev.platform_data = gpmc_nand_data;
> -	} else {
> -		err = -ENOMEM;
> -	}
> -	if (err)
> -		goto out_free_pdev;
> -
> -	err = platform_device_add(pdev);
> -	if (err) {
> -		dev_err(&pdev->dev, "Unable to register NAND device\n");
> -		goto out_free_pdev;
> -	}
> -
> -	return 0;
> -
> -out_free_pdev:
> -	platform_device_put(pdev);
> -out_free_cs:
> -	gpmc_cs_free(gpmc_nand_data->cs);
> -
> -	return err;
> -}
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ladislav Michl March 31, 2017, 8:27 a.m. UTC | #2
On Thu, Mar 30, 2017 at 09:55:30AM +0300, Roger Quadros wrote:
> On 21/02/17 11:44, Ladislav Michl wrote:
> > This code is no longer used and can be removed as we
> > are using device tree.
> > 
> > Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
> 
> Acked-by: Roger Quadros <rogerq@ti.com>
> 
> Ladislav,
> Is this the only patch remaining to be picked from this series or are there more?
> If there are more it would be nice if you can send them in a fresh thread. Thanks.

There are few more and I will resend them (omiting this one, right?)

	ladis
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Roger Quadros March 31, 2017, 8:55 a.m. UTC | #3
On 31/03/17 11:27, Ladislav Michl wrote:
> On Thu, Mar 30, 2017 at 09:55:30AM +0300, Roger Quadros wrote:
>> On 21/02/17 11:44, Ladislav Michl wrote:
>>> This code is no longer used and can be removed as we
>>> are using device tree.
>>>
>>> Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
>>
>> Acked-by: Roger Quadros <rogerq@ti.com>
>>
>> Ladislav,
>> Is this the only patch remaining to be picked from this series or are there more?
>> If there are more it would be nice if you can send them in a fresh thread. Thanks.
> 
> There are few more and I will resend them (omiting this one, right?)

I think it is better that you include this one in the new thread.

cheers,
-roger
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 093458b62c8d..c89757abb0ae 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -241,6 +241,3 @@  obj-$(CONFIG_MACH_OMAP2_TUSB6010)	+= usb-tusb6010.o
 
 onenand-$(CONFIG_MTD_ONENAND_OMAP2)	:= gpmc-onenand.o
 obj-y					+= $(onenand-m) $(onenand-y)
-
-nand-$(CONFIG_MTD_NAND_OMAP2)		:= gpmc-nand.o
-obj-y					+= $(nand-m) $(nand-y)
diff --git a/arch/arm/mach-omap2/gpmc-nand.c b/arch/arm/mach-omap2/gpmc-nand.c
deleted file mode 100644
index f6ac027f3c3b..000000000000
--- a/arch/arm/mach-omap2/gpmc-nand.c
+++ /dev/null
@@ -1,154 +0,0 @@ 
-/*
- * gpmc-nand.c
- *
- * Copyright (C) 2009 Texas Instruments
- * Vimal Singh <vimalsingh@ti.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/kernel.h>
-#include <linux/platform_device.h>
-#include <linux/io.h>
-#include <linux/omap-gpmc.h>
-#include <linux/mtd/nand.h>
-#include <linux/platform_data/mtd-nand-omap2.h>
-
-#include <asm/mach/flash.h>
-
-#include "soc.h"
-
-/* minimum size for IO mapping */
-#define	NAND_IO_SIZE	4
-
-static bool gpmc_hwecc_bch_capable(enum omap_ecc ecc_opt)
-{
-	/* platforms which support all ECC schemes */
-	if (soc_is_am33xx() || soc_is_am43xx() || cpu_is_omap44xx() ||
-		 soc_is_omap54xx() || soc_is_dra7xx())
-		return 1;
-
-	if (ecc_opt == OMAP_ECC_BCH4_CODE_HW_DETECTION_SW ||
-		 ecc_opt == OMAP_ECC_BCH8_CODE_HW_DETECTION_SW) {
-		if (cpu_is_omap24xx())
-			return 0;
-		else if (cpu_is_omap3630() && (GET_OMAP_REVISION() == 0))
-			return 0;
-		else
-			return 1;
-	}
-
-	/* OMAP3xxx do not have ELM engine, so cannot support ECC schemes
-	 * which require H/W based ECC error detection */
-	if ((cpu_is_omap34xx() || cpu_is_omap3630()) &&
-	    ((ecc_opt == OMAP_ECC_BCH4_CODE_HW) ||
-		 (ecc_opt == OMAP_ECC_BCH8_CODE_HW)))
-		return 0;
-
-	/* legacy platforms support only HAM1 (1-bit Hamming) ECC scheme */
-	if (ecc_opt == OMAP_ECC_HAM1_CODE_HW ||
-	    ecc_opt == OMAP_ECC_HAM1_CODE_SW)
-		return 1;
-	else
-		return 0;
-}
-
-/* This function will go away once the device-tree convertion is complete */
-static void gpmc_set_legacy(struct omap_nand_platform_data *gpmc_nand_data,
-			    struct gpmc_settings *s)
-{
-	/* Enable RD PIN Monitoring Reg */
-	if (gpmc_nand_data->dev_ready) {
-		s->wait_on_read = true;
-		s->wait_on_write = true;
-	}
-
-	if (gpmc_nand_data->devsize == NAND_BUSWIDTH_16)
-		s->device_width = GPMC_DEVWIDTH_16BIT;
-	else
-		s->device_width = GPMC_DEVWIDTH_8BIT;
-}
-
-int gpmc_nand_init(struct omap_nand_platform_data *gpmc_nand_data,
-		   struct gpmc_timings *gpmc_t)
-{
-	int err	= 0;
-	struct gpmc_settings s;
-	struct platform_device *pdev;
-	struct resource gpmc_nand_res[] = {
-		{ .flags = IORESOURCE_MEM, },
-		{ .flags = IORESOURCE_IRQ, },
-		{ .flags = IORESOURCE_IRQ, },
-	};
-
-	BUG_ON(gpmc_nand_data->cs >= GPMC_CS_NUM);
-
-	err = gpmc_cs_request(gpmc_nand_data->cs, NAND_IO_SIZE,
-			      (unsigned long *)&gpmc_nand_res[0].start);
-	if (err < 0) {
-		pr_err("omap2-gpmc: Cannot request GPMC CS %d, error %d\n",
-		       gpmc_nand_data->cs, err);
-		return err;
-	}
-	gpmc_nand_res[0].end = gpmc_nand_res[0].start + NAND_IO_SIZE - 1;
-	gpmc_nand_res[1].start = gpmc_get_client_irq(GPMC_IRQ_FIFOEVENTENABLE);
-	gpmc_nand_res[2].start = gpmc_get_client_irq(GPMC_IRQ_COUNT_EVENT);
-
-	memset(&s, 0, sizeof(struct gpmc_settings));
-	gpmc_set_legacy(gpmc_nand_data, &s);
-
-	s.device_nand = true;
-
-	if (gpmc_t) {
-		err = gpmc_cs_set_timings(gpmc_nand_data->cs, gpmc_t, &s);
-		if (err < 0) {
-			pr_err("omap2-gpmc: Unable to set gpmc timings: %d\n",
-			       err);
-			return err;
-		}
-	}
-
-	err = gpmc_cs_program_settings(gpmc_nand_data->cs, &s);
-	if (err < 0)
-		goto out_free_cs;
-
-	err = gpmc_configure(GPMC_CONFIG_WP, 0);
-	if (err < 0)
-		goto out_free_cs;
-
-	if (!gpmc_hwecc_bch_capable(gpmc_nand_data->ecc_opt)) {
-		pr_err("omap2-nand: Unsupported NAND ECC scheme selected\n");
-		err = -EINVAL;
-		goto out_free_cs;
-	}
-
-
-	pdev = platform_device_alloc("omap2-nand", gpmc_nand_data->cs);
-	if (pdev) {
-		err = platform_device_add_resources(pdev, gpmc_nand_res,
-						    ARRAY_SIZE(gpmc_nand_res));
-		if (!err)
-			pdev->dev.platform_data = gpmc_nand_data;
-	} else {
-		err = -ENOMEM;
-	}
-	if (err)
-		goto out_free_pdev;
-
-	err = platform_device_add(pdev);
-	if (err) {
-		dev_err(&pdev->dev, "Unable to register NAND device\n");
-		goto out_free_pdev;
-	}
-
-	return 0;
-
-out_free_pdev:
-	platform_device_put(pdev);
-out_free_cs:
-	gpmc_cs_free(gpmc_nand_data->cs);
-
-	return err;
-}