diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2016-08-31 10:49:47 +0300 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2018-03-24 17:17:07 +0300 |
commit | 29786e9b6551b822de66aa64b07e21eeb36ded89 (patch) | |
tree | 9e27ec5caccfa256fa44e713d2f9e3bbfb299ae6 /drivers | |
parent | 0920ca103f8d8b53619bb69fa34185013f448ca2 (diff) | |
download | linux-29786e9b6551b822de66aa64b07e21eeb36ded89.tar.xz |
ARM: sa1100/assabet: convert to generic CF sockets
Convert Assabet to use the generic CF socket support.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pcmcia/Makefile | 1 | ||||
-rw-r--r-- | drivers/pcmcia/sa1100_assabet.c | 100 | ||||
-rw-r--r-- | drivers/pcmcia/sa1100_generic.c | 3 | ||||
-rw-r--r-- | drivers/pcmcia/sa1100_generic.h | 1 |
4 files changed, 0 insertions, 105 deletions
diff --git a/drivers/pcmcia/Makefile b/drivers/pcmcia/Makefile index e7dae16b9a43..130a06649b41 100644 --- a/drivers/pcmcia/Makefile +++ b/drivers/pcmcia/Makefile @@ -46,7 +46,6 @@ sa1111_cs-$(CONFIG_SA1100_JORNADA720) += sa1111_jornada720.o sa1111_cs-$(CONFIG_ARCH_LUBBOCK) += sa1111_lubbock.o sa1100_cs-y += sa1100_generic.o -sa1100_cs-$(CONFIG_SA1100_ASSABET) += sa1100_assabet.o sa1100_cs-$(CONFIG_SA1100_CERF) += sa1100_cerf.o sa1100_cs-$(CONFIG_SA1100_COLLIE) += pxa2xx_sharpsl.o sa1100_cs-$(CONFIG_SA1100_H3100) += sa1100_h3600.o diff --git a/drivers/pcmcia/sa1100_assabet.c b/drivers/pcmcia/sa1100_assabet.c deleted file mode 100644 index 78ad2bba76db..000000000000 --- a/drivers/pcmcia/sa1100_assabet.c +++ /dev/null @@ -1,100 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * drivers/pcmcia/sa1100_assabet.c - * - * PCMCIA implementation routines for Assabet - * - */ -#include <linux/module.h> -#include <linux/kernel.h> -#include <linux/errno.h> -#include <linux/interrupt.h> -#include <linux/device.h> -#include <linux/init.h> -#include <linux/gpio.h> - -#include <asm/mach-types.h> -#include <mach/assabet.h> - -#include "sa1100_generic.h" - -static int assabet_pcmcia_hw_init(struct soc_pcmcia_socket *skt) -{ - skt->stat[SOC_STAT_CD].gpio = ASSABET_GPIO_CF_CD; - skt->stat[SOC_STAT_CD].name = "CF CD"; - skt->stat[SOC_STAT_BVD1].gpio = ASSABET_GPIO_CF_BVD1; - skt->stat[SOC_STAT_BVD1].name = "CF BVD1"; - skt->stat[SOC_STAT_BVD2].gpio = ASSABET_GPIO_CF_BVD2; - skt->stat[SOC_STAT_BVD2].name = "CF BVD2"; - skt->stat[SOC_STAT_RDY].gpio = ASSABET_GPIO_CF_IRQ; - skt->stat[SOC_STAT_RDY].name = "CF RDY"; - - return 0; -} - -static int -assabet_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, const socket_state_t *state) -{ - unsigned int mask; - - switch (state->Vcc) { - case 0: - mask = 0; - break; - - case 50: - printk(KERN_WARNING "%s(): CS asked for 5V, applying 3.3V...\n", - __func__); - - case 33: /* Can only apply 3.3V to the CF slot. */ - mask = ASSABET_BCR_CF_PWR; - break; - - default: - printk(KERN_ERR "%s(): unrecognized Vcc %u\n", __func__, - state->Vcc); - return -1; - } - - /* Silently ignore Vpp, speaker enable. */ - - if (state->flags & SS_RESET) - mask |= ASSABET_BCR_CF_RST; - if (!(state->flags & SS_OUTPUT_ENA)) - mask |= ASSABET_BCR_CF_BUS_OFF; - - ASSABET_BCR_frob(ASSABET_BCR_CF_RST | ASSABET_BCR_CF_PWR | - ASSABET_BCR_CF_BUS_OFF, mask); - - return 0; -} - -/* - * Disable card status IRQs on suspend. - */ -static void assabet_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt) -{ - /* - * Tristate the CF bus signals. Also assert CF - * reset as per user guide page 4-11. - */ - ASSABET_BCR_set(ASSABET_BCR_CF_BUS_OFF | ASSABET_BCR_CF_RST); -} - -static struct pcmcia_low_level assabet_pcmcia_ops = { - .owner = THIS_MODULE, - .hw_init = assabet_pcmcia_hw_init, - .socket_state = soc_common_cf_socket_state, - .configure_socket = assabet_pcmcia_configure_socket, - .socket_suspend = assabet_pcmcia_socket_suspend, -}; - -int pcmcia_assabet_init(struct device *dev) -{ - int ret = -ENODEV; - - if (machine_is_assabet() && !machine_has_neponset()) - ret = sa11xx_drv_pcmcia_probe(dev, &assabet_pcmcia_ops, 1, 1); - - return ret; -} diff --git a/drivers/pcmcia/sa1100_generic.c b/drivers/pcmcia/sa1100_generic.c index 324e3e631353..1987d94361e9 100644 --- a/drivers/pcmcia/sa1100_generic.c +++ b/drivers/pcmcia/sa1100_generic.c @@ -98,9 +98,6 @@ static struct pcmcia_low_level sa11x0_cf_ops = { int __init pcmcia_collie_init(struct device *dev); static int (*sa11x0_pcmcia_legacy_hw_init[])(struct device *dev) = { -#ifdef CONFIG_SA1100_ASSABET - pcmcia_assabet_init, -#endif #ifdef CONFIG_SA1100_CERF pcmcia_cerf_init, #endif diff --git a/drivers/pcmcia/sa1100_generic.h b/drivers/pcmcia/sa1100_generic.h index a5f1f1dd63cb..597c796f7dad 100644 --- a/drivers/pcmcia/sa1100_generic.h +++ b/drivers/pcmcia/sa1100_generic.h @@ -6,7 +6,6 @@ * Declaration for all machine specific init/exit functions. */ extern int pcmcia_adsbitsy_init(struct device *); -extern int pcmcia_assabet_init(struct device *); extern int pcmcia_badge4_init(struct device *); extern int pcmcia_cerf_init(struct device *); extern int pcmcia_flexanet_init(struct device *); |