4 #ifdef CONFIG_PXA_PCMCIA
7 #include <asm/arch/pxa-regs.h>
10 static inline void msWait(unsigned msVal
)
17 unsigned int reg_arr
[] = {
18 0x48000028, CFG_MCMEM0_VAL
,
19 0x4800002c, CFG_MCMEM1_VAL
,
20 0x48000030, CFG_MCATT0_VAL
,
21 0x48000034, CFG_MCATT1_VAL
,
22 0x48000038, CFG_MCIO0_VAL
,
23 0x4800003c, CFG_MCIO1_VAL
,
29 #ifdef CONFIG_EXADRON1
31 volatile unsigned int *v_pBCRReg
=
32 (volatile unsigned int *) 0x08000000;
35 debug ("%s\n", __FUNCTION__
);
39 (*(volatile unsigned int *) reg_arr
[i
]) |= reg_arr
[i
+ 1];
44 debug ("%s: programmed mem controller \n", __FUNCTION__
);
46 #ifdef CONFIG_EXADRON1
48 /*define useful BCR masks */
49 #define BCR_CF_INIT_VAL 0x00007230
50 #define BCR_CF_PWRON_BUSOFF_RESETOFF_VAL 0x00007231
51 #define BCR_CF_PWRON_BUSOFF_RESETON_VAL 0x00007233
52 #define BCR_CF_PWRON_BUSON_RESETON_VAL 0x00007213
53 #define BCR_CF_PWRON_BUSON_RESETOFF_VAL 0x00007211
55 /* we see from the GPIO bit if the card is present */
56 cardDetect
= !(GPLR0
& GPIO_bit (14));
59 printf ("No PCMCIA card found!\n");
62 /* reset the card via the BCR line */
63 *v_pBCRReg
= (unsigned) BCR_CF_INIT_VAL
;
66 *v_pBCRReg
= (unsigned) BCR_CF_PWRON_BUSOFF_RESETOFF_VAL
;
69 *v_pBCRReg
= (unsigned) BCR_CF_PWRON_BUSOFF_RESETON_VAL
;
72 *v_pBCRReg
= (unsigned) BCR_CF_PWRON_BUSON_RESETON_VAL
;
75 *v_pBCRReg
= (unsigned) BCR_CF_PWRON_BUSON_RESETOFF_VAL
;
78 /* enable address bus */
80 /* and the first CF slot */
83 #endif /* EXADRON 1 */
85 rc
= check_ide_device (0); /* use just slot 0 */
90 #if defined(CONFIG_CMD_PCMCIA)
97 #endif /* CONFIG_PXA_PCMCIA */