Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0273b4ef authored by Manuel Lauss's avatar Manuel Lauss Committed by Ralf Baechle
Browse files

MIPS: Alchemy: XXS1500 PCMCIA driver rewrite



Rewritten XXS1500 PCMCIA socket driver, standalone (doesn't depend on
au1000_generic.c) and added carddetect IRQ support.

Signed-off-by: default avatarManuel Lauss <manuel.lauss@gmail.com>
Cc: Florian Fainelli <florian@openwrt.org>
Cc: Linux-PCMCIA <linux-pcmcia@lists.infradead.org>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 27dd65ac
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -5,4 +5,4 @@
# Makefile for MyCable XXS1500 board.
#

lib-y := init.o board_setup.o
lib-y := init.o board_setup.o platform.o
+0 −16
Original line number Diff line number Diff line
@@ -69,22 +69,6 @@ void __init board_setup(void)
	/* Enable DTR = USB power up */
	au_writel(0x01, UART3_ADDR + UART_MCR); /* UART_MCR_DTR is 0x01??? */

#ifdef CONFIG_PCMCIA_XXS1500
	/* GPIO 0, 1, and 4 are inputs */
	alchemy_gpio_direction_input(0);
	alchemy_gpio_direction_input(1);
	alchemy_gpio_direction_input(4);

	/* GPIO2 208/9/10/11 are inputs */
	alchemy_gpio_direction_input(208);
	alchemy_gpio_direction_input(209);
	alchemy_gpio_direction_input(210);
	alchemy_gpio_direction_input(211);

	/* Turn off power */
	alchemy_gpio_direction_output(214, 0);
#endif

#ifdef CONFIG_PCI
#if defined(__MIPSEB__)
	au_writel(0xf | (2 << 6) | (1 << 4), Au1500_PCI_CFG);
+63 −0
Original line number Diff line number Diff line
/*
 * XXS1500 board platform device registration
 *
 * Copyright (C) 2009 Manuel Lauss
 *
 * 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
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */

#include <linux/init.h>
#include <linux/platform_device.h>

#include <asm/mach-au1x00/au1000.h>

static struct resource xxs1500_pcmcia_res[] = {
	{
		.name	= "pseudo-io",
		.flags	= IORESOURCE_MEM,
		.start	= PCMCIA_IO_PSEUDO_PHYS,
		.end	= PCMCIA_IO_PSEUDO_PHYS + 0x00040000 - 1,
	},
	{
		.name	= "pseudo-attr",
		.flags	= IORESOURCE_MEM,
		.start	= PCMCIA_ATTR_PSEUDO_PHYS,
		.end	= PCMCIA_ATTR_PSEUDO_PHYS + 0x00040000 - 1,
	},
	{
		.name	= "pseudo-mem",
		.flags	= IORESOURCE_MEM,
		.start	= PCMCIA_IO_PSEUDO_PHYS,
		.end	= PCMCIA_IO_PSEUDO_PHYS + 0x00040000 - 1,
	},
};

static struct platform_device xxs1500_pcmcia_dev = {
	.name		= "xxs1500_pcmcia",
	.id		= -1,
	.num_resources	= ARRAY_SIZE(xxs1500_pcmcia_res),
	.resource	= xxs1500_pcmcia_res,
};

static struct platform_device *xxs1500_devs[] __initdata = {
	&xxs1500_pcmcia_dev,
};

static int __init xxs1500_dev_init(void)
{
	return platform_add_devices(xxs1500_devs,
				    ARRAY_SIZE(xxs1500_devs));
}
device_initcall(xxs1500_dev_init);
+10 −0
Original line number Diff line number Diff line
@@ -185,6 +185,16 @@ config PCMCIA_ALCHEMY_DEVBOARD

	  This driver is also available as a module called db1xxx_ss.ko

config PCMCIA_XXS1500
	tristate "MyCable XXS1500 PCMCIA socket support"
	depends on PCMCIA && MIPS_XXS1500
	select 64BIT_PHYS_ADDR
	help
	  Support for the PCMCIA/CF socket interface on MyCable XXS1500
	  systems.

	  This driver is also available as a module called xxs1500_ss.ko

config PCMCIA_BCM63XX
	tristate "bcm63xx pcmcia support"
	depends on BCM63XX && PCMCIA
+2 −1
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ obj-$(CONFIG_PCMCIA_ALCHEMY_DEVBOARD) += db1xxx_ss.o

au1x00_ss-y					+= au1000_generic.o
au1x00_ss-$(CONFIG_MIPS_PB1000)			+= au1000_pb1x00.o
au1x00_ss-$(CONFIG_MIPS_XXS1500)		+= au1000_xxs1500.o

sa1111_cs-y					+= sa1111_generic.o
sa1111_cs-$(CONFIG_ASSABET_NEPONSET)		+= sa1100_neponset.o
@@ -69,3 +68,5 @@ pxa2xx-obj-$(CONFIG_MACH_E740) += pxa2xx_e740.o
pxa2xx-obj-$(CONFIG_MACH_STARGATE2)		+= pxa2xx_stargate2.o

obj-$(CONFIG_PCMCIA_PXA2XX)			+= pxa2xx_base.o $(pxa2xx-obj-y)

obj-$(CONFIG_PCMCIA_XXS1500)			+= xxs1500_ss.o
Loading