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

Go to the source code of this file.

Data Structures

struct  nuc900_nand
 

Macros

#define REG_FMICSR   0x00
 
#define REG_SMCSR   0xa0
 
#define REG_SMISR   0xac
 
#define REG_SMCMD   0xb0
 
#define REG_SMADDR   0xb4
 
#define REG_SMDATA   0xb8
 
#define RESET_FMI   0x01
 
#define NAND_EN   0x08
 
#define READYBUSY   (0x01 << 18)
 
#define SWRST   0x01
 
#define PSIZE   (0x01 << 3)
 
#define DMARWEN   (0x03 << 1)
 
#define BUSWID   (0x01 << 4)
 
#define ECC4EN   (0x01 << 5)
 
#define WP   (0x01 << 24)
 
#define NANDCS   (0x01 << 25)
 
#define ENDADDR   (0x01 << 31)
 
#define read_data_reg(dev)   __raw_readl((dev)->reg + REG_SMDATA)
 
#define write_data_reg(dev, val)   __raw_writel((val), (dev)->reg + REG_SMDATA)
 
#define write_cmd_reg(dev, val)   __raw_writel((val), (dev)->reg + REG_SMCMD)
 
#define write_addr_reg(dev, val)   __raw_writel((val), (dev)->reg + REG_SMADDR)
 

Functions

 module_platform_driver (nuc900_nand_driver)
 
 MODULE_AUTHOR ("Wan ZongShun <[email protected]>")
 
 MODULE_DESCRIPTION ("w90p910/NUC9xx nand driver!")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_ALIAS ("platform:nuc900-fmi")
 

Macro Definition Documentation

#define BUSWID   (0x01 << 4)

Definition at line 40 of file nuc900_nand.c.

#define DMARWEN   (0x03 << 1)

Definition at line 39 of file nuc900_nand.c.

#define ECC4EN   (0x01 << 5)

Definition at line 41 of file nuc900_nand.c.

#define ENDADDR   (0x01 << 31)

Definition at line 44 of file nuc900_nand.c.

#define NAND_EN   0x08

Definition at line 34 of file nuc900_nand.c.

#define NANDCS   (0x01 << 25)

Definition at line 43 of file nuc900_nand.c.

#define PSIZE   (0x01 << 3)

Definition at line 38 of file nuc900_nand.c.

#define read_data_reg (   dev)    __raw_readl((dev)->reg + REG_SMDATA)

Definition at line 46 of file nuc900_nand.c.

#define READYBUSY   (0x01 << 18)

Definition at line 35 of file nuc900_nand.c.

#define REG_FMICSR   0x00

Definition at line 26 of file nuc900_nand.c.

#define REG_SMADDR   0xb4

Definition at line 30 of file nuc900_nand.c.

#define REG_SMCMD   0xb0

Definition at line 29 of file nuc900_nand.c.

#define REG_SMCSR   0xa0

Definition at line 27 of file nuc900_nand.c.

#define REG_SMDATA   0xb8

Definition at line 31 of file nuc900_nand.c.

#define REG_SMISR   0xac

Definition at line 28 of file nuc900_nand.c.

#define RESET_FMI   0x01

Definition at line 33 of file nuc900_nand.c.

#define SWRST   0x01

Definition at line 37 of file nuc900_nand.c.

#define WP   (0x01 << 24)

Definition at line 42 of file nuc900_nand.c.

#define write_addr_reg (   dev,
  val 
)    __raw_writel((val), (dev)->reg + REG_SMADDR)

Definition at line 55 of file nuc900_nand.c.

#define write_cmd_reg (   dev,
  val 
)    __raw_writel((val), (dev)->reg + REG_SMCMD)

Definition at line 52 of file nuc900_nand.c.

#define write_data_reg (   dev,
  val 
)    __raw_writel((val), (dev)->reg + REG_SMDATA)

Definition at line 49 of file nuc900_nand.c.

Function Documentation

MODULE_ALIAS ( "platform:nuc900-fmi )
MODULE_AUTHOR ( "Wan ZongShun <[email protected]>"  )
MODULE_DESCRIPTION ( "w90p910/NUC9xx nand driver!"  )
MODULE_LICENSE ( "GPL"  )
module_platform_driver ( nuc900_nand_driver  )