diff options
Diffstat (limited to 'drivers/pcmcia/sa1100_h3600.c')
-rw-r--r-- | drivers/pcmcia/sa1100_h3600.c | 60 |
1 files changed, 1 insertions, 59 deletions
diff --git a/drivers/pcmcia/sa1100_h3600.c b/drivers/pcmcia/sa1100_h3600.c index a91222bc3824..a6d387d9ec4d 100644 --- a/drivers/pcmcia/sa1100_h3600.c +++ b/drivers/pcmcia/sa1100_h3600.c @@ -33,24 +33,6 @@ static int h3600_pcmcia_hw_init(struct soc_pcmcia_socket *skt) switch (skt->nr) { case 0: - err = gpio_request(H3XXX_EGPIO_OPT_NVRAM_ON, "OPT NVRAM ON"); - if (err) - goto err01; - err = gpio_direction_output(H3XXX_EGPIO_OPT_NVRAM_ON, 0); - if (err) - goto err03; - err = gpio_request(H3XXX_EGPIO_OPT_ON, "OPT ON"); - if (err) - goto err03; - err = gpio_direction_output(H3XXX_EGPIO_OPT_ON, 0); - if (err) - goto err04; - err = gpio_request(H3XXX_EGPIO_OPT_RESET, "OPT RESET"); - if (err) - goto err04; - err = gpio_direction_output(H3XXX_EGPIO_OPT_RESET, 0); - if (err) - goto err05; err = gpio_request(H3XXX_EGPIO_CARD_RESET, "PCMCIA CARD RESET"); if (err) goto err05; @@ -64,11 +46,7 @@ static int h3600_pcmcia_hw_init(struct soc_pcmcia_socket *skt) return 0; err06: gpio_free(H3XXX_EGPIO_CARD_RESET); -err05: gpio_free(H3XXX_EGPIO_OPT_RESET); -err04: gpio_free(H3XXX_EGPIO_OPT_ON); -err03: gpio_free(H3XXX_EGPIO_OPT_NVRAM_ON); -err01: gpio_free(H3XXX_GPIO_PCMCIA_IRQ0); - return err; +err05: return err; } static void h3600_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt) @@ -76,14 +54,7 @@ static void h3600_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt) switch (skt->nr) { case 0: /* Disable CF bus: */ - gpio_set_value(H3XXX_EGPIO_OPT_NVRAM_ON, 0); - gpio_set_value(H3XXX_EGPIO_OPT_ON, 0); - gpio_set_value(H3XXX_EGPIO_OPT_RESET, 1); - gpio_free(H3XXX_EGPIO_CARD_RESET); - gpio_free(H3XXX_EGPIO_OPT_RESET); - gpio_free(H3XXX_EGPIO_OPT_ON); - gpio_free(H3XXX_EGPIO_OPT_NVRAM_ON); break; case 1: break; @@ -115,41 +86,12 @@ h3600_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, const socket_state_ return 0; } -static void h3600_pcmcia_socket_init(struct soc_pcmcia_socket *skt) -{ - /* Enable CF bus: */ - gpio_set_value(H3XXX_EGPIO_OPT_NVRAM_ON, 1); - gpio_set_value(H3XXX_EGPIO_OPT_ON, 1); - gpio_set_value(H3XXX_EGPIO_OPT_RESET, 0); - - msleep(10); -} - -static void h3600_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt) -{ - /* - * FIXME: This doesn't fit well. We don't have the mechanism in - * the generic PCMCIA layer to deal with the idea of two sockets - * on one bus. We rely on the cs.c behaviour shutting down - * socket 0 then socket 1. - */ - if (skt->nr == 1) { - gpio_set_value(H3XXX_EGPIO_OPT_ON, 0); - gpio_set_value(H3XXX_EGPIO_OPT_NVRAM_ON, 0); - /* hmm, does this suck power? */ - gpio_set_value(H3XXX_EGPIO_OPT_RESET, 1); - } -} - struct pcmcia_low_level h3600_pcmcia_ops = { .owner = THIS_MODULE, .hw_init = h3600_pcmcia_hw_init, .hw_shutdown = h3600_pcmcia_hw_shutdown, .socket_state = h3600_pcmcia_socket_state, .configure_socket = h3600_pcmcia_configure_socket, - - .socket_init = h3600_pcmcia_socket_init, - .socket_suspend = h3600_pcmcia_socket_suspend, }; int pcmcia_h3600_init(struct device *dev) |