Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
m8xx_pcmcia.c File Reference
#include <linux/module.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/string.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/timer.h>
#include <linux/ioport.h>
#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/fsl_devices.h>
#include <linux/bitops.h>
#include <linux/of_device.h>
#include <linux/of_platform.h>
#include <asm/io.h>
#include <asm/time.h>
#include <asm/mpc8xx.h>
#include <asm/8xx_immap.h>
#include <asm/irq.h>
#include <asm/fs_pd.h>
#include <pcmcia/ss.h>

Go to the source code of this file.

Data Structures

struct  pcmcia_win
 
struct  event_table
 
struct  socket_info
 

Macros

#define pcmcia_info(args...)   printk(KERN_INFO "m8xx_pcmcia: "args)
 
#define pcmcia_error(args...)   printk(KERN_ERR "m8xx_pcmcia: "args)
 
#define PCMCIA_MEM_WIN_BASE   0xe0000000 /* base address for memory window 0 */
 
#define PCMCIA_MEM_WIN_SIZE   0x04000000 /* each memory window is 64 MByte */
 
#define PCMCIA_IO_WIN_BASE   _IO_BASE /* base address for io window 0 */
 
#define PCMCIA_SOCKET_KEY_5V   1
 
#define PCMCIA_SOCKET_KEY_LV   2
 
#define M8XX_PCMCIA_VS1(slot)   (0x80000000 >> (slot << 4))
 
#define M8XX_PCMCIA_VS2(slot)   (0x40000000 >> (slot << 4))
 
#define M8XX_PCMCIA_VS_MASK(slot)   (0xc0000000 >> (slot << 4))
 
#define M8XX_PCMCIA_VS_SHIFT(slot)   (30 - (slot << 4))
 
#define M8XX_PCMCIA_WP(slot)   (0x20000000 >> (slot << 4))
 
#define M8XX_PCMCIA_CD2(slot)   (0x10000000 >> (slot << 4))
 
#define M8XX_PCMCIA_CD1(slot)   (0x08000000 >> (slot << 4))
 
#define M8XX_PCMCIA_BVD2(slot)   (0x04000000 >> (slot << 4))
 
#define M8XX_PCMCIA_BVD1(slot)   (0x02000000 >> (slot << 4))
 
#define M8XX_PCMCIA_RDY(slot)   (0x01000000 >> (slot << 4))
 
#define M8XX_PCMCIA_RDY_L(slot)   (0x00800000 >> (slot << 4))
 
#define M8XX_PCMCIA_RDY_H(slot)   (0x00400000 >> (slot << 4))
 
#define M8XX_PCMCIA_RDY_R(slot)   (0x00200000 >> (slot << 4))
 
#define M8XX_PCMCIA_RDY_F(slot)   (0x00100000 >> (slot << 4))
 
#define M8XX_PCMCIA_MASK(slot)   (0xFFFF0000 >> (slot << 4))
 
#define M8XX_PCMCIA_POR_VALID   0x00000001
 
#define M8XX_PCMCIA_POR_WRPROT   0x00000002
 
#define M8XX_PCMCIA_POR_ATTRMEM   0x00000010
 
#define M8XX_PCMCIA_POR_IO   0x00000018
 
#define M8XX_PCMCIA_POR_16BIT   0x00000040
 
#define M8XX_PGCRX(slot)   m8xx_pgcrx[slot]
 
#define M8XX_PGCRX_CXOE   0x00000080
 
#define M8XX_PGCRX_CXRESET   0x00000040
 
#define PCMCIA_EVENTS_MAX   5 /* 4 max at a time + termination */
 
#define M8XX_SIZES_NO   32
 
#define PCMCIA_BMT_LIMIT   (15*4) /* Bus Monitor Timeout value */
 
#define ADJ   180 /* 80 % longer accesstime - to be sure */
 
#define M8XX_SIZE   (io->stop - io->start + 1)
 
#define M8XX_BASE   (PCMCIA_IO_WIN_BASE + io->start)
 

Functions

 MODULE_LICENSE ("Dual MPL/GPL")
 
 MODULE_DEVICE_TABLE (of, m8xx_pcmcia_match)
 
 module_platform_driver (m8xx_pcmcia_driver)
 

