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

Commit 0d19eac1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull #2 ARM updates from Russell King:
 "Further ARM AMBA primecell updates which aren't included directly in
  the previous commit.  I wanted to keep these separate as they're
  touching stuff outside arch/arm/."

* 'amba' of git://git.linaro.org/people/rmk/linux-arm:
  ARM: 7362/1: AMBA: Add module_amba_driver() helper macro for amba_driver
  ARM: 7335/1: mach-u300: do away with MMC config files
  ARM: 7280/1: mmc: mmci: Cache MMCICLOCK and MMCIPOWER register
  ARM: 7309/1: realview: fix unconnected interrupts on EB11MP
  ARM: 7230/1: mmc: mmci: Fix PIO read for small SDIO packets
  ARM: 7227/1: mmc: mmci: Prepare for SDIO before setting up DMA job
  ARM: 7223/1: mmc: mmci: Fixup use of runtime PM and use autosuspend
  ARM: 7221/1: mmc: mmci: Change from using legacy suspend
  ARM: 7219/1: mmc: mmci: Change vdd_handler to a generic ios_handler
  ARM: 7218/1: mmc: mmci: Provide option to configure bus signal direction
  ARM: 7217/1: mmc: mmci: Put power register deviations in variant data
  ARM: 7216/1: mmc: mmci: Do not release spinlock in request_end
  ARM: 7215/1: mmc: mmci: Increase max_segs from 16 to 128
parents 56c10bf8 bba1594d
Loading
Loading
Loading
Loading
+13 −10
Original line number Diff line number Diff line
@@ -96,16 +96,19 @@
#define IRQ_EB11MP_L220_SLAVE	(IRQ_EB_GIC_START + 30)
#define IRQ_EB11MP_L220_DECODE	(IRQ_EB_GIC_START + 31)

#define IRQ_EB11MP_UART2	-1
#define IRQ_EB11MP_UART3	-1
#define IRQ_EB11MP_CLCD		-1
#define IRQ_EB11MP_DMA		-1
#define IRQ_EB11MP_WDOG		-1
#define IRQ_EB11MP_GPIO0	-1
#define IRQ_EB11MP_GPIO1	-1
#define IRQ_EB11MP_GPIO2	-1
#define IRQ_EB11MP_SCI		-1
#define IRQ_EB11MP_SSP		-1
/*
 * The 11MPcore tile leaves the following unconnected.
 */
#define IRQ_EB11MP_UART2	0
#define IRQ_EB11MP_UART3	0
#define IRQ_EB11MP_CLCD		0
#define IRQ_EB11MP_DMA		0
#define IRQ_EB11MP_WDOG		0
#define IRQ_EB11MP_GPIO0	0
#define IRQ_EB11MP_GPIO1	0
#define IRQ_EB11MP_GPIO2	0
#define IRQ_EB11MP_SCI		0
#define IRQ_EB11MP_SSP		0

#define NR_GIC_EB11MP		2

+0 −1
Original line number Diff line number Diff line
@@ -8,7 +8,6 @@ obj-n :=
obj-		:=

obj-$(CONFIG_ARCH_U300)	          += u300.o
obj-$(CONFIG_MMC)                 += mmc.o
obj-$(CONFIG_SPI_PL022)           += spi.o
obj-$(CONFIG_MACH_U300_SPIDUMMY)  += dummyspichip.o
obj-$(CONFIG_I2C_STU300)          += i2c.o
+21 −17
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include <linux/termios.h>
#include <linux/dmaengine.h>
#include <linux/amba/bus.h>
#include <linux/amba/mmci.h>
#include <linux/amba/serial.h>
#include <linux/platform_device.h>
#include <linux/gpio.h>
@@ -44,9 +45,9 @@
#include <mach/gpio-u300.h>

#include "clock.h"
#include "mmc.h"
#include "spi.h"
#include "i2c.h"
#include "u300-gpio.h"

/*
 * Static I/O mappings that are needed for booting the U300 platforms. The
@@ -117,11 +118,6 @@ static AMBA_APB_DEVICE(uart1, "uart1", 0, U300_UART1_BASE,
/* AHB device at 0x4000 offset */
static AMBA_APB_DEVICE(pl172, "pl172", 0, U300_EMIF_CFG_BASE, { }, NULL);


/*
 * Everything within this next ifdef deals with external devices connected to
 * the APP SPI bus.
 */
