Skip to contentSkip to conversation

mtd: nand: davinci: add header file for driver definitions

PATCH New Ivan Khoronzhuk 2 participants 3 messages May 29, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mtd: nand: davinci: add header file for driver definitions

The definitions inside emif_defs.h concern davinci nand driver and should be in it's header. So create header file for davinci nand driver and move definitions from emif_defs.h to it.

---
 arch/arm/cpu/armv7/keystone/aemif.c                |  2 +-
 arch/arm/include/asm/arch-keystone/aemif.h         | 16 ++++++++++
 arch/arm/include/asm/arch-keystone/nand_defs.h     | 23 --------------
 drivers/mtd/nand/davinci_nand.c                    |  3 +-
 .../emif_defs.h => drivers/mtd/nand/davinci_nand.h | 35 +++++++++-------------
 5 files changed, 32 insertions(+), 47 deletions(-)
 create mode 100644 arch/arm/include/asm/arch-keystone/aemif.h
 delete mode 100644 arch/arm/include/asm/arch-keystone/nand_defs.h
 rename arch/arm/include/asm/arch-keystone/emif_defs.h => drivers/mtd/nand/davinci_nand.h (57%)
arch/arm/cpu/armv7/keystone/aemif.c +1 -1
index 9b26886..9ba1549 100644
@@ -10,7 +10,7 @@
 #include <common.h>
 #include <asm/io.h>
 #include <asm/arch/clock.h>
-#include <asm/arch/emif_defs.h>
+#include <../drivers/mtd/nand/davinci_nand.h>
 
 #define AEMIF_CFG_SELECT_STROBE(v)	((v) ? 1 << 31 : 0)
 #define AEMIF_CFG_EXTEND_WAIT(v)	((v) ? 1 << 30 : 0)
arch/arm/include/asm/arch-keystone/aemif.h new file +16 -0
new file mode 100644
index 0000000..2dac747
@@ -0,0 +1,16 @@
+/*
+ * emif definitions to re-use davinci emif driver on Keystone2
+ *
+ * (C) Copyright 2012-2014
+ *     Texas Instruments Incorporated, <www.ti.com>
+ * (C) Copyright 2007 Sergey Kubushyn <[email protected]>
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+#ifndef _AEMIF_H_
+#define _AEMIF_H_
+
+#include <asm/arch/hardware.h>
+
+
+#endif
arch/arm/include/asm/arch-keystone/nand_defs.h deleted +0 -23
deleted file mode 100644
index 58417db..0000000
@@ -1,23 +0,0 @@
-/*
- * nand driver definitions to re-use davinci nand driver on Keystone2
- *
- * (C) Copyright 2012-2014
- *     Texas Instruments Incorporated, <www.ti.com>
- * (C) Copyright 2007 Sergey Kubushyn <[email protected]>
- *
- * SPDX-License-Identifier:     GPL-2.0+
- */
-#ifndef _NAND_DEFS_H_
-#define _NAND_DEFS_H_
-
-#include <asm/arch/hardware.h>
-#include <linux/mtd/nand.h>
-
-#define MASK_CLE         0x4000
-#define	MASK_ALE         0x2000
-
-#define NAND_READ_START  0x00
-#define NAND_READ_END    0x30
-#define NAND_STATUS      0x70
-
-#endif
drivers/mtd/nand/davinci_nand.c +1 -2
index 75b03a7..bacf1f1 100644
@@ -32,8 +32,7 @@
 #include <common.h>
 #include <asm/io.h>
 #include <nand.h>
-#include <asm/arch/nand_defs.h>
-#include <asm/arch/emif_defs.h>
+#include "davinci_nand.h"
 
 /* Definitions for 4-bit hardware ECC */
 #define NAND_TIMEOUT			10240
drivers/mtd/nand/davinci_nand.h renamed from arch/arm/include/asm/arch-keystone/emif_defs.h +14 -21
similarity index 57%
rename from arch/arm/include/asm/arch-keystone/emif_defs.h
rename to drivers/mtd/nand/davinci_nand.h
index a3378aa..db8d896 100644
@@ -1,16 +1,22 @@
 /*
- * emif definitions to re-use davinci emif driver on Keystone2
+ * NAND Flash Driver
  *
- * (C) Copyright 2012-2014
- *     Texas Instruments Incorporated, <www.ti.com>
- * (C) Copyright 2007 Sergey Kubushyn <[email protected]>
+ * Copyright (C) 2006-2014 Texas Instruments.
  *
- * SPDX-License-Identifier:     GPL-2.0+
+ * Based on Linux DaVinci NAND driver by TI.
  */