Macro Definition Documentation

#define ADJ   180 /* 80 % longer accesstime - to be sure */
#define M8XX_BASE   (PCMCIA_IO_WIN_BASE + io->start)
#define M8XX_PCMCIA_BVD1 (   slot)    (0x02000000 >> (slot << 4))

Definition at line 183 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_BVD2 (   slot)    (0x04000000 >> (slot << 4))

Definition at line 182 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_CD1 (   slot)    (0x08000000 >> (slot << 4))

Definition at line 181 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_CD2 (   slot)    (0x10000000 >> (slot << 4))

Definition at line 180 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_MASK (   slot)    (0xFFFF0000 >> (slot << 4))

Definition at line 189 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_POR_16BIT   0x00000040

Definition at line 195 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_POR_ATTRMEM   0x00000010

Definition at line 193 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_POR_IO   0x00000018

Definition at line 194 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_POR_VALID   0x00000001

Definition at line 191 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_POR_WRPROT   0x00000002

Definition at line 192 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_RDY (   slot)    (0x01000000 >> (slot << 4))

Definition at line 184 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_RDY_F (   slot)    (0x00100000 >> (slot << 4))

Definition at line 188 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_RDY_H (   slot)    (0x00400000 >> (slot << 4))

Definition at line 186 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_RDY_L (   slot)    (0x00800000 >> (slot << 4))

Definition at line 185 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_RDY_R (   slot)    (0x00200000 >> (slot << 4))

Definition at line 187 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_VS1 (   slot)    (0x80000000 >> (slot << 4))

Definition at line 174 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_VS2 (   slot)    (0x40000000 >> (slot << 4))

Definition at line 175 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_VS_MASK (   slot)    (0xc0000000 >> (slot << 4))

Definition at line 176 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_VS_SHIFT (   slot)    (30 - (slot << 4))

Definition at line 177 of file m8xx_pcmcia.c.

#define M8XX_PCMCIA_WP (   slot)    (0x20000000 >> (slot << 4))

Definition at line 179 of file m8xx_pcmcia.c.

#define M8XX_PGCRX (   slot)    m8xx_pgcrx[slot]

Definition at line 197 of file m8xx_pcmcia.c.

#define M8XX_PGCRX_CXOE   0x00000080

Definition at line 199 of file m8xx_pcmcia.c.

#define M8XX_PGCRX_CXRESET   0x00000040

Definition at line 200 of file m8xx_pcmcia.c.

#define M8XX_SIZE   (io->stop - io->start + 1)
#define M8XX_SIZES_NO   32

Definition at line 236 of file m8xx_pcmcia.c.

#define PCMCIA_BMT_LIMIT   (15*4) /* Bus Monitor Timeout value */

Definition at line 254 of file m8xx_pcmcia.c.

#define pcmcia_error (   args...)    printk(KERN_ERR "m8xx_pcmcia: "args)

Definition at line 64 of file m8xx_pcmcia.c.

#define PCMCIA_EVENTS_MAX   5 /* 4 max at a time + termination */

Definition at line 204 of file m8xx_pcmcia.c.

#define pcmcia_info (   args...)    printk(KERN_INFO "m8xx_pcmcia: "args)

Definition at line 63 of file m8xx_pcmcia.c.

#define PCMCIA_IO_WIN_BASE   _IO_BASE /* base address for io window 0 */

Definition at line 138 of file m8xx_pcmcia.c.

#define PCMCIA_MEM_WIN_BASE   0xe0000000 /* base address for memory window 0 */

Definition at line 136 of file m8xx_pcmcia.c.

#define PCMCIA_MEM_WIN_SIZE   0x04000000 /* each memory window is 64 MByte */

Definition at line 137 of file m8xx_pcmcia.c.

#define PCMCIA_SOCKET_KEY_5V   1

Definition at line 145 of file m8xx_pcmcia.c.

#define PCMCIA_SOCKET_KEY_LV   2

Definition at line 146 of file m8xx_pcmcia.c.

Function Documentation

MODULE_DEVICE_TABLE ( of  ,
m8xx_pcmcia_match   
)
MODULE_LICENSE ( "Dual MPL/GPL"  )
module_platform_driver ( m8xx_pcmcia_driver  )