diff options
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r-- | drivers/pcmcia/Kconfig | 2 | ||||
-rw-r--r-- | drivers/pcmcia/Makefile | 2 | ||||
-rw-r--r-- | drivers/pcmcia/pxa2xx_cm_x255.c | 124 | ||||
-rw-r--r-- | drivers/pcmcia/pxa2xx_cm_x270.c | 103 | ||||
-rw-r--r-- | drivers/pcmcia/pxa2xx_cm_x2xx.c | 44 |
5 files changed, 1 insertions, 274 deletions
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig index d13b8d1a780a..ab53eab635f6 100644 --- a/drivers/pcmcia/Kconfig +++ b/drivers/pcmcia/Kconfig @@ -209,7 +209,7 @@ config PCMCIA_PXA2XX tristate "PXA2xx support" depends on ARM && ARCH_PXA && PCMCIA depends on (ARCH_LUBBOCK || MACH_MAINSTONE || PXA_SHARPSL \ - || MACH_ARMCORE || ARCH_PXA_PALM || TRIZEPS_PCMCIA \ + || ARCH_PXA_PALM || TRIZEPS_PCMCIA \ || ARCOM_PCMCIA || ARCH_PXA_ESERIES || MACH_STARGATE2 \ || MACH_VPAC270 || MACH_BALLOON3 || MACH_COLIBRI \ || MACH_COLIBRI320 || MACH_H4700) diff --git a/drivers/pcmcia/Makefile b/drivers/pcmcia/Makefile index d82c07c4806b..2d5657cfc49c 100644 --- a/drivers/pcmcia/Makefile +++ b/drivers/pcmcia/Makefile @@ -48,10 +48,8 @@ sa1100_cs-$(CONFIG_SA1100_H3100) += sa1100_h3600.o sa1100_cs-$(CONFIG_SA1100_H3600) += sa1100_h3600.o sa1100_cs-$(CONFIG_SA1100_SIMPAD) += sa1100_simpad.o -pxa2xx_cm_x2xx_cs-y += pxa2xx_cm_x2xx.o pxa2xx_cm_x255.o pxa2xx_cm_x270.o pxa2xx-obj-$(CONFIG_MACH_MAINSTONE) += pxa2xx_mainstone.o pxa2xx-obj-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o -pxa2xx-obj-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x2xx_cs.o pxa2xx-obj-$(CONFIG_ARCOM_PCMCIA) += pxa2xx_viper.o pxa2xx-obj-$(CONFIG_TRIZEPS_PCMCIA) += pxa2xx_trizeps4.o pxa2xx-obj-$(CONFIG_MACH_PALMTX) += pxa2xx_palmtx.o diff --git a/drivers/pcmcia/pxa2xx_cm_x255.c b/drivers/pcmcia/pxa2xx_cm_x255.c deleted file mode 100644 index c0b6b846fbaa..000000000000 --- a/drivers/pcmcia/pxa2xx_cm_x255.c +++ /dev/null @@ -1,124 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * linux/drivers/pcmcia/pxa/pxa_cm_x255.c - * - * Compulab Ltd., 2003, 2007, 2008 - * Mike Rapoport <mike@compulab.co.il> - */ - -#include <linux/platform_device.h> -#include <linux/irq.h> -#include <linux/delay.h> -#include <linux/gpio.h> -#include <linux/export.h> - -#include "soc_common.h" - -#define GPIO_PCMCIA_SKTSEL (54) -#define GPIO_PCMCIA_S0_CD_VALID (16) -#define GPIO_PCMCIA_S1_CD_VALID (17) -#define GPIO_PCMCIA_S0_RDYINT (6) -#define GPIO_PCMCIA_S1_RDYINT (8) -#define GPIO_PCMCIA_RESET (9) - -static int cmx255_pcmcia_hw_init(struct soc_pcmcia_socket *skt) -{ - int ret = gpio_request(GPIO_PCMCIA_RESET, "PCCard reset"); - if (ret) - return ret; - gpio_direction_output(GPIO_PCMCIA_RESET, 0); - - if (skt->nr == 0) { - skt->stat[SOC_STAT_CD].gpio = GPIO_PCMCIA_S0_CD_VALID; - skt->stat[SOC_STAT_CD].name = "PCMCIA0 CD"; - skt->stat[SOC_STAT_RDY].gpio = GPIO_PCMCIA_S0_RDYINT; - skt->stat[SOC_STAT_RDY].name = "PCMCIA0 RDY"; - } else { - skt->stat[SOC_STAT_CD].gpio = GPIO_PCMCIA_S1_CD_VALID; - skt->stat[SOC_STAT_CD].name = "PCMCIA1 CD"; - skt->stat[SOC_STAT_RDY].gpio = GPIO_PCMCIA_S1_RDYINT; - skt->stat[SOC_STAT_RDY].name = "PCMCIA1 RDY"; - } - - return 0; -} - -static void cmx255_pcmcia_shutdown(struct soc_pcmcia_socket *skt) -{ - gpio_free(GPIO_PCMCIA_RESET); -} - - -static void cmx255_pcmcia_socket_state(struct soc_pcmcia_socket *skt, - struct pcmcia_state *state) -{ - state->vs_3v = 0; - state->vs_Xv = 0; -} - - -static int cmx255_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, - const socket_state_t *state) -{ - switch (skt->nr) { - case 0: - if (state->flags & SS_RESET) { - gpio_set_value(GPIO_PCMCIA_SKTSEL, 0); - udelay(1); - gpio_set_value(GPIO_PCMCIA_RESET, 1); - udelay(10); - gpio_set_value(GPIO_PCMCIA_RESET, 0); - } - break; - case 1: - if (state->flags & SS_RESET) { - gpio_set_value(GPIO_PCMCIA_SKTSEL, 1); - udelay(1); - gpio_set_value(GPIO_PCMCIA_RESET, 1); - udelay(10); - gpio_set_value(GPIO_PCMCIA_RESET, 0); - } - break; - } - - return 0; -} - -static struct pcmcia_low_level cmx255_pcmcia_ops __initdata = { - .owner = THIS_MODULE, - .hw_init = cmx255_pcmcia_hw_init, - .hw_shutdown = cmx255_pcmcia_shutdown, - .socket_state = cmx255_pcmcia_socket_state, - .configure_socket = cmx255_pcmcia_configure_socket, - .nr = 1, -}; - -static struct platform_device *cmx255_pcmcia_device; - -int __init cmx255_pcmcia_init(void) -{ - int ret; - - cmx255_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1); - - if (!cmx255_pcmcia_device) - return -ENOMEM; - - ret = platform_device_add_data(cmx255_pcmcia_device, &cmx255_pcmcia_ops, - sizeof(cmx255_pcmcia_ops)); - - if (ret == 0) { - printk(KERN_INFO "Registering cm-x255 PCMCIA interface.\n"); - ret = platform_device_add(cmx255_pcmcia_device); - } - - if (ret) - platform_device_put(cmx255_pcmcia_device); - - return ret; -} - -void __exit cmx255_pcmcia_exit(void) -{ - platform_device_unregister(cmx255_pcmcia_device); -} diff --git a/drivers/pcmcia/pxa2xx_cm_x270.c b/drivers/pcmcia/pxa2xx_cm_x270.c deleted file mode 100644 index 36e35da5f887..000000000000 --- a/drivers/pcmcia/pxa2xx_cm_x270.c +++ /dev/null @@ -1,103 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * linux/drivers/pcmcia/pxa/pxa_cm_x270.c - * - * Compulab Ltd., 2003, 2007, 2008 - * Mike Rapoport <mike@compulab.co.il> - */ - -#include <linux/platform_device.h> -#include <linux/irq.h> -#include <linux/delay.h> -#include <linux/gpio.h> -#include <linux/export.h> - -#include "soc_common.h" - -#define GPIO_PCMCIA_S0_CD_VALID (84) -#define GPIO_PCMCIA_S0_RDYINT (82) -#define GPIO_PCMCIA_RESET (53) - -static int cmx270_pcmcia_hw_init(struct soc_pcmcia_socket *skt) -{ - int ret = gpio_request(GPIO_PCMCIA_RESET, "PCCard reset"); - if (ret) - return ret; - gpio_direction_output(GPIO_PCMCIA_RESET, 0); - - skt->stat[SOC_STAT_CD].gpio = GPIO_PCMCIA_S0_CD_VALID; - skt->stat[SOC_STAT_CD].name = "PCMCIA0 CD"; - skt->stat[SOC_STAT_RDY].gpio = GPIO_PCMCIA_S0_RDYINT; - skt->stat[SOC_STAT_RDY].name = "PCMCIA0 RDY"; - - return ret; -} - -static void cmx270_pcmcia_shutdown(struct soc_pcmcia_socket *skt) -{ - gpio_free(GPIO_PCMCIA_RESET); -} - - -static void cmx270_pcmcia_socket_state(struct soc_pcmcia_socket *skt, - struct pcmcia_state *state) -{ - state->vs_3v = 0; - state->vs_Xv = 0; -} - - -static int cmx270_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, - const socket_state_t *state) -{ - switch (skt->nr) { - case 0: - if (state->flags & SS_RESET) { - gpio_set_value(GPIO_PCMCIA_RESET, 1); - udelay(10); - gpio_set_value(GPIO_PCMCIA_RESET, 0); - } - break; - } - - return 0; -} - -static struct pcmcia_low_level cmx270_pcmcia_ops __initdata = { - .owner = THIS_MODULE, - .hw_init = cmx270_pcmcia_hw_init, - .hw_shutdown = cmx270_pcmcia_shutdown, - .socket_state = cmx270_pcmcia_socket_state, - .configure_socket = cmx270_pcmcia_configure_socket, - .nr = 1, -}; - -static struct platform_device *cmx270_pcmcia_device; - -int __init cmx270_pcmcia_init(void) -{ - int ret; - - cmx270_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1); - - if (!cmx270_pcmcia_device) - return -ENOMEM; - - ret = platform_device_add_data(cmx270_pcmcia_device, &cmx270_pcmcia_ops, - sizeof(cmx270_pcmcia_ops)); - - if (ret == 0) { - printk(KERN_INFO "Registering cm-x270 PCMCIA interface.\n"); - ret = platform_device_add(cmx270_pcmcia_device); - } - - if (ret) - platform_device_put(cmx270_pcmcia_device); - - return ret; -} - -void __exit cmx270_pcmcia_exit(void) -{ - platform_device_unregister(cmx270_pcmcia_device); -} diff --git a/drivers/pcmcia/pxa2xx_cm_x2xx.c b/drivers/pcmcia/pxa2xx_cm_x2xx.c deleted file mode 100644 index 14eae238131d..000000000000 --- a/drivers/pcmcia/pxa2xx_cm_x2xx.c +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * linux/drivers/pcmcia/pxa/pxa_cm_x2xx.c - * - * Compulab Ltd., 2003, 2007, 2008 - * Mike Rapoport <mike@compulab.co.il> - */ - -#include <linux/module.h> - -#include <asm/mach-types.h> -#include <mach/hardware.h> - -int cmx255_pcmcia_init(void); -int cmx270_pcmcia_init(void); -void cmx255_pcmcia_exit(void); -void cmx270_pcmcia_exit(void); - -static int __init cmx2xx_pcmcia_init(void) -{ - int ret = -ENODEV; - - if (machine_is_armcore() && cpu_is_pxa25x()) - ret = cmx255_pcmcia_init(); - else if (machine_is_armcore() && cpu_is_pxa27x()) - ret = cmx270_pcmcia_init(); - - return ret; -} - -static void __exit cmx2xx_pcmcia_exit(void) -{ - if (machine_is_armcore() && cpu_is_pxa25x()) - cmx255_pcmcia_exit(); - else if (machine_is_armcore() && cpu_is_pxa27x()) - cmx270_pcmcia_exit(); -} - -module_init(cmx2xx_pcmcia_init); -module_exit(cmx2xx_pcmcia_exit); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>"); -MODULE_DESCRIPTION("CM-x2xx PCMCIA driver"); |