-#ifndef _EMIF_DEFS_H_
-#define _EMIF_DEFS_H_
 
-#include <asm/arch/hardware.h>
+#ifndef _DAVINCI_NAND_H_
+#define _DAVINCI_NAND_H_
+
+#include <linux/mtd/nand.h>
+
+#define MASK_CLE         	0x4000
+#define	MASK_ALE         	0x2000
+
+#define NAND_READ_START  	0x00
+#define NAND_READ_END    	0x30
+#define NAND_STATUS      	0x70
 
 struct davinci_emif_regs {
 	uint32_t	ercsr;
@@ -57,17 +63,4 @@ struct davinci_emif_regs {
 #define DAVINCI_NANDFCR_4BIT_ECC_START			(1 << 12)
 #define DAVINCI_NANDFCR_4BIT_CALC_START			(1 << 13)
 
-/* Chip Select setup */
-#define DAVINCI_ABCR_STROBE_SELECT			(1 << 31)
-#define DAVINCI_ABCR_EXT_WAIT				(1 << 30)
-#define DAVINCI_ABCR_WSETUP(n)				((n) << 26)
-#define DAVINCI_ABCR_WSTROBE(n)				((n) << 20)
-#define DAVINCI_ABCR_WHOLD(n)				((n) << 17)
-#define DAVINCI_ABCR_RSETUP(n)				((n) << 13)
-#define DAVINCI_ABCR_RSTROBE(n)				((n) << 7)
-#define DAVINCI_ABCR_RHOLD(n)				((n) << 4)
-#define DAVINCI_ABCR_TA(n)				((n) << 2)
-#define DAVINCI_ABCR_ASIZE_16BIT			1
-#define DAVINCI_ABCR_ASIZE_8BIT				0
-
 #endif
Signature · 1 line
1.8.3.2
#1 lore raw

PATCH 1/1 mtd: nand: davinci: add header file for driver definitions

Quoted 3 lines · Ivan Khoronzhuk

The definitions inside emif_defs.h concern davinci nand driver and should be in it's header. So create header file for davinci nand driver and move definitions from emif_defs.h to it.

Ivan,

It is difficult to see what is done here. Can you rename the file in a separate patch?
Do it similar to what is done in kernel where aemif driver concerns with bus configuration
and nand drivers concerns with NAND part of the EMIF driver.

Quoted 147 lines
---
  arch/arm/cpu/armv7/keystone/aemif.c                |  2 +-
  arch/arm/include/asm/arch-keystone/aemif.h         | 16 ++++++++++
  arch/arm/include/asm/arch-keystone/nand_defs.h     | 23 --------------
  drivers/mtd/nand/davinci_nand.c                    |  3 +-
  .../emif_defs.h => drivers/mtd/nand/davinci_nand.h | 35 +++++++++-------------
  5 files changed, 32 insertions(+), 47 deletions(-)

create mode 100644 arch/arm/include/asm/arch-keystone/aemif.h
delete mode 100644 arch/arm/include/asm/arch-keystone/nand_defs.h
rename arch/arm/include/asm/arch-keystone/emif_defs.h => drivers/mtd/nand/davinci_nand.h (57%)

arch/arm/cpu/armv7/keystone/aemif.c +1 -1
index 9b26886..9ba1549 100644
@@ -10,7 +10,7 @@
  #include <common.h>
  #include <asm/io.h>
  #include <asm/arch/clock.h>
-#include <asm/arch/emif_defs.h>
+#include <../drivers/mtd/nand/davinci_nand.h>
 
  #define AEMIF_CFG_SELECT_STROBE(v)	((v) ? 1 << 31 : 0)
  #define AEMIF_CFG_EXTEND_WAIT(v)	((v) ? 1 << 30 : 0)
arch/arm/include/asm/arch-keystone/aemif.h new file +16 -0
new file mode 100644
index 0000000..2dac747
@@ -0,0 +1,16 @@
+/*
+ * emif definitions to re-use davinci emif driver on Keystone2
+ *
+ * (C) Copyright 2012-2014
+ *     Texas Instruments Incorporated, <www.ti.com>
+ * (C) Copyright 2007 Sergey Kubushyn <[email protected]>
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+#ifndef _AEMIF_H_
+#define _AEMIF_H_
+
+#include <asm/arch/hardware.h>
+
+
+#endif
arch/arm/include/asm/arch-keystone/nand_defs.h deleted +0 -23
deleted file mode 100644
index 58417db..0000000
@@ -1,23 +0,0 @@
-/*
- * nand driver definitions to re-use davinci nand driver on Keystone2
- *
- * (C) Copyright 2012-2014
- *     Texas Instruments Incorporated, <www.ti.com>
- * (C) Copyright 2007 Sergey Kubushyn <[email protected]>
- *
- * SPDX-License-Identifier:     GPL-2.0+
- */
-#ifndef _NAND_DEFS_H_
-#define _NAND_DEFS_H_
-
-#include <asm/arch/hardware.h>
-#include <linux/mtd/nand.h>
-
-#define MASK_CLE         0x4000
-#define	MASK_ALE         0x2000
-
-#define NAND_READ_START  0x00
-#define NAND_READ_END    0x30
-#define NAND_STATUS      0x70
-
-#endif
drivers/mtd/nand/davinci_nand.c +1 -2
index 75b03a7..bacf1f1 100644
@@ -32,8 +32,7 @@
  #include <common.h>
  #include <asm/io.h>
  #include <nand.h>
-#include <asm/arch/nand_defs.h>
-#include <asm/arch/emif_defs.h>
+#include "davinci_nand.h"
 
  /* Definitions for 4-bit hardware ECC */
  #define NAND_TIMEOUT			10240
drivers/mtd/nand/davinci_nand.h renamed from arch/arm/include/asm/arch-keystone/emif_defs.h +14 -21
similarity index 57%
rename from arch/arm/include/asm/arch-keystone/emif_defs.h
rename to drivers/mtd/nand/davinci_nand.h
index a3378aa..db8d896 100644
@@ -1,16 +1,22 @@
  /*
- * emif definitions to re-use davinci emif driver on Keystone2
+ * NAND Flash Driver
   *
- * (C) Copyright 2012-2014
- *     Texas Instruments Incorporated, <www.ti.com>
- * (C) Copyright 2007 Sergey Kubushyn <[email protected]>
+ * Copyright (C) 2006-2014 Texas Instruments.
   *
- * SPDX-License-Identifier:     GPL-2.0+
+ * Based on Linux DaVinci NAND driver by TI.
   */
-#ifndef _EMIF_DEFS_H_
-#define _EMIF_DEFS_H_
 
-#include <asm/arch/hardware.h>
+#ifndef _DAVINCI_NAND_H_
+#define _DAVINCI_NAND_H_
+
+#include <linux/mtd/nand.h>
+
+#define MASK_CLE         	0x4000
+#define	MASK_ALE         	0x2000
+
+#define NAND_READ_START  	0x00
+#define NAND_READ_END    	0x30
+#define NAND_STATUS      	0x70
 
  struct davinci_emif_regs {
  	uint32_t	ercsr;
@@ -57,17 +63,4 @@ struct davinci_emif_regs {
  #define DAVINCI_NANDFCR_4BIT_ECC_START			(1 << 12)
  #define DAVINCI_NANDFCR_4BIT_CALC_START			(1 << 13)
 
-/* Chip Select setup */
-#define DAVINCI_ABCR_STROBE_SELECT			(1 << 31)
-#define DAVINCI_ABCR_EXT_WAIT				(1 << 30)
-#define DAVINCI_ABCR_WSETUP(n)				((n) << 26)
-#define DAVINCI_ABCR_WSTROBE(n)				((n) << 20)
-#define DAVINCI_ABCR_WHOLD(n)				((n) << 17)
-#define DAVINCI_ABCR_RSETUP(n)				((n) << 13)
-#define DAVINCI_ABCR_RSTROBE(n)				((n) << 7)
-#define DAVINCI_ABCR_RHOLD(n)				((n) << 4)
-#define DAVINCI_ABCR_TA(n)				((n) << 2)
-#define DAVINCI_ABCR_ASIZE_16BIT			1
-#define DAVINCI_ABCR_ASIZE_8BIT				0
-
  #endif
#2 lore raw

PATCH 1/1 mtd: nand: davinci: add header file for driver definitions

Quoted 11 lines · Murali Karicheri
Quoted 3 lines · Ivan Khoronzhuk

The definitions inside emif_defs.h concern davinci nand driver and should be in it's header. So create header file for davinci nand driver and move definitions from emif_defs.h to it.

Ivan,

It is difficult to see what is done here. Can you rename the file in a separate patch?
Do it similar to what is done in kernel where aemif driver concerns with bus configuration
and nand drivers concerns with NAND part of the EMIF driver.

Yes, you are right.
I think there is no reason to rename it at all, as it'll be deleted in the following patch.
I'll hold it as is and remove it in the patch
"[U-boot] [PATCH] ARM: keystone: aemif: move aemif driver to drivers/memory/ti-aemif.c"

Thanks.

Signature · 2 lines
Regards,
Ivan Khoronzhuk