Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
pata_bf54x.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <scsi/scsi_host.h>
#include <linux/libata.h>
#include <linux/platform_device.h>
#include <asm/dma.h>
#include <asm/gpio.h>
#include <asm/portmux.h>

Go to the source code of this file.

Macros

#define DRV_NAME   "pata-bf54x"
 
#define DRV_VERSION   "0.9"
 
#define ATA_REG_CTRL   0x0E
 
#define ATA_REG_ALTSTATUS   ATA_REG_CTRL
 
#define ATAPI_OFFSET_CONTROL   0x00
 
#define ATAPI_OFFSET_STATUS   0x04
 
#define ATAPI_OFFSET_DEV_ADDR   0x08
 
#define ATAPI_OFFSET_DEV_TXBUF   0x0c
 
#define ATAPI_OFFSET_DEV_RXBUF   0x10
 
#define ATAPI_OFFSET_INT_MASK   0x14
 
#define ATAPI_OFFSET_INT_STATUS   0x18
 
#define ATAPI_OFFSET_XFER_LEN   0x1c
 
#define ATAPI_OFFSET_LINE_STATUS   0x20
 
#define ATAPI_OFFSET_SM_STATE   0x24
 
#define ATAPI_OFFSET_TERMINATE   0x28
 
#define ATAPI_OFFSET_PIO_TFRCNT   0x2c
 
#define ATAPI_OFFSET_DMA_TFRCNT   0x30
 
#define ATAPI_OFFSET_UMAIN_TFRCNT   0x34
 
#define ATAPI_OFFSET_UDMAOUT_TFRCNT   0x38
 
#define ATAPI_OFFSET_REG_TIM_0   0x40
 
#define ATAPI_OFFSET_PIO_TIM_0   0x44
 
#define ATAPI_OFFSET_PIO_TIM_1   0x48
 
#define ATAPI_OFFSET_MULTI_TIM_0   0x50
 
#define ATAPI_OFFSET_MULTI_TIM_1   0x54
 
#define ATAPI_OFFSET_MULTI_TIM_2   0x58
 
#define ATAPI_OFFSET_ULTRA_TIM_0   0x60
 
#define ATAPI_OFFSET_ULTRA_TIM_1   0x64
 
#define ATAPI_OFFSET_ULTRA_TIM_2   0x68
 
#define ATAPI_OFFSET_ULTRA_TIM_3   0x6c
 
#define ATAPI_GET_CONTROL(base)   bfin_read16(base + ATAPI_OFFSET_CONTROL)
 
#define ATAPI_SET_CONTROL(base, val)   bfin_write16(base + ATAPI_OFFSET_CONTROL, val)
 
#define ATAPI_GET_STATUS(base)   bfin_read16(base + ATAPI_OFFSET_STATUS)
 
#define ATAPI_GET_DEV_ADDR(base)   bfin_read16(base + ATAPI_OFFSET_DEV_ADDR)
 
#define ATAPI_SET_DEV_ADDR(base, val)   bfin_write16(base + ATAPI_OFFSET_DEV_ADDR, val)
 
#define ATAPI_GET_DEV_TXBUF(base)   bfin_read16(base + ATAPI_OFFSET_DEV_TXBUF)
 
#define ATAPI_SET_DEV_TXBUF(base, val)   bfin_write16(base + ATAPI_OFFSET_DEV_TXBUF, val)
 
#define ATAPI_GET_DEV_RXBUF(base)   bfin_read16(base + ATAPI_OFFSET_DEV_RXBUF)
 
#define ATAPI_SET_DEV_RXBUF(base, val)   bfin_write16(base + ATAPI_OFFSET_DEV_RXBUF, val)
 
#define ATAPI_GET_INT_MASK(base)   bfin_read16(base + ATAPI_OFFSET_INT_MASK)
 
#define ATAPI_SET_INT_MASK(base, val)   bfin_write16(base + ATAPI_OFFSET_INT_MASK, val)
 
#define ATAPI_GET_INT_STATUS(base)   bfin_read16(base + ATAPI_OFFSET_INT_STATUS)
 
#define ATAPI_SET_INT_STATUS(base, val)   bfin_write16(base + ATAPI_OFFSET_INT_STATUS, val)
 
#define ATAPI_GET_XFER_LEN(base)   bfin_read16(base + ATAPI_OFFSET_XFER_LEN)
 
