diff mbox

OMAP: fix gpmc nand setup when no timings supplied

Message ID 4BD695BC.3080109@compulab.co.il (mailing list archive)
State Changes Requested, archived
Delegated to: Tony Lindgren
Headers show

Commit Message

Mike Rapoport April 27, 2010, 7:43 a.m. UTC
None
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/gpmc-nand.c 
b/arch/arm/mach-omap2/gpmc-nand.c
index 64d74f0..65ac0d0 100644
--- a/arch/arm/mach-omap2/gpmc-nand.c
+++ b/arch/arm/mach-omap2/gpmc-nand.c
@@ -34,6 +34,12 @@  static struct platform_device gpmc_nand_device = {
  	.resource	= &gpmc_nand_resource,
  };

+static int gpmc_nand_detect_timings(void)
+{
+	/* FIXME: implement timings detection */
+	return -EINVAL;
+}
+
  static int omap2_nand_gpmc_retime(void)
  {
  	struct gpmc_timings t;
@@ -109,6 +115,14 @@  int __init gpmc_nand_init(struct 
omap_nand_platform_data *_nand_data)
  		return err;
  	}

+	if (gpmc_nand_data->keep_timings) {
+		err = gpmc_nand_detect_timings();
+		if (err < 0) {
+			dev_err(dev, "Cannot detect GPMC timings\n");
+			return err;
+		}
+	}
+
  	err = gpmc_nand_setup();
  	if (err < 0) {
  		dev_err(dev, "NAND platform setup failed: %d\n", err);
diff --git a/arch/arm/plat-omap/include/plat/nand.h 
b/arch/arm/plat-omap/include/plat/nand.h
index 6ba88d2..cf05d2d 100644
--- a/arch/arm/plat-omap/include/plat/nand.h
+++ b/arch/arm/plat-omap/include/plat/nand.h
@@ -24,6 +24,7 @@  struct omap_nand_platform_data {
  	void __iomem		*gpmc_cs_baseaddr;
  	void __iomem		*gpmc_baseaddr;
  	int			devsize;
+	bool			keep_timings;
  };

  /* size (4 KiB) for IO mapping */