/* Fast device at 0x6000 offset */
static AMBA_APB_DEVICE(pl022, "pl022", 0, U300_SPI_BASE,
	{ IRQ_U300_SPI }, NULL);
@@ -129,8 +125,26 @@ static AMBA_APB_DEVICE(pl022, "pl022", 0, U300_SPI_BASE,
/* Fast device at 0x1000 offset */
#define U300_MMCSD_IRQS	{ IRQ_U300_MMCSD_MCIINTR0, IRQ_U300_MMCSD_MCIINTR1 }

static struct mmci_platform_data mmcsd_platform_data = {
	/*
	 * Do not set ocr_mask or voltage translation function,
	 * we have a regulator we can control instead.
	 */
	.f_max = 24000000,
	.gpio_wp = -1,
	.gpio_cd = U300_GPIO_PIN_MMC_CD,
	.cd_invert = true,
	.capabilities = MMC_CAP_MMC_HIGHSPEED |
	MMC_CAP_SD_HIGHSPEED | MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
#ifdef CONFIG_COH901318
	.dma_filter = coh901318_filter_id,
	.dma_rx_param = (void *) U300_DMA_MMCSD_RX_TX,
	/* Don't specify a TX channel, this RX channel is bidirectional */
#endif
};

static AMBA_APB_DEVICE(mmcsd, "mmci", 0, U300_MMCSD_BASE,
	U300_MMCSD_IRQS, NULL);
	U300_MMCSD_IRQS, &mmcsd_platform_data);

/*
 * The order of device declaration may be important, since some devices
@@ -1830,16 +1844,6 @@ void __init u300_init_devices(void)
	writew(val, U300_SYSCON_VBASE + U300_SYSCON_SMCR);
}

static int core_module_init(void)
{
	/*
	 * This needs to be initialized later: it needs the input framework
	 * to be initialized first.
	 */
	return mmc_init(&mmcsd_device);
}
module_init(core_module_init);

/* Forward declare this function from the watchdog */
void coh901327_watchdog_reset(void);

arch/arm/mach-u300/mmc.c

deleted100644 → 0
+0 −52
Original line number Diff line number Diff line
/*
 *
 * arch/arm/mach-u300/mmc.c
 *
 *
 * Copyright (C) 2009 ST-Ericsson SA
 * License terms: GNU General Public License (GPL) version 2
 *
 * Author: Linus Walleij <linus.walleij@stericsson.com>
 * Author: Johan Lundin
 * Author: Jonas Aaberg <jonas.aberg@stericsson.com>
 */
#include <linux/device.h>
#include <linux/amba/bus.h>
#include <linux/mmc/host.h>
#include <linux/dmaengine.h>
#include <linux/amba/mmci.h>
#include <linux/slab.h>
#include <mach/coh901318.h>
#include <mach/dma_channels.h>

#include "u300-gpio.h"
#include "mmc.h"

static struct mmci_platform_data mmc0_plat_data = {
	/*
	 * Do not set ocr_mask or voltage translation function,
	 * we have a regulator we can control instead.
	 */
	/* Nominally 2.85V on our platform */
	.f_max = 24000000,
	.gpio_wp = -1,
	.gpio_cd = U300_GPIO_PIN_MMC_CD,
	.cd_invert = true,
	.capabilities = MMC_CAP_MMC_HIGHSPEED |
	MMC_CAP_SD_HIGHSPEED | MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
#ifdef CONFIG_COH901318
	.dma_filter = coh901318_filter_id,
	.dma_rx_param = (void *) U300_DMA_MMCSD_RX_TX,
	/* Don't specify a TX channel, this RX channel is bidirectional */
#endif
};

int __devinit mmc_init(struct amba_device *adev)
{
	struct device *mmcsd_device = &adev->dev;
	int ret = 0;

	mmcsd_device->platform_data = &mmc0_plat_data;

	return ret;
}

arch/arm/mach-u300/mmc.h

deleted100644 → 0
+0 −18
Original line number Diff line number Diff line
/*
 *
 * arch/arm/mach-u300/mmc.h
 *
 *
 * Copyright (C) 2009 ST-Ericsson AB
 * License terms: GNU General Public License (GPL) version 2
 *
 * Author: Jonas Aaberg <jonas.aberg@stericsson.com>
 */
#ifndef MMC_H
#define MMC_H

#include <linux/amba/bus.h>

int __devinit mmc_init(struct amba_device *adev);

#endif
Loading