#define ATAPI_SET_XFER_LEN(base, val)   bfin_write16(base + ATAPI_OFFSET_XFER_LEN, val)
 
#define ATAPI_GET_LINE_STATUS(base)   bfin_read16(base + ATAPI_OFFSET_LINE_STATUS)
 
#define ATAPI_GET_SM_STATE(base)   bfin_read16(base + ATAPI_OFFSET_SM_STATE)
 
#define ATAPI_GET_TERMINATE(base)   bfin_read16(base + ATAPI_OFFSET_TERMINATE)
 
#define ATAPI_SET_TERMINATE(base, val)   bfin_write16(base + ATAPI_OFFSET_TERMINATE, val)
 
#define ATAPI_GET_PIO_TFRCNT(base)   bfin_read16(base + ATAPI_OFFSET_PIO_TFRCNT)
 
#define ATAPI_GET_DMA_TFRCNT(base)   bfin_read16(base + ATAPI_OFFSET_DMA_TFRCNT)
 
#define ATAPI_GET_UMAIN_TFRCNT(base)   bfin_read16(base + ATAPI_OFFSET_UMAIN_TFRCNT)
 
#define ATAPI_GET_UDMAOUT_TFRCNT(base)   bfin_read16(base + ATAPI_OFFSET_UDMAOUT_TFRCNT)
 
#define ATAPI_GET_REG_TIM_0(base)   bfin_read16(base + ATAPI_OFFSET_REG_TIM_0)
 
#define ATAPI_SET_REG_TIM_0(base, val)   bfin_write16(base + ATAPI_OFFSET_REG_TIM_0, val)
 
#define ATAPI_GET_PIO_TIM_0(base)   bfin_read16(base + ATAPI_OFFSET_PIO_TIM_0)
 
#define ATAPI_SET_PIO_TIM_0(base, val)   bfin_write16(base + ATAPI_OFFSET_PIO_TIM_0, val)
 
#define ATAPI_GET_PIO_TIM_1(base)   bfin_read16(base + ATAPI_OFFSET_PIO_TIM_1)
 
#define ATAPI_SET_PIO_TIM_1(base, val)   bfin_write16(base + ATAPI_OFFSET_PIO_TIM_1, val)
 
#define ATAPI_GET_MULTI_TIM_0(base)   bfin_read16(base + ATAPI_OFFSET_MULTI_TIM_0)
 
#define ATAPI_SET_MULTI_TIM_0(base, val)   bfin_write16(base + ATAPI_OFFSET_MULTI_TIM_0, val)
 
#define ATAPI_GET_MULTI_TIM_1(base)   bfin_read16(base + ATAPI_OFFSET_MULTI_TIM_1)
 
#define ATAPI_SET_MULTI_TIM_1(base, val)   bfin_write16(base + ATAPI_OFFSET_MULTI_TIM_1, val)
 
#define ATAPI_GET_MULTI_TIM_2(base)   bfin_read16(base + ATAPI_OFFSET_MULTI_TIM_2)
 
#define ATAPI_SET_MULTI_TIM_2(base, val)   bfin_write16(base + ATAPI_OFFSET_MULTI_TIM_2, val)
 
#define ATAPI_GET_ULTRA_TIM_0(base)   bfin_read16(base + ATAPI_OFFSET_ULTRA_TIM_0)
 
#define ATAPI_SET_ULTRA_TIM_0(base, val)   bfin_write16(base + ATAPI_OFFSET_ULTRA_TIM_0, val)
 
#define ATAPI_GET_ULTRA_TIM_1(base)   bfin_read16(base + ATAPI_OFFSET_ULTRA_TIM_1)
 
#define ATAPI_SET_ULTRA_TIM_1(base, val)   bfin_write16(base + ATAPI_OFFSET_ULTRA_TIM_1, val)
 
#define ATAPI_GET_ULTRA_TIM_2(base)   bfin_read16(base + ATAPI_OFFSET_ULTRA_TIM_2)
 
#define ATAPI_SET_ULTRA_TIM_2(base, val)   bfin_write16(base + ATAPI_OFFSET_ULTRA_TIM_2, val)
 
#define ATAPI_GET_ULTRA_TIM_3(base)   bfin_read16(base + ATAPI_OFFSET_ULTRA_TIM_3)
 
#define ATAPI_SET_ULTRA_TIM_3(base, val)   bfin_write16(base + ATAPI_OFFSET_ULTRA_TIM_3, val)
 
