static void
pcmcia_a5x0_power_on(void)
{
	u32 pipr;
	int i;
	trace();

	mxc_set_gpio(GPIO_PIN(xCF_PWREN), GPIO_OUTPUT, GPIO_LOW);
	for (i=0; i<100; i++) {
		pipr = read32(PCMCIA_IF_BASE_ADDR + PIPR);
		if (pipr & 0x100)
			break;
		mdelay(10);
	}
	mdelay(500);
}
static void
pcmcia_a5x0_mux_init(void)
{
	trace();
	mxc_set_mux(MUX_PIN(SDBA0),     MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(SDBA1),     MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_CD1),    MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_CD2),    MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_WAIT),   MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_READY),  MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_PWRON),  MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_VS1),    MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_VS2),    MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_BVD1),   MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_BVD2),   MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_RST),    MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(IOIS16),    MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_RW),     MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(PC_POE),    MUX_O_FUNC | MUX_I_FUNC);
	mxc_set_mux(MUX_PIN(xCF_PWREN), MUX_O_GPIO | MUX_I_GPIO);

	mxc_set_gpio(GPIO_PIN(xCF_PWREN), GPIO_OUTPUT, GPIO_HIGH);
}
static void
pcmcia_a5x0_power_off(void)
{
	trace();
	mxc_set_gpio(GPIO_PIN(xCF_PWREN), GPIO_OUTPUT, GPIO_HIGH);
}
Exemple #4
0
int
mxc_set_alarm(int idx, int val)
{
	return mxc_set_gpio(idx, val);
}