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);
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 */