#define BFIN_MAX_SG_SEGMENTS   4
 
#define PATA_BF54X_WAIT_TIMEOUT   10000
 
#define bfin_atapi_suspend   NULL
 
#define bfin_atapi_resume   NULL
 
#define ATAPI_MODE_SIZE   10
 

Functions

void bfin_thaw (struct ata_port *ap)
 
 module_init (bfin_atapi_init)
 
 module_exit (bfin_atapi_exit)
 
 module_param_string (bfin_atapi_mode, bfin_atapi_mode, ATAPI_MODE_SIZE, 0)
 
 MODULE_AUTHOR ("Sonic Zhang <[email protected]>")
 
 MODULE_DESCRIPTION ("PATA driver for blackfin 54x ATAPI controller")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_VERSION (DRV_VERSION)
 
 MODULE_ALIAS ("platform:"DRV_NAME)
 

Macro Definition Documentation

#define ATA_REG_ALTSTATUS   ATA_REG_CTRL

Definition at line 47 of file pata_bf54x.c.

#define ATA_REG_CTRL   0x0E

Definition at line 46 of file pata_bf54x.c.

#define ATAPI_GET_CONTROL (   base)    bfin_read16(base + ATAPI_OFFSET_CONTROL)

Definition at line 77 of file pata_bf54x.c.

#define ATAPI_GET_DEV_ADDR (   base)    bfin_read16(base + ATAPI_OFFSET_DEV_ADDR)

Definition at line 83 of file pata_bf54x.c.

#define ATAPI_GET_DEV_RXBUF (   base)    bfin_read16(base + ATAPI_OFFSET_DEV_RXBUF)

Definition at line 91 of file pata_bf54x.c.

#define ATAPI_GET_DEV_TXBUF (   base)    bfin_read16(base + ATAPI_OFFSET_DEV_TXBUF)

Definition at line 87 of file pata_bf54x.c.

#define ATAPI_GET_DMA_TFRCNT (   base)    bfin_read16(base + ATAPI_OFFSET_DMA_TFRCNT)

Definition at line 117 of file pata_bf54x.c.

#define ATAPI_GET_INT_MASK (   base)    bfin_read16(base + ATAPI_OFFSET_INT_MASK)

Definition at line 95 of file pata_bf54x.c.

#define ATAPI_GET_INT_STATUS (   base)    bfin_read16(base + ATAPI_OFFSET_INT_STATUS)

Definition at line 99 of file pata_bf54x.c.

#define ATAPI_GET_LINE_STATUS (   base)    bfin_read16(base + ATAPI_OFFSET_LINE_STATUS)

Definition at line 107 of file pata_bf54x.c.

#define ATAPI_GET_MULTI_TIM_0 (   base)    bfin_read16(base + ATAPI_OFFSET_MULTI_TIM_0)

Definition at line 135 of file pata_bf54x.c.

#define ATAPI_GET_MULTI_TIM_1 (   base)    bfin_read16(base + ATAPI_OFFSET_MULTI_TIM_1)

Definition at line 139 of file pata_bf54x.c.

#define ATAPI_GET_MULTI_TIM_2 (   base)    bfin_read16(base + ATAPI_OFFSET_MULTI_TIM_2)

Definition at line 143 of file pata_bf54x.c.

#define ATAPI_GET_PIO_TFRCNT (   base)    bfin_read16(base + ATAPI_OFFSET_PIO_TFRCNT)

Definition at line 115 of file pata_bf54x.c.

#define ATAPI_GET_PIO_TIM_0 (   base)    bfin_read16(base + ATAPI_OFFSET_PIO_TIM_0)

Definition at line 127 of file pata_bf54x.c.

#define ATAPI_GET_PIO_TIM_1 (   base)    bfin_read16(base + ATAPI_OFFSET_PIO_TIM_1)

Definition at line 131 of file pata_bf54x.c.

#define ATAPI_GET_REG_TIM_0 (   base)    bfin_read16(base + ATAPI_OFFSET_REG_TIM_0)

Definition at line 123 of file pata_bf54x.c.

#define ATAPI_GET_SM_STATE (   base)    bfin_read16(base + ATAPI_OFFSET_SM_STATE)

Definition at line 109 of file pata_bf54x.c.

#define ATAPI_GET_STATUS (   base)    bfin_read16(base + ATAPI_OFFSET_STATUS)

Definition at line 81 of file pata_bf54x.c.

