PXA: Remove PXA PCMCIA support
Say good bye to some ancient, very broken and unused code. Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
This commit is contained in:
parent
81f731ca7c
commit
c1ff6d8872
|
@ -1,56 +0,0 @@
|
|||
|
||||
These are brief instructions on how to add support for CF adapters to
|
||||
custom designed PXA boards. You need to set the parameters in the
|
||||
config file. This should work for most implementations especially if you
|
||||
follow the connections of the standard lubbock. Anyway just the block
|
||||
marked memory configuration should be touched since the other parameters
|
||||
are imposed by the PXA architecture.
|
||||
|
||||
EDIT 2010-07-01: in common/cmd_ide.c, having CONFIG_PXA_PCMCIA defined
|
||||
would cause looping on inw()/outw() rather than using insw()/outsw(),
|
||||
thus making sure IDE / ATA bytes are properly swapped. This behaviour
|
||||
is now controlled by CONFIG_IDE_SWAP_IO, therefore PXA boards with
|
||||
PCMCIA should #define CONFIG_IDE_SWAP_IO.
|
||||
|
||||
#define CONFIG_IDE_SWAP_IO
|
||||
|
||||
#define CONFIG_PXA_PCMCIA 1
|
||||
#define CONFIG_PXA_IDE 1
|
||||
|
||||
#define CONFIG_PCMCIA_SLOT_A 1
|
||||
/* just to keep build system happy */
|
||||
|
||||
#define CONFIG_SYS_PCMCIA_MEM_ADDR 0x28000000
|
||||
#define CONFIG_SYS_PCMCIA_MEM_SIZE 0x10000000
|
||||
|
||||
#define CONFIG_SYS_MECR_VAL 0x00000000
|
||||
#define CONFIG_SYS_MCMEM0_VAL 0x00004204
|
||||
#define CONFIG_SYS_MCMEM1_VAL 0x00000000
|
||||
#define CONFIG_SYS_MCATT0_VAL 0x00010504
|
||||
#define CONFIG_SYS_MCATT1_VAL 0x00000000
|
||||
#define CONFIG_SYS_MCIO0_VAL 0x00008407
|
||||
#define CONFIG_SYS_MCIO1_VAL 0x00000000
|
||||
/* memory configuration */
|
||||
|
||||
#define CONFIG_SYS_IDE_MAXBUS 1
|
||||
/* max. 1 IDE bus */
|
||||
#define CONFIG_SYS_IDE_MAXDEVICE 1
|
||||
/* max. 1 drive per IDE bus */
|
||||
|
||||
#define CONFIG_SYS_ATA_IDE0_OFFSET 0x0000
|
||||
|
||||
#define CONFIG_SYS_ATA_BASE_ADDR 0x20000000
|
||||
|
||||
/* Offset for data I/O */
|
||||
#define CONFIG_SYS_ATA_DATA_OFFSET 0x1f0
|
||||
|
||||
/* Offset for normal register accesses */
|
||||
#define CONFIG_SYS_ATA_REG_OFFSET 0x1f0
|
||||
|
||||
/* Offset for alternate registers */
|
||||
#define CONFIG_SYS_ATA_ALT_OFFSET 0x3f0
|
||||
|
||||
|
||||
Another important point is that maybe you have to power the pcmcia
|
||||
subsystem. This is very board specific, for an example on how to
|
||||
do it please search for CONFIG_EXADRON1 in cmd_pcmcia.c
|
|
@ -27,7 +27,6 @@ LIB := $(obj)libpcmcia.o
|
|||
|
||||
COBJS-$(CONFIG_I82365) += i82365.o
|
||||
COBJS-$(CONFIG_8xx) += mpc8xx_pcmcia.o
|
||||
COBJS-$(CONFIG_PXA_PCMCIA) += pxa_pcmcia.o
|
||||
COBJS-y += rpx_pcmcia.o
|
||||
COBJS-$(CONFIG_IDE_TI_CARDBUS) += ti_pci1410a.o
|
||||
COBJS-y += tqm8xx_pcmcia.o
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
#include <common.h>
|
||||
#include <config.h>
|
||||
|
||||
#include <pcmcia.h>
|
||||
#include <asm/arch/pxa-regs.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
static inline void msWait(unsigned msVal)
|
||||
{
|
||||
udelay(msVal*1000);
|
||||
}
|
||||
|
||||
int pcmcia_on (void)
|
||||
{
|
||||
unsigned int reg_arr[] = {
|
||||
0x48000028, CONFIG_SYS_MCMEM0_VAL,
|
||||
0x4800002c, CONFIG_SYS_MCMEM1_VAL,
|
||||
0x48000030, CONFIG_SYS_MCATT0_VAL,
|
||||
0x48000034, CONFIG_SYS_MCATT1_VAL,
|
||||
0x48000038, CONFIG_SYS_MCIO0_VAL,
|
||||
0x4800003c, CONFIG_SYS_MCIO1_VAL,
|
||||
|
||||
0, 0
|
||||
};
|
||||
int i, rc;
|
||||
|
||||
#ifdef CONFIG_EXADRON1
|
||||
int cardDetect;
|
||||
volatile unsigned int *v_pBCRReg =
|
||||
(volatile unsigned int *) 0x08000000;
|
||||
#endif
|
||||
|
||||
debug ("%s\n", __FUNCTION__);
|
||||
|
||||
i = 0;
|
||||
while (reg_arr[i]) {
|
||||
(*(volatile unsigned int *) reg_arr[i]) |= reg_arr[i + 1];
|
||||
i += 2;
|
||||
}
|
||||
udelay (1000);
|
||||
|
||||
debug ("%s: programmed mem controller \n", __FUNCTION__);
|
||||
|
||||
#ifdef CONFIG_EXADRON1
|
||||
|
||||
/*define useful BCR masks */
|
||||
#define BCR_CF_INIT_VAL 0x00007230
|
||||
#define BCR_CF_PWRON_BUSOFF_RESETOFF_VAL 0x00007231
|
||||
#define BCR_CF_PWRON_BUSOFF_RESETON_VAL 0x00007233
|
||||
#define BCR_CF_PWRON_BUSON_RESETON_VAL 0x00007213
|
||||
#define BCR_CF_PWRON_BUSON_RESETOFF_VAL 0x00007211
|
||||
|
||||
/* we see from the GPIO bit if the card is present */
|
||||
cardDetect = !(GPLR0 & GPIO_bit (14));
|
||||
|
||||
if (cardDetect) {
|
||||
printf ("No PCMCIA card found!\n");
|
||||
}
|
||||
|
||||
/* reset the card via the BCR line */
|
||||
*v_pBCRReg = (unsigned) BCR_CF_INIT_VAL;
|
||||
msWait (500);
|
||||
|
||||
*v_pBCRReg = (unsigned) BCR_CF_PWRON_BUSOFF_RESETOFF_VAL;
|
||||
msWait (500);
|
||||
|
||||
*v_pBCRReg = (unsigned) BCR_CF_PWRON_BUSOFF_RESETON_VAL;
|
||||
msWait (500);
|
||||
|
||||
*v_pBCRReg = (unsigned) BCR_CF_PWRON_BUSON_RESETON_VAL;
|
||||
msWait (500);
|
||||
|
||||
*v_pBCRReg = (unsigned) BCR_CF_PWRON_BUSON_RESETOFF_VAL;
|
||||
msWait (1500);
|
||||
|
||||
/* enable address bus */
|
||||
GPCR1 = 0x01;
|
||||
/* and the first CF slot */
|
||||
MECR = 0x00000002;
|
||||
|
||||
#endif /* EXADRON 1 */
|
||||
|
||||
rc = check_ide_device (0); /* use just slot 0 */
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_CMD_PCMCIA)
|
||||
int pcmcia_off (void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
|
@ -313,8 +313,7 @@ extern u_int *pcmcia_pgcrx[];
|
|||
#define PCMCIA_PGCRX(slot) (*pcmcia_pgcrx[slot])
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD) \
|
||||
|| defined(CONFIG_PXA_PCMCIA)
|
||||
#if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD)
|
||||
extern int check_ide_device(int slot);
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue