#include <linux/module.h>
#include <linux/cpufreq.h>
#include <linux/ioport.h>
#include <linux/kernel.h>
#include <linux/spinlock.h>
#include <linux/platform_device.h>
#include <mach/hardware.h>
#include <mach/pxa2xx-regs.h>
#include <asm/mach-types.h>
#include <pcmcia/cistpl.h>
#define PCMCIAPrtSp 0x04000000
#define PCMCIASp (4*PCMCIAPrtSp)
#define PCMCIAIOSp PCMCIAPrtSp
#define PCMCIAAttrSp PCMCIAPrtSp
#define PCMCIAMemSp PCMCIAPrtSp
#define PCMCIA0Sp PCMCIASp
#define PCMCIA0IOSp PCMCIAIOSp
#define PCMCIA0AttrSp PCMCIAAttrSp
#define PCMCIA0MemSp PCMCIAMemSp
#define PCMCIA1Sp PCMCIASp
#define PCMCIA1IOSp PCMCIAIOSp
#define PCMCIA1AttrSp PCMCIAAttrSp
#define PCMCIA1MemSp PCMCIAMemSp
(0x20000000 + (Nb) * PCMCIASp)
#define _PCMCIAIO(Nb) _PCMCIA(Nb)
#define _PCMCIAAttr(Nb) \
(_PCMCIA(Nb) + 2 * PCMCIAPrtSp)
(_PCMCIA(Nb) + 3 * PCMCIAPrtSp)
#define _PCMCIA0 _PCMCIA(0)
#define _PCMCIA0IO _PCMCIAIO(0)
#define _PCMCIA0Attr _PCMCIAAttr(0)
#define _PCMCIA0Mem _PCMCIAMem(0)
#define _PCMCIA1 _PCMCIA(1)
#define _PCMCIA1IO _PCMCIAIO(1)
#define _PCMCIA1Attr _PCMCIAAttr(1)
#define _PCMCIA1Mem _PCMCIAMem(1)
#define MCXX_SETUP_MASK (0x7f)
#define MCXX_ASST_MASK (0x1f)
#define MCXX_HOLD_MASK (0x3f)
#define MCXX_SETUP_SHIFT (0)
#define MCXX_ASST_SHIFT (7)
#define MCXX_HOLD_SHIFT (14)
static inline u_int pxa2xx_mcxx_hold(u_int pcmcia_cycle_ns,
u_int code = pcmcia_cycle_ns * mem_clk_10khz;
return (code / 300000) + ((code % 300000) ? 1 : 0) - 1;