示例#1
0
static int e750_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, const socket_state_t *state)
{
	/* reset it? */
	if(state->flags & SS_RESET)
		GPSR_BIT(GPIO_E740_PCMCIA_RST0);
	else 
		GPCR_BIT(GPIO_E740_PCMCIA_RST0);
	

	/* Apply socket voltage */
	switch (state->Vcc) {
		case 0:
			GPCR_BIT(GPIO_E740_PCMCIA_PWR0);
			break;
		case 50:
		case 33:
			/* Apply power to socket */
			GPSR_BIT(GPIO_E740_PCMCIA_PWR0);
			break;
		default:
		printk (KERN_ERR "%s: Unsupported Vcc:%d\n", __FUNCTION__, state->Vcc);
	}

        return 0;
}
示例#2
0
static int hx2750_pcmcia_configure_socket(struct soc_pcmcia_socket *skt,
				       const socket_state_t *state)
{
	int ret = 0;

	if(state->flags & SS_RESET) {
		if(skt->nr == 0)
			{}//hx2750_set_egpio(HX2750_EGPIO_CF0_RESET);
		else
			hx2750_set_egpio(HX2750_EGPIO_CF1_RESET);
	} else {
		if(skt->nr == 0)
			{}//hx2750_clear_egpio(HX2750_EGPIO_CF0_RESET);
		else
			hx2750_clear_egpio(HX2750_EGPIO_CF1_RESET);
	}

	/* Apply socket voltage */
	switch (state->Vcc) {
		case 0:
			if(skt->nr == 0)
				GPCR_BIT(HX2750_GPIO_CF_PWR);
			else
				hx2750_clear_egpio(HX2750_EGPIO_WIFI_PWR);
			break;
		case 50:
		case 33:
			/* Apply power to socket */
			if(skt->nr == 0)
				GPSR_BIT(HX2750_GPIO_CF_PWR);
			else
				hx2750_set_egpio(HX2750_EGPIO_WIFI_PWR);
			break;
		default:
			printk (KERN_ERR "%s: Unsupported Vcc:%d\n", __FUNCTION__, state->Vcc);
			ret = -1;
			break;
	}
	
	return ret;
}