summaryrefslogtreecommitdiff
path: root/drivers/pcmcia/rpx_pcmcia.c
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2007-12-11 11:34:54 +0100
committerStefan Roese <sr@denx.de>2007-12-11 11:34:54 +0100
commit9caeaadf508cd0e11ac5dfc56ab0f72e3b89a105 (patch)
tree1afcc9c20c04e19870ab5e2996104877695c54a3 /drivers/pcmcia/rpx_pcmcia.c
parent7cfc12a7dcfdb350e2ab76db4dafcc30f7e77c2b (diff)
parent41be969f4957115ed7b1fe8b890bfaee99d7a7a2 (diff)
downloadu-boot-imx-9caeaadf508cd0e11ac5dfc56ab0f72e3b89a105.zip
u-boot-imx-9caeaadf508cd0e11ac5dfc56ab0f72e3b89a105.tar.gz
u-boot-imx-9caeaadf508cd0e11ac5dfc56ab0f72e3b89a105.tar.bz2
Merge commit 'u-boot/master' into for-1.3.1
Conflicts: drivers/rtc/Makefile
Diffstat (limited to 'drivers/pcmcia/rpx_pcmcia.c')
-rw-r--r--drivers/pcmcia/rpx_pcmcia.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/drivers/pcmcia/rpx_pcmcia.c b/drivers/pcmcia/rpx_pcmcia.c
new file mode 100644
index 0000000..c7c425b
--- /dev/null
+++ b/drivers/pcmcia/rpx_pcmcia.c
@@ -0,0 +1,73 @@
+/* -------------------------------------------------------------------- */
+/* RPX Boards from Embedded Planet */
+/* -------------------------------------------------------------------- */
+#include <common.h>
+#ifdef CONFIG_8xx
+#include <mpc8xx.h>
+#endif
+#include <pcmcia.h>
+
+#undef CONFIG_PCMCIA
+
+#if defined(CONFIG_CMD_PCMCIA)
+#define CONFIG_PCMCIA
+#endif
+
+#if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD)
+#define CONFIG_PCMCIA
+#endif
+
+#if defined(CONFIG_PCMCIA) \
+ && (defined(CONFIG_RPXCLASSIC) || defined(CONFIG_RPXLITE))
+
+#define PCMCIA_BOARD_MSG "RPX CLASSIC or RPX LITE"
+
+int pcmcia_voltage_set(int slot, int vcc, int vpp)
+{
+ u_long reg = 0;
+
+ switch(vcc) {
+ case 0: break;
+ case 33: reg |= BCSR1_PCVCTL4; break;
+ case 50: reg |= BCSR1_PCVCTL5; break;
+ default: return 1;
+ }
+
+ switch(vpp) {
+ case 0: break;
+ case 33:
+ case 50:
+ if(vcc == vpp)
+ reg |= BCSR1_PCVCTL6;
+ else
+ return 1;
+ break;
+ case 120:
+ reg |= BCSR1_PCVCTL7;
+ default: return 1;
+ }
+
+ /* first, turn off all power */
+ *((uint *)RPX_CSR_ADDR) &= ~(BCSR1_PCVCTL4 | BCSR1_PCVCTL5
+ | BCSR1_PCVCTL6 | BCSR1_PCVCTL7);
+
+ /* enable new powersettings */
+ *((uint *)RPX_CSR_ADDR) |= reg;
+
+ return 0;
+}
+
+int pcmcia_hardware_enable (int slot)
+{
+ return 0; /* No hardware to enable */
+}
+
+#if defined(CONFIG_CMD_PCMCIA)
+static int pcmcia_hardware_disable(int slot)
+{
+ return 0; /* No hardware to disable */
+}
+#endif
+
+
+#endif /* CONFIG_PCMCIA && (CONFIG_RPXCLASSIC || CONFIG_RPXLITE) */