Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
mg_disk.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/blkdev.h>
#include <linux/hdreg.h>
#include <linux/ata.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
#include <linux/mg_disk.h>
#include <linux/slab.h>

Go to the source code of this file.

Data Structures

struct  mg_host
 

Macros

#define MG_RES_SEC   (CONFIG_MG_DISK_RES << 1)
 
#define MG_DISK_NAME   "mgd"
 
#define MG_DISK_MAJ   0
 
#define MG_DISK_MAX_PART   16
 
#define MG_SECTOR_SIZE   512
 
#define MG_MAX_SECTS   256
 
#define MG_BUFF_OFFSET   0x8000
 
#define MG_REG_OFFSET   0xC000
 
#define MG_REG_FEATURE   (MG_REG_OFFSET + 2) /* write case */
 
#define MG_REG_ERROR   (MG_REG_OFFSET + 2) /* read case */
 
#define MG_REG_SECT_CNT   (MG_REG_OFFSET + 4)
 
#define MG_REG_SECT_NUM   (MG_REG_OFFSET + 6)
 
#define MG_REG_CYL_LOW   (MG_REG_OFFSET + 8)
 
#define MG_REG_CYL_HIGH   (MG_REG_OFFSET + 0xA)
 
#define MG_REG_DRV_HEAD   (MG_REG_OFFSET + 0xC)
 
#define MG_REG_COMMAND   (MG_REG_OFFSET + 0xE) /* write case */
 
#define MG_REG_STATUS   (MG_REG_OFFSET + 0xE) /* read case */
 
#define MG_REG_DRV_CTRL   (MG_REG_OFFSET + 0x10)
 
#define MG_REG_BURST_CTRL   (MG_REG_OFFSET + 0x12)
 
#define MG_STAT_READY   (ATA_DRDY | ATA_DSC)
 
#define MG_READY_OK(s)
 
#define MG_ERR_NONE   0
 
#define MG_ERR_TIMEOUT   0x100
 
#define MG_ERR_INIT_STAT   0x101
 
#define MG_ERR_TRANSLATION   0x102
 
#define MG_ERR_CTRL_RST   0x103
 
#define MG_ERR_INV_STAT   0x104
 
#define MG_ERR_RSTOUT   0x105
 
#define MG_MAX_ERRORS   6 /* Max read/write errors */
 
#define MG_CMD_RD   0x20
 
#define MG_CMD_WR   0x30
 
#define MG_CMD_SLEEP   0x99
 
#define MG_CMD_WAKEUP   0xC3
 
#define MG_CMD_ID   0xEC
 
#define MG_CMD_WR_CONF   0x3C
 
#define MG_CMD_RD_CONF   0x40
 
#define MG_OP_CASCADE   (1 << 0)
 
#define MG_OP_CASCADE_SYNC_RD   (1 << 1)
 
#define MG_OP_CASCADE_SYNC_WR   (1 << 2)
 
#define MG_OP_INTERLEAVE   (1 << 3)
 
#define MG_BURST_LAT_4   (3 << 4)
 
#define MG_BURST_LAT_5   (4 << 4)
 
#define MG_BURST_LAT_6   (5 << 4)
 
#define MG_BURST_LAT_7   (6 << 4)
 
#define MG_BURST_LAT_8   (7 << 4)
 
#define MG_BURST_LEN_4   (1 << 1)
 
#define MG_BURST_LEN_8   (2 << 1)
 
#define MG_BURST_LEN_16   (3 << 1)
 
#define MG_BURST_LEN_32   (4 << 1)
 
#define MG_BURST_LEN_CONT   (0 << 1)
 
#define MG_TMAX_CONF_TO_CMD   1
 
#define MG_TMAX_WAIT_RD_DRQ   10
 
#define MG_TMAX_WAIT_WR_DRQ   500
 
#define MG_TMAX_RST_TO_BUSY   10
 
#define MG_TMAX_HDRST_TO_RDY   500
 
#define MG_TMAX_SWRST_TO_RDY   500
 
#define MG_TMAX_RSTOUT   3000
 
#define MG_DEV_MASK   (MG_BOOT_DEV | MG_STORAGE_DEV | MG_STORAGE_DEV_SKIP_RST)
 
#define MG_DBG(fmt, args...)   do { } while (0)
 

Functions

void mg_times_out (unsigned long data)
 
 module_init (mg_init)
 
 module_exit (mg_exit)
 
 MODULE_LICENSE ("GPL")
 
 MODULE_AUTHOR ("unsik Kim <[email protected]>")
 
 MODULE_DESCRIPTION ("mGine m[g]flash device driver")
 

Macro Definition Documentation

#define MG_BUFF_OFFSET   0x8000

Definition at line 39 of file mg_disk.c.

#define MG_BURST_LAT_4   (3 << 4)

Definition at line 85 of file mg_disk.c.

#define MG_BURST_LAT_5   (4 << 4)

Definition at line 86 of file mg_disk.c.

#define MG_BURST_LAT_6   (5 << 4)

Definition at line 87 of file mg_disk.c.

#define MG_BURST_LAT_7   (6 << 4)

Definition at line 88 of file mg_disk.c.

#define MG_BURST_LAT_8   (7 << 4)

Definition at line 89 of file mg_disk.c.

#define MG_BURST_LEN_16   (3 << 1)

Definition at line 92 of file mg_disk.c.

#define MG_BURST_LEN_32   (4 << 1)

Definition at line 93 of file mg_disk.c.

#define MG_BURST_LEN_4   (1 << 1)

Definition at line 90 of file mg_disk.c.

#define MG_BURST_LEN_8   (2 << 1)

Definition at line 91 of file mg_disk.c.

#define MG_BURST_LEN_CONT   (0 << 1)

Definition at line 94 of file mg_disk.c.

