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. |