Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
txx9ndfmc.c File Reference
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/nand_ecc.h>
#include <linux/mtd/partitions.h>
#include <linux/io.h>
#include <asm/txx9/ndfmc.h>

Go to the source code of this file.

Data Structures

struct  txx9ndfmc_priv
 
struct  txx9ndfmc_drvdata
 

Macros

#define TXX9_NDFDTR   0x00
 
#define TXX9_NDFMCR   0x04
 
#define TXX9_NDFSR   0x08
 
#define TXX9_NDFISR   0x0c
 
#define TXX9_NDFIMR   0x10
 
#define TXX9_NDFSPR   0x14
 
#define TXX9_NDFRSTR   0x18 /* not TX4939 */
 
#define TXX9_NDFMCR_WE   0x80
 
#define TXX9_NDFMCR_ECC_ALL   0x60
 
#define TXX9_NDFMCR_ECC_RESET   0x60
 
#define TXX9_NDFMCR_ECC_READ   0x40
 
#define TXX9_NDFMCR_ECC_ON   0x20
 
#define TXX9_NDFMCR_ECC_OFF   0x00
 
#define TXX9_NDFMCR_CE   0x10
 
#define TXX9_NDFMCR_BSPRT   0x04 /* TX4925/TX4926 only */
 
#define TXX9_NDFMCR_ALE   0x02
 
#define TXX9_NDFMCR_CLE   0x01
 
#define TXX9_NDFMCR_X16   0x0400
 
#define TXX9_NDFMCR_DMAREQ_MASK   0x0300
 
#define TXX9_NDFMCR_DMAREQ_NODMA   0x0000
 
#define TXX9_NDFMCR_DMAREQ_128   0x0100
 
#define TXX9_NDFMCR_DMAREQ_256   0x0200
 
#define TXX9_NDFMCR_DMAREQ_512   0x0300
 
#define TXX9_NDFMCR_CS_MASK   0x0c
 
#define TXX9_NDFMCR_CS(ch)   ((ch) << 2)
 
#define TXX9_NDFSR_BUSY   0x80
 
#define TXX9_NDFSR_DMARUN   0x40
 
#define TXX9_NDFRSTR_RST   0x01
 
#define MAX_TXX9NDFMC_DEV   4
 
#define TXX9NDFMC_NS_TO_CYC(gbusclk, ns)   DIV_ROUND_UP((ns) * DIV_ROUND_UP(gbusclk, 1000), 1000000)
 
#define txx9ndfmc_resume   NULL
 

Functions

 module_init (txx9ndfmc_init)
 
 module_exit (txx9ndfmc_exit)
 
 MODULE_LICENSE ("GPL")
 
 MODULE_DESCRIPTION ("TXx9 SoC NAND flash controller driver")
 
 MODULE_ALIAS ("platform:txx9ndfmc")
 

Macro Definition Documentation

#define MAX_TXX9NDFMC_DEV   4

Definition at line 70 of file txx9ndfmc.c.

#define TXX9_NDFDTR   0x00

Definition at line 25 of file txx9ndfmc.c.

#define TXX9_NDFIMR   0x10

Definition at line 29 of file txx9ndfmc.c.

#define TXX9_NDFISR   0x0c

Definition at line 28 of file txx9ndfmc.c.

#define TXX9_NDFMCR   0x04

Definition at line 26 of file txx9ndfmc.c.

#define TXX9_NDFMCR_ALE   0x02

Definition at line 42 of file txx9ndfmc.c.

#define TXX9_NDFMCR_BSPRT   0x04 /* TX4925/TX4926 only */

Definition at line 41 of file txx9ndfmc.c.

#define TXX9_NDFMCR_CE   0x10

Definition at line 40 of file txx9ndfmc.c.

#define TXX9_NDFMCR_CLE   0x01

Definition at line 43 of file txx9ndfmc.c.

#define TXX9_NDFMCR_CS (   ch)    ((ch) << 2)

Definition at line 52 of file txx9ndfmc.c.

#define TXX9_NDFMCR_CS_MASK   0x0c

Definition at line 51 of file txx9ndfmc.c.

#define TXX9_NDFMCR_DMAREQ_128   0x0100

Definition at line 48 of file txx9ndfmc.c.

#define TXX9_NDFMCR_DMAREQ_256   0x0200

Definition at line 49 of file txx9ndfmc.c.

#define TXX9_NDFMCR_DMAREQ_512   0x0300

Definition at line 50 of file txx9ndfmc.c.

#define TXX9_NDFMCR_DMAREQ_MASK   0x0300

Definition at line 46 of file txx9ndfmc.c.

#define TXX9_NDFMCR_DMAREQ_NODMA   0x0000

Definition at line 47 of file txx9ndfmc.c.

#define TXX9_NDFMCR_ECC_ALL   0x60

Definition at line 35 of file txx9ndfmc.c.

#define TXX9_NDFMCR_ECC_OFF   0x00

Definition at line 39 of file txx9ndfmc.c.

#define TXX9_NDFMCR_ECC_ON   0x20

Definition at line 38 of file txx9ndfmc.c.

#define TXX9_NDFMCR_ECC_READ   0x40

Definition at line 37 of file txx9ndfmc.c.

#define TXX9_NDFMCR_ECC_RESET   0x60

Definition at line 36 of file txx9ndfmc.c.

#define TXX9_NDFMCR_WE   0x80

Definition at line 34 of file txx9ndfmc.c.

#define TXX9_NDFMCR_X16   0x0400

Definition at line 45 of file txx9ndfmc.c.

#define TXX9_NDFRSTR   0x18 /* not TX4939 */

Definition at line 31 of file txx9ndfmc.c.

#define TXX9_NDFRSTR_RST   0x01

Definition at line 60 of file txx9ndfmc.c.

#define TXX9_NDFSPR   0x14

Definition at line 30 of file txx9ndfmc.c.

#define TXX9_NDFSR   0x08

Definition at line 27 of file txx9ndfmc.c.

#define TXX9_NDFSR_BUSY   0x80

Definition at line 55 of file txx9ndfmc.c.

#define TXX9_NDFSR_DMARUN   0x40

Definition at line 57 of file txx9ndfmc.c.

#define TXX9NDFMC_NS_TO_CYC (   gbusclk,
  ns 
)    DIV_ROUND_UP((ns) * DIV_ROUND_UP(gbusclk, 1000), 1000000)

Definition at line 254 of file txx9ndfmc.c.

#define txx9ndfmc_resume   NULL

Definition at line 417 of file txx9ndfmc.c.

Function Documentation

MODULE_ALIAS ( "platform:txx9ndfmc"  )
MODULE_DESCRIPTION ( "TXx9 SoC NAND flash controller driver )
module_exit ( txx9ndfmc_exit  )
module_init ( txx9ndfmc_init  )
MODULE_LICENSE ( "GPL"  )