#define MG_CMD_ID   0xEC

Definition at line 74 of file mg_disk.c.

#define MG_CMD_RD   0x20

Definition at line 70 of file mg_disk.c.

#define MG_CMD_RD_CONF   0x40

Definition at line 76 of file mg_disk.c.

#define MG_CMD_SLEEP   0x99

Definition at line 72 of file mg_disk.c.

#define MG_CMD_WAKEUP   0xC3

Definition at line 73 of file mg_disk.c.

#define MG_CMD_WR   0x30

Definition at line 71 of file mg_disk.c.

#define MG_CMD_WR_CONF   0x3C

Definition at line 75 of file mg_disk.c.

#define MG_DBG (   fmt,
  args... 
)    do { } while (0)

Definition at line 144 of file mg_disk.c.

#define MG_DEV_MASK   (MG_BOOT_DEV | MG_STORAGE_DEV | MG_STORAGE_DEV_SKIP_RST)

Definition at line 105 of file mg_disk.c.

#define MG_DISK_MAJ   0

Definition at line 33 of file mg_disk.c.

#define MG_DISK_MAX_PART   16

Definition at line 34 of file mg_disk.c.

#define MG_DISK_NAME   "mgd"

Definition at line 31 of file mg_disk.c.

#define MG_ERR_CTRL_RST   0x103

Definition at line 63 of file mg_disk.c.

#define MG_ERR_INIT_STAT   0x101

Definition at line 61 of file mg_disk.c.

#define MG_ERR_INV_STAT   0x104

Definition at line 64 of file mg_disk.c.

#define MG_ERR_NONE   0

Definition at line 59 of file mg_disk.c.

#define MG_ERR_RSTOUT   0x105

Definition at line 65 of file mg_disk.c.

#define MG_ERR_TIMEOUT   0x100

Definition at line 60 of file mg_disk.c.

#define MG_ERR_TRANSLATION   0x102

Definition at line 62 of file mg_disk.c.

#define MG_MAX_ERRORS   6 /* Max read/write errors */

Definition at line 67 of file mg_disk.c.

#define MG_MAX_SECTS   256

Definition at line 36 of file mg_disk.c.

#define MG_OP_CASCADE   (1 << 0)

Definition at line 79 of file mg_disk.c.

#define MG_OP_CASCADE_SYNC_RD   (1 << 1)

Definition at line 80 of file mg_disk.c.

#define MG_OP_CASCADE_SYNC_WR   (1 << 2)

Definition at line 81 of file mg_disk.c.

#define MG_OP_INTERLEAVE   (1 << 3)

Definition at line 82 of file mg_disk.c.

#define MG_READY_OK (   s)
Value:

Definition at line 55 of file mg_disk.c.

#define MG_REG_BURST_CTRL   (MG_REG_OFFSET + 0x12)

Definition at line 51 of file mg_disk.c.

#define MG_REG_COMMAND   (MG_REG_OFFSET + 0xE) /* write case */

Definition at line 48 of file mg_disk.c.

#define MG_REG_CYL_HIGH   (MG_REG_OFFSET + 0xA)

Definition at line 46 of file mg_disk.c.

#define MG_REG_CYL_LOW   (MG_REG_OFFSET + 8)

Definition at line 45 of file mg_disk.c.

#define MG_REG_DRV_CTRL   (MG_REG_OFFSET + 0x10)

Definition at line 50 of file mg_disk.c.

#define MG_REG_DRV_HEAD   (MG_REG_OFFSET + 0xC)

Definition at line 47 of file mg_disk.c.

#define MG_REG_ERROR   (MG_REG_OFFSET + 2) /* read case */

Definition at line 42 of file mg_disk.c.

#define MG_REG_FEATURE   (MG_REG_OFFSET + 2) /* write case */

Definition at line 41 of file mg_disk.c.

#define MG_REG_OFFSET   0xC000

Definition at line 40 of file mg_disk.c.

#define MG_REG_SECT_CNT   (MG_REG_OFFSET + 4)

Definition at line 43 of file mg_disk.c.

#define MG_REG_SECT_NUM   (MG_REG_OFFSET + 6)

Definition at line 44 of file mg_disk.c.

#define MG_REG_STATUS   (MG_REG_OFFSET + 0xE) /* read case */

Definition at line 49 of file mg_disk.c.

#define MG_RES_SEC   (CONFIG_MG_DISK_RES << 1)

Definition at line 28 of file mg_disk.c.

#define MG_SECTOR_SIZE   512

Definition at line 35 of file mg_disk.c.

#define MG_STAT_READY   (ATA_DRDY | ATA_DSC)

Definition at line 54 of file mg_disk.c.

#define MG_TMAX_CONF_TO_CMD   1

Definition at line 97 of file mg_disk.c.

#define MG_TMAX_HDRST_TO_RDY   500

Definition at line 101 of file mg_disk.c.

#define MG_TMAX_RST_TO_BUSY   10

Definition at line 100 of file mg_disk.c.

#define MG_TMAX_RSTOUT   3000

Definition at line 103 of file mg_disk.c.

#define MG_TMAX_SWRST_TO_RDY   500

Definition at line 102 of file mg_disk.c.

#define MG_TMAX_WAIT_RD_DRQ   10

Definition at line 98 of file mg_disk.c.

#define MG_TMAX_WAIT_WR_DRQ   500

Definition at line 99 of file mg_disk.c.

Function Documentation

void mg_times_out ( unsigned long  data)

Definition at line 639 of file mg_disk.c.

MODULE_AUTHOR ( "unsik Kim <[email protected]>"  )
MODULE_DESCRIPTION ( "mGine mflash device driver [g])
module_exit ( mg_exit  )
module_init ( mg_init  )
MODULE_LICENSE ( "GPL"  )