#define ATAPI_GET_TERMINATE (   base)    bfin_read16(base + ATAPI_OFFSET_TERMINATE)

Definition at line 111 of file pata_bf54x.c.

#define ATAPI_GET_UDMAOUT_TFRCNT (   base)    bfin_read16(base + ATAPI_OFFSET_UDMAOUT_TFRCNT)

Definition at line 121 of file pata_bf54x.c.

#define ATAPI_GET_ULTRA_TIM_0 (   base)    bfin_read16(base + ATAPI_OFFSET_ULTRA_TIM_0)

Definition at line 147 of file pata_bf54x.c.

#define ATAPI_GET_ULTRA_TIM_1 (   base)    bfin_read16(base + ATAPI_OFFSET_ULTRA_TIM_1)

Definition at line 151 of file pata_bf54x.c.

#define ATAPI_GET_ULTRA_TIM_2 (   base)    bfin_read16(base + ATAPI_OFFSET_ULTRA_TIM_2)

Definition at line 155 of file pata_bf54x.c.

#define ATAPI_GET_ULTRA_TIM_3 (   base)    bfin_read16(base + ATAPI_OFFSET_ULTRA_TIM_3)

Definition at line 159 of file pata_bf54x.c.

#define ATAPI_GET_UMAIN_TFRCNT (   base)    bfin_read16(base + ATAPI_OFFSET_UMAIN_TFRCNT)

Definition at line 119 of file pata_bf54x.c.

#define ATAPI_GET_XFER_LEN (   base)    bfin_read16(base + ATAPI_OFFSET_XFER_LEN)

Definition at line 103 of file pata_bf54x.c.

#define ATAPI_MODE_SIZE   10

Definition at line 1666 of file pata_bf54x.c.

#define ATAPI_OFFSET_CONTROL   0x00

Definition at line 50 of file pata_bf54x.c.

#define ATAPI_OFFSET_DEV_ADDR   0x08

Definition at line 52 of file pata_bf54x.c.

#define ATAPI_OFFSET_DEV_RXBUF   0x10

Definition at line 54 of file pata_bf54x.c.

#define ATAPI_OFFSET_DEV_TXBUF   0x0c

Definition at line 53 of file pata_bf54x.c.

#define ATAPI_OFFSET_DMA_TFRCNT   0x30

Definition at line 62 of file pata_bf54x.c.

#define ATAPI_OFFSET_INT_MASK   0x14

Definition at line 55 of file pata_bf54x.c.

#define ATAPI_OFFSET_INT_STATUS   0x18

Definition at line 56 of file pata_bf54x.c.

#define ATAPI_OFFSET_LINE_STATUS   0x20

Definition at line 58 of file pata_bf54x.c.

#define ATAPI_OFFSET_MULTI_TIM_0   0x50

Definition at line 68 of file pata_bf54x.c.

#define ATAPI_OFFSET_MULTI_TIM_1   0x54

Definition at line 69 of file pata_bf54x.c.

#define ATAPI_OFFSET_MULTI_TIM_2   0x58

Definition at line 70 of file pata_bf54x.c.

#define ATAPI_OFFSET_PIO_TFRCNT   0x2c

Definition at line 61 of file pata_bf54x.c.

#define ATAPI_OFFSET_PIO_TIM_0   0x44

Definition at line 66 of file pata_bf54x.c.

#define ATAPI_OFFSET_PIO_TIM_1   0x48

Definition at line 67 of file pata_bf54x.c.

#define ATAPI_OFFSET_REG_TIM_0   0x40

Definition at line 65 of file pata_bf54x.c.

#define ATAPI_OFFSET_SM_STATE   0x24

Definition at line 59 of file pata_bf54x.c.

#define ATAPI_OFFSET_STATUS   0x04

Definition at line 51 of file pata_bf54x.c.

#define ATAPI_OFFSET_TERMINATE   0x28

Definition at line 60 of file pata_bf54x.c.

#define ATAPI_OFFSET_UDMAOUT_TFRCNT   0x38

Definition at line 64 of file pata_bf54x.c.

#define ATAPI_OFFSET_ULTRA_TIM_0   0x60

Definition at line 71 of file pata_bf54x.c.

#define ATAPI_OFFSET_ULTRA_TIM_1   0x64

Definition at line 72 of file pata_bf54x.c.

#define ATAPI_OFFSET_ULTRA_TIM_2   0x68

Definition at line 73 of file pata_bf54x.c.

