Import upstream u-boot 1.1.4
[u-boot.git] / board / adsvix / pcmcia.c
1 /*
2  * (C) Copyright 2004
3  * Robert Whaley, Applied Data Systems, Inc. rwhaley@applieddata.net
4  *
5  * See file CREDITS for list of people who contributed to this
6  * project.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of
11  * the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21  * MA 02111-1307 USA
22  */
23
24 #include <common.h>
25 #include <asm/arch/pxa-regs.h>
26
27 void pcmcia_power_on(void)
28 {
29 #if 0
30         if (!(GPLR(20) & GPIO_bit(20))) { /* 3.3V */
31                 GPCR(81) = GPIO_bit(81);
32                 GPSR(82) = GPIO_bit(82);
33         }
34         else if (!(GPLR(21) & GPIO_bit(21))) { /* 5.0V */
35                 GPCR(81) = GPIO_bit(81);
36                 GPCR(82) = GPIO_bit(82);
37         }
38 #else
39 #warning "Board will only supply 5V, wait for next HW spin for selectable power"
40         /* 5.0V */
41         GPCR(81) = GPIO_bit(81);
42         GPCR(82) = GPIO_bit(82);
43 #endif
44
45         udelay(300000);
46
47         /* reset the card */
48         GPSR(52) = GPIO_bit(52);
49
50         /* enable PCMCIA */
51         GPCR(83) = GPIO_bit(83);
52
53         /* clear reset */
54         udelay(10);
55         GPCR(52) = GPIO_bit(52);
56
57         udelay(20000);
58 }
59
60 void pcmcia_power_off(void)
61 {
62         /* 0V */
63         GPSR(81) = GPIO_bit(81);
64         GPSR(82) = GPIO_bit(82);
65         /* disable PCMCIA */
66         GPSR(83) = GPIO_bit(83);
67 }