mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 08:21:14 +00:00
880de62f91
SVN-Revision: 31546
106 lines
3.0 KiB
Diff
106 lines
3.0 KiB
Diff
From 44d4e083f1527e0acc6d25eadd5258565c3b8a3a Mon Sep 17 00:00:00 2001
|
|
From: Alison Wang <b18965@freescale.com>
|
|
Date: Thu, 4 Aug 2011 09:59:55 +0800
|
|
Subject: [PATCH 51/52] Update SD/MMC over SPI driver for MCF54451 and MCF54418
|
|
|
|
This patch fixed the errors in initialization and module mode.
|
|
|
|
Signed-off-by: Alison Wang <b18965@freescale.com>
|
|
---
|
|
arch/m68k/coldfire/m5445x/devices.c | 6 +++---
|
|
drivers/mmc/host/Kconfig | 8 ++++----
|
|
drivers/spi/spi.c | 4 ++++
|
|
3 files changed, 11 insertions(+), 7 deletions(-)
|
|
|
|
--- a/arch/m68k/coldfire/m5445x/devices.c
|
|
+++ b/arch/m68k/coldfire/m5445x/devices.c
|
|
@@ -20,7 +20,7 @@
|
|
|
|
#include <linux/interrupt.h>
|
|
#include <linux/init.h>
|
|
-#ifdef CONFIG_MMC_SPI
|
|
+#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
|
|
#include <linux/mmc/host.h>
|
|
#include <linux/spi/mmc_spi.h>
|
|
#endif
|
|
@@ -107,7 +107,7 @@ static struct coldfire_dspi_chip codec_s
|
|
};
|
|
#endif
|
|
|
|
-#if defined(CONFIG_MMC_SPI)
|
|
+#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
|
|
int mmc_spi_init(struct device *mmc_spi_device,
|
|
irqreturn_t mmc_spi_irq_handler(int irq, void *private),
|
|
void *irq_privatedata)
|
|
@@ -234,7 +234,7 @@ static struct spi_board_info spi_board_i
|
|
},
|
|
#endif
|
|
|
|
-#if defined(CONFIG_MMC_SPI)
|
|
+#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
|
|
{
|
|
.modalias = "mmc_spi",
|
|
.max_speed_hz = 25000000,
|
|
--- a/drivers/mmc/host/Kconfig
|
|
+++ b/drivers/mmc/host/Kconfig
|
|
@@ -369,7 +369,7 @@ config MMC_SPI
|
|
If unsure, or if your system has no SPI master driver, say N.
|
|
|
|
config M54451_SD_HW_DETECT
|
|
- tristate "use extern IRQ7 to detect SD/MMC card"
|
|
+ bool "use extern IRQ7 to detect SD/MMC card"
|
|
depends on MMC_SPI && M54451
|
|
default y
|
|
help
|
|
@@ -377,7 +377,7 @@ config M54451_SD_HW_DETECT
|
|
use irq7 to dectect the card inserting/removing.
|
|
|
|
config M5441X_SD_HW_DETECT
|
|
- tristate "use extern IRQ to detect SD/MMC card"
|
|
+ bool "use extern IRQ to detect SD/MMC card"
|
|
depends on MMC_SPI && M5441X
|
|
help
|
|
MMC/SD interface on 54418evb was over SPI. Enable this option will
|
|
@@ -388,14 +388,14 @@ choice
|
|
depends on M5441X_SD_HW_DETECT
|
|
|
|
config DETECT_USE_EXTERN_IRQ7
|
|
- tristate "based extern IRQ7"
|
|
+ bool "based extern IRQ7"
|
|
depends on M5441X_SD_HW_DETECT
|
|
help
|
|
MMC/SD cards using spi controller,
|
|
we use the extern irq7 to detect card.
|
|
|
|
config DETECT_USE_EXTERN_IRQ1
|
|
- tristate "based extern IRQ1"
|
|
+ bool "based extern IRQ1"
|
|
depends on M5441X_SD_HW_DETECT
|
|
help
|
|
MMC/SD cards using spi controller,
|
|
--- a/drivers/spi/spi.c
|
|
+++ b/drivers/spi/spi.c
|
|
@@ -725,18 +725,22 @@ EXPORT_SYMBOL_GPL(spi_busnum_to_master);
|
|
*/
|
|
int spi_setup(struct spi_device *spi)
|
|
{
|
|
+#ifndef CONFIG_COLDFIRE
|
|
unsigned bad_bits;
|
|
+#endif
|
|
int status;
|
|
|
|
/* help drivers fail *cleanly* when they need options
|
|
* that aren't supported with their current master
|
|
*/
|
|
+#ifndef CONFIG_COLDFIRE
|
|
bad_bits = spi->mode & ~spi->master->mode_bits;
|
|
if (bad_bits) {
|
|
dev_err(&spi->dev, "setup: unsupported mode bits %x\n",
|
|
bad_bits);
|
|
return -EINVAL;
|
|
}
|
|
+#endif
|
|
|
|
if (!spi->bits_per_word)
|
|
spi->bits_per_word = 8;
|