#define ATAPI_OFFSET_ULTRA_TIM_3   0x6c

Definition at line 74 of file pata_bf54x.c.

#define ATAPI_OFFSET_UMAIN_TFRCNT   0x34

Definition at line 63 of file pata_bf54x.c.

#define ATAPI_OFFSET_XFER_LEN   0x1c

Definition at line 57 of file pata_bf54x.c.

#define ATAPI_SET_CONTROL (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_CONTROL, val)

Definition at line 79 of file pata_bf54x.c.

#define ATAPI_SET_DEV_ADDR (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_DEV_ADDR, val)

Definition at line 85 of file pata_bf54x.c.

#define ATAPI_SET_DEV_RXBUF (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_DEV_RXBUF, val)

Definition at line 93 of file pata_bf54x.c.

#define ATAPI_SET_DEV_TXBUF (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_DEV_TXBUF, val)

Definition at line 89 of file pata_bf54x.c.

#define ATAPI_SET_INT_MASK (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_INT_MASK, val)

Definition at line 97 of file pata_bf54x.c.

#define ATAPI_SET_INT_STATUS (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_INT_STATUS, val)

Definition at line 101 of file pata_bf54x.c.

#define ATAPI_SET_MULTI_TIM_0 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_MULTI_TIM_0, val)

Definition at line 137 of file pata_bf54x.c.

#define ATAPI_SET_MULTI_TIM_1 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_MULTI_TIM_1, val)

Definition at line 141 of file pata_bf54x.c.

#define ATAPI_SET_MULTI_TIM_2 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_MULTI_TIM_2, val)

Definition at line 145 of file pata_bf54x.c.

#define ATAPI_SET_PIO_TIM_0 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_PIO_TIM_0, val)

Definition at line 129 of file pata_bf54x.c.

#define ATAPI_SET_PIO_TIM_1 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_PIO_TIM_1, val)

Definition at line 133 of file pata_bf54x.c.

#define ATAPI_SET_REG_TIM_0 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_REG_TIM_0, val)

Definition at line 125 of file pata_bf54x.c.

#define ATAPI_SET_TERMINATE (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_TERMINATE, val)

Definition at line 113 of file pata_bf54x.c.

#define ATAPI_SET_ULTRA_TIM_0 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_ULTRA_TIM_0, val)

Definition at line 149 of file pata_bf54x.c.

#define ATAPI_SET_ULTRA_TIM_1 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_ULTRA_TIM_1, val)

Definition at line 153 of file pata_bf54x.c.

#define ATAPI_SET_ULTRA_TIM_2 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_ULTRA_TIM_2, val)

Definition at line 157 of file pata_bf54x.c.

#define ATAPI_SET_ULTRA_TIM_3 (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_ULTRA_TIM_3, val)

Definition at line 161 of file pata_bf54x.c.

#define ATAPI_SET_XFER_LEN (   base,
  val 
)    bfin_write16(base + ATAPI_OFFSET_XFER_LEN, val)

Definition at line 105 of file pata_bf54x.c.

#define bfin_atapi_resume   NULL

Definition at line 1652 of file pata_bf54x.c.

#define bfin_atapi_suspend   NULL

Definition at line 1651 of file pata_bf54x.c.

#define BFIN_MAX_SG_SEGMENTS   4

Definition at line 254 of file pata_bf54x.c.

#define DRV_NAME   "pata-bf54x"

Definition at line 43 of file pata_bf54x.c.

#define DRV_VERSION   "0.9"

Definition at line 44 of file pata_bf54x.c.

#define PATA_BF54X_WAIT_TIMEOUT   10000

Function Documentation

void bfin_thaw ( struct ata_port ap)

bfin_thaw - Thaw DMA controller port : port to thaw

Note: Original code is ata_sff_thaw().

Definition at line 1210 of file pata_bf54x.c.

MODULE_ALIAS ( "platform:"  DRV_NAME)
MODULE_AUTHOR ( "Sonic Zhang <[email protected]>"  )
MODULE_DESCRIPTION ( "PATA driver for blackfin 54x ATAPI controller"  )
module_exit ( bfin_atapi_exit  )
module_init ( bfin_atapi_init  )
MODULE_LICENSE ( "GPL"  )
module_param_string ( bfin_atapi_mode  ,
bfin_atapi_mode  ,
ATAPI_MODE_SIZE  ,
 
)
MODULE_VERSION ( DRV_VERSION  )