|
From: <mar...@us...> - 2007-08-14 13:07:47
|
Revision: 1238
http://hackndev.svn.sourceforge.net/hackndev/?rev=1238&view=rev
Author: marex_z71
Date: 2007-08-14 06:07:46 -0700 (Tue, 14 Aug 2007)
Log Message:
-----------
PalmTX: complete and working PCMCIA driver
Modified Paths:
--------------
linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx.c
linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_pcmcia.c
linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtx-gpio.h
Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx.c
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx.c 2007-08-13 07:41:18 UTC (rev 1237)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx.c 2007-08-14 13:07:46 UTC (rev 1238)
@@ -399,23 +399,16 @@
static struct map_desc palmtx_io_desc[] __initdata = {
{
.virtual = 0xf0000000,
- .pfn = __phys_to_pfn(0x20000000),
+ .pfn = __phys_to_pfn(0x28000000),
.length = 0x00100000,
.type = MT_DEVICE
},
- {
- .virtual = 0xf1000000,
- .pfn = __phys_to_pfn(0x30000000),
- .length = 0x00100000,
- .type = MT_DEVICE
- },
};
-
+
static void __init palmtx_map_io(void)
{
pxa_map_io();
-
iotable_init(palmtx_io_desc, ARRAY_SIZE(palmtx_io_desc));
}
Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_pcmcia.c
===================================================================
--- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_pcmcia.c 2007-08-13 07:41:18 UTC (rev 1237)
+++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_pcmcia.c 2007-08-14 13:07:46 UTC (rev 1238)
@@ -2,7 +2,7 @@
Driver for Palm T|X PCMCIA
- (C) 2007 by Marek Vasut <mar...@gm...>
+ Copyright (C) 2007 Marek Vasut <mar...@gm...>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -50,19 +50,32 @@
#define palmtx_pcmcia_dbg(format, args...) do {} while (0)
#endif
-/* GPIO defines */
-#define PALMTX_PCMCIA_IRQ 116
-#define PALMTX_PCMCIA_POWER 94
-#define PALMTX_PCMCIA_RESET 108
-/* other possible GPIOs - 46 and 70 ? */
+static struct pcmcia_irqs palmtx_socket_state_irqs[] = {
+};
static int palmtx_pcmcia_hw_init (struct soc_pcmcia_socket *skt)
{
-/* set_irq_type(PALMTX_PCMCIA_IRQ, IRQT_FALLING);*/ /* turns off backlight :-/ */
- skt->irq = IRQ_GPIO(PALMTX_PCMCIA_IRQ);
+ GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) |
+ GPIO_bit(GPIO49_nPWE) |
+ GPIO_bit(GPIO85_nPCE_1_MD) |
+ GPIO_bit(GPIO53_nPCE_2_MD) |
+ GPIO_bit(GPIO54_pSKTSEL_MD) |
+ GPIO_bit(GPIO55_nPREG_MD) |
+ GPIO_bit(GPIO56_nPWAIT_MD);
+ pxa_gpio_mode(GPIO48_nPOE_MD);
+ pxa_gpio_mode(GPIO49_nPWE_MD);
+ pxa_gpio_mode(GPIO85_nPCE_1_MD);
+ pxa_gpio_mode(GPIO53_nPCE_2_MD);
+ pxa_gpio_mode(GPIO54_pSKTSEL_MD);
+ pxa_gpio_mode(GPIO55_nPREG_MD);
+ pxa_gpio_mode(GPIO56_nPWAIT_MD);
+
+ skt->irq = IRQ_GPIO(GPIO_NR_PALMTX_PCMCIA_READY);
+
palmtx_pcmcia_dbg("%s:%i, Socket:%d\n", __FUNCTION__, __LINE__, skt->nr);
- return 0;
+ return soc_pcmcia_request_irqs(skt, palmtx_socket_state_irqs,
+ ARRAY_SIZE(palmtx_socket_state_irqs));
}
static void palmtx_pcmcia_hw_shutdown (struct soc_pcmcia_socket *skt)
@@ -75,10 +88,10 @@
palmtx_pcmcia_socket_state (struct soc_pcmcia_socket *skt, struct pcmcia_state *state)
{
state->detect = 1; /* always inserted */
- state->ready = GET_GPIO(PALMTX_PCMCIA_IRQ) ? 1 : 0;
+ state->ready = GET_PALMTX_GPIO(PCMCIA_READY) ? 1 : 0;
state->bvd1 = 1;
state->bvd2 = 1;
- state->wrprot = 1;
+ state->wrprot = 0;
state->vs_3v = 1;
state->vs_Xv = 0;
}
@@ -89,8 +102,9 @@
palmtx_pcmcia_dbg("%s:%i Reset:%d Vcc:%d\n", __FUNCTION__, __LINE__,
(state->flags & SS_RESET) ? 1 : 0, state->Vcc);
- SET_GPIO(PALMTX_PCMCIA_POWER, 1);
- SET_GPIO(PALMTX_PCMCIA_RESET, (state->flags & SS_RESET) ? 1 : 0);
+ SET_PALMTX_GPIO(PCMCIA_POWER1, 1);
+ SET_PALMTX_GPIO(PCMCIA_POWER2, 1);
+ SET_PALMTX_GPIO(PCMCIA_RESET, (state->flags & SS_RESET) ? 1 : 0);
return 0;
}
@@ -109,7 +123,7 @@
.owner = THIS_MODULE,
.first = 0,
- .nr = 2,
+ .nr = 1,
.hw_init = palmtx_pcmcia_hw_init,
.hw_shutdown = palmtx_pcmcia_hw_shutdown,
Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtx-gpio.h
===================================================================
--- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtx-gpio.h 2007-08-13 07:41:18 UTC (rev 1237)
+++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtx-gpio.h 2007-08-14 13:07:46 UTC (rev 1238)
@@ -7,6 +7,7 @@
*
* Authors: Cristiano P. <cristianop AT users DOT sourceforge DOT net>
* Jan Herman <2hp AT seznam DOT cz>
+ * Marek Vasut <marek.vasut AT gmail DOT com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -83,10 +84,10 @@
#define GPIO_NR_PALMTX_BT_UART_CTS_MD (GPIO_NR_PALMTX_BT_CTS | GPIO_ALT_FN_1_IN)
#define GPIO_NR_PALMTX_BT_UART_RTS_MD (GPIO_NR_PALMTX_BT_RTS | GPIO_ALT_FN_2_OUT)
-/* WiFi */
-
-#define GPIO_NR_PALMTX_WIFI_POWER 94
-#define GPIO_NR_PALMTX_WIFI_RESET 108
+/* PCMCIA (WiFi) */
+#define GPIO_NR_PALMTX_PCMCIA_POWER1 94
+#define GPIO_NR_PALMTX_PCMCIA_POWER2 108
+#define GPIO_NR_PALMTX_PCMCIA_RESET 79
#define GPIO_NR_PALMTX_PCMCIA_READY 116
/* INTERRUPTS */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|