r2405 - branches/src/target/kernel/2.6.22.x/patches
shoragan at sita.openmoko.org
shoragan at sita.openmoko.org
Fri Jul 27 01:00:23 CEST 2007
Author: shoragan
Date: 2007-07-27 01:00:22 +0200 (Fri, 27 Jul 2007)
New Revision: 2405
Added:
branches/src/target/kernel/2.6.22.x/patches/missing_defs.patch
Modified:
branches/src/target/kernel/2.6.22.x/patches/gta01-core.patch
branches/src/target/kernel/2.6.22.x/patches/s3c_mci.patch
branches/src/target/kernel/2.6.22.x/patches/s3c_mci_platform.patch
branches/src/target/kernel/2.6.22.x/patches/series
Log:
Use better patch for MMC by Felix "nbd" Fietkau.
Modified: branches/src/target/kernel/2.6.22.x/patches/gta01-core.patch
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/gta01-core.patch 2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/gta01-core.patch 2007-07-26 23:00:22 UTC (rev 2405)
@@ -1,6 +1,8 @@
This patch adds support for the FIC GTA01 machine type to the ARM port of
the linux kernel.
+Index: linux-2.6.22.1/arch/arm/mach-s3c2410/Kconfig
+===================================================================
--- linux-2.6.22.1.orig/arch/arm/mach-s3c2410/Kconfig
+++ linux-2.6.22.1/arch/arm/mach-s3c2410/Kconfig
@@ -109,5 +109,12 @@
@@ -16,6 +18,8 @@
+
endmenu
+Index: linux-2.6.22.1/arch/arm/mach-s3c2410/Makefile
+===================================================================
--- linux-2.6.22.1.orig/arch/arm/mach-s3c2410/Makefile
+++ linux-2.6.22.1/arch/arm/mach-s3c2410/Makefile
@@ -29,3 +29,4 @@
@@ -23,9 +27,11 @@
obj-$(CONFIG_MACH_VR1000) += mach-vr1000.o usb-simtec.o
obj-$(CONFIG_MACH_QT2410) += mach-qt2410.o
+obj-$(CONFIG_MACH_NEO1973_GTA01)+= mach-gta01.o
+Index: linux-2.6.22.1/arch/arm/mach-s3c2410/mach-gta01.c
+===================================================================
--- /dev/null
+++ linux-2.6.22.1/arch/arm/mach-s3c2410/mach-gta01.c
-@@ -0,0 +1,747 @@
+@@ -0,0 +1,755 @@
+/*
+ * linux/arch/arm/mach-s3c2410/mach-gta01.c
+ *
@@ -63,6 +69,7 @@
+#include <linux/serial_core.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/spi_bitbang.h>
++#include <linux/mmc/mmc.h>
+#include <linux/mmc/host.h>
+
+#include <linux/mtd/mtd.h>
@@ -414,7 +421,14 @@
+};
+
+static unsigned int mmc_millivolts[] = {
-+ [MMC_VDD_165_195] = 2000, // TODO is this correct?
++ [MMC_VDD_145_150] = 1500,
++ [MMC_VDD_150_155] = 1500,
++ [MMC_VDD_155_160] = 1600,
++ [MMC_VDD_160_165] = 1600,
++ [MMC_VDD_165_170] = 1700,
++ [MMC_VDD_17_18] = 1800,
++ [MMC_VDD_18_19] = 1900,
++ [MMC_VDD_19_20] = 2000,
+ [MMC_VDD_20_21] = 2100,
+ [MMC_VDD_21_22] = 2200,
+ [MMC_VDD_22_23] = 2300,
@@ -752,7 +766,7 @@
+ platform_device_register(>a01_pmu_dev);
+ platform_device_register(>a01_led_dev);
+
-+ platform_add_devices(gta01_devices, ARRAY_SIZE(gta01_devices));
++ platform_add_devices(gta01_devices, ARRAY_SIZE(gta01_devices));
+
+ s3c2410_pm_init();
+
@@ -773,6 +787,8 @@
+MACHINE_END
+
+
+Index: linux-2.6.22.1/include/asm-arm/arch-s3c2410/gta01.h
+===================================================================
--- /dev/null
+++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/gta01.h
@@ -0,0 +1,70 @@
Added: branches/src/target/kernel/2.6.22.x/patches/missing_defs.patch
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/missing_defs.patch 2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/missing_defs.patch 2007-07-26 23:00:22 UTC (rev 2405)
@@ -0,0 +1,134 @@
+Index: linux-2.6.22.1/include/linux/mmc/core.h
+===================================================================
+--- linux-2.6.22.1.orig/include/linux/mmc/core.h 2007-07-19 00:30:53.705721081 +0200
++++ linux-2.6.22.1/include/linux/mmc/core.h 2007-07-19 00:30:57.097914392 +0200
+@@ -56,12 +56,15 @@
+ unsigned int retries; /* max number of retries */
+ unsigned int error; /* command error */
+
+-#define MMC_ERR_NONE 0
+-#define MMC_ERR_TIMEOUT 1
+-#define MMC_ERR_BADCRC 2
+-#define MMC_ERR_FIFO 3
+-#define MMC_ERR_FAILED 4
+-#define MMC_ERR_INVALID 5
++#define MMC_ERR_NONE 0
++#define MMC_ERR_TIMEOUT 1
++#define MMC_ERR_BADCRC 2
++#define MMC_ERR_FIFO 3
++#define MMC_ERR_DMA 4
++#define MMC_ERR_BUSY 5
++#define MMC_ERR_FAILED 6
++#define MMC_ERR_INVALID 7
++#define MMC_ERR_CANCELED 8
+
+ struct mmc_data *data; /* data segment associated with cmd */
+ struct mmc_request *mrq; /* associated request */
+Index: linux-2.6.22.1/include/linux/mmc/mmc.h
+===================================================================
+--- linux-2.6.22.1.orig/include/linux/mmc/mmc.h 2007-07-19 00:30:50.197521158 +0200
++++ linux-2.6.22.1/include/linux/mmc/mmc.h 2007-07-19 00:30:57.133916442 +0200
+@@ -78,6 +78,21 @@
+ #define MMC_APP_CMD 55 /* ac [31:16] RCA R1 */
+ #define MMC_GEN_CMD 56 /* adtc [0] RD/WR R1 */
+
++/* SD commands type argument response */
++ /* class 0 */
++/* This is basically the same command as for MMC with some quirks. */
++#define SD_SEND_RELATIVE_ADDR 3 /* bcr R6 */
++#define SD_SEND_IF_COND 8 /* bcr [11:0] See below R7 */
++
++ /* class 10 */
++#define SD_SWITCH 6 /* adtc [31:0] See below R1 */
++
++ /* Application commands */
++#define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */
++#define SD_APP_SEND_NUM_WR_BLKS 22 /* adtc R1 */
++#define SD_APP_OP_COND 41 /* bcr [31:0] OCR R3 */
++#define SD_APP_SEND_SCR 51 /* adtc R1 */
++
+ /*
+ * MMC_SWITCH argument format:
+ *
+@@ -90,6 +105,27 @@
+ */
+
+ /*
++ * SD_SWITCH argument format:
++ *
++ * [31] Check (0) or switch (1)
++ * [30:24] Reserved (0)
++ * [23:20] Function group 6
++ * [19:16] Function group 5
++ * [15:12] Function group 4
++ * [11:8] Function group 3
++ * [7:4] Function group 2
++ * [3:0] Function group 1
++ */
++
++/*
++ * SD_SEND_IF_COND argument format:
++ *
++ * [31:12] Reserved (0)
++ * [11:8] Host Voltage Supply Flags
++ * [7:0] Check Pattern (0xAA)
++ */
++
++/*
+ MMC status in R1
+ Type
+ e : error bit
+@@ -172,9 +208,30 @@
+ u8 ecc;
+ };
+
+-/*
+- * OCR bits are mostly in host.h
+- */
++#define MMC_VDD_145_150 0x00000001 /* VDD voltage 1.45 - 1.50 */
++#define MMC_VDD_150_155 0x00000002 /* VDD voltage 1.50 - 1.55 */
++#define MMC_VDD_155_160 0x00000004 /* VDD voltage 1.55 - 1.60 */
++#define MMC_VDD_160_165 0x00000008 /* VDD voltage 1.60 - 1.65 */
++#define MMC_VDD_165_170 0x00000010 /* VDD voltage 1.65 - 1.70 */
++#define MMC_VDD_17_18 0x00000020 /* VDD voltage 1.7 - 1.8 */
++#define MMC_VDD_18_19 0x00000040 /* VDD voltage 1.8 - 1.9 */
++#define MMC_VDD_19_20 0x00000080 /* VDD voltage 1.9 - 2.0 */
++#define MMC_VDD_20_21 0x00000100 /* VDD voltage 2.0 ~ 2.1 */
++#define MMC_VDD_21_22 0x00000200 /* VDD voltage 2.1 ~ 2.2 */
++#define MMC_VDD_22_23 0x00000400 /* VDD voltage 2.2 ~ 2.3 */
++#define MMC_VDD_23_24 0x00000800 /* VDD voltage 2.3 ~ 2.4 */
++#define MMC_VDD_24_25 0x00001000 /* VDD voltage 2.4 ~ 2.5 */
++#define MMC_VDD_25_26 0x00002000 /* VDD voltage 2.5 ~ 2.6 */
++#define MMC_VDD_26_27 0x00004000 /* VDD voltage 2.6 ~ 2.7 */
++#define MMC_VDD_27_28 0x00008000 /* VDD voltage 2.7 ~ 2.8 */
++#define MMC_VDD_28_29 0x00010000 /* VDD voltage 2.8 ~ 2.9 */
++#define MMC_VDD_29_30 0x00020000 /* VDD voltage 2.9 ~ 3.0 */
++#define MMC_VDD_30_31 0x00040000 /* VDD voltage 3.0 ~ 3.1 */
++#define MMC_VDD_31_32 0x00080000 /* VDD voltage 3.1 ~ 3.2 */
++#define MMC_VDD_32_33 0x00100000 /* VDD voltage 3.2 ~ 3.3 */
++#define MMC_VDD_33_34 0x00200000 /* VDD voltage 3.3 ~ 3.4 */
++#define MMC_VDD_34_35 0x00400000 /* VDD voltage 3.4 ~ 3.5 */
++#define MMC_VDD_35_36 0x00800000 /* VDD voltage 3.5 ~ 3.6 */
+ #define MMC_CARD_BUSY 0x80000000 /* Card Power up status bit */
+
+ /*
+@@ -253,5 +310,19 @@
+ #define MMC_SWITCH_MODE_CLEAR_BITS 0x02 /* Clear bits which are 1 in value */
+ #define MMC_SWITCH_MODE_WRITE_BYTE 0x03 /* Set target to value */
+
++/*
++ * SCR field definitions
++ */
++
++#define SCR_SPEC_VER_0 0 /* Implements system specification 1.0 - 1.01 */
++#define SCR_SPEC_VER_1 1 /* Implements system specification 1.10 */
++#define SCR_SPEC_VER_2 2 /* Implements system specification 2.00 */
++
++/*
++ * SD bus widths
++ */
++#define SD_BUS_WIDTH_1 0
++#define SD_BUS_WIDTH_4 2
++
+ #endif /* MMC_MMC_PROTOCOL_H */
+
Modified: branches/src/target/kernel/2.6.22.x/patches/s3c_mci.patch
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/s3c_mci.patch 2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/s3c_mci.patch 2007-07-26 23:00:22 UTC (rev 2405)
@@ -1,8 +1,81 @@
This is the latest S3C MMC/SD driver by Thomas Kleffel
---- /dev/null
-+++ linux-2.6.22.1/drivers/mmc/mmc_debug.c
-@@ -0,0 +1,60 @@
+Index: linux-2.6.22.1/include/asm-arm/arch-s3c2410/regs-sdi.h
+===================================================================
+--- linux-2.6.22.1.orig/include/asm-arm/arch-s3c2410/regs-sdi.h 2007-07-19 01:10:32.537282965 +0200
++++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/regs-sdi.h 2007-07-19 01:10:38.565626502 +0200
+@@ -28,9 +28,15 @@
+ #define S3C2410_SDIDCNT (0x30)
+ #define S3C2410_SDIDSTA (0x34)
+ #define S3C2410_SDIFSTA (0x38)
++
+ #define S3C2410_SDIDATA (0x3C)
+ #define S3C2410_SDIIMSK (0x40)
+
++#define S3C2440_SDIDATA (0x40)
++#define S3C2440_SDIIMSK (0x3C)
++
++#define S3C2440_SDICON_SDRESET (1<<8)
++#define S3C2440_SDICON_MMCCLOCK (1<<5)
+ #define S3C2410_SDICON_BYTEORDER (1<<4)
+ #define S3C2410_SDICON_SDIOIRQ (1<<3)
+ #define S3C2410_SDICON_RWAITEN (1<<2)
+@@ -42,7 +48,8 @@
+ #define S3C2410_SDICMDCON_LONGRSP (1<<10)
+ #define S3C2410_SDICMDCON_WAITRSP (1<<9)
+ #define S3C2410_SDICMDCON_CMDSTART (1<<8)
+-#define S3C2410_SDICMDCON_INDEX (0xff)
++#define S3C2410_SDICMDCON_SENDERHOST (1<<6)
++#define S3C2410_SDICMDCON_INDEX (0x3f)
+
+ #define S3C2410_SDICMDSTAT_CRCFAIL (1<<12)
+ #define S3C2410_SDICMDSTAT_CMDSENT (1<<11)
+@@ -51,6 +58,9 @@
+ #define S3C2410_SDICMDSTAT_XFERING (1<<8)
+ #define S3C2410_SDICMDSTAT_INDEX (0xff)
+
++#define S3C2440_SDIDCON_DS_BYTE (0<<22)
++#define S3C2440_SDIDCON_DS_HALFWORD (1<<22)
++#define S3C2440_SDIDCON_DS_WORD (2<<22)
+ #define S3C2410_SDIDCON_IRQPERIOD (1<<21)
+ #define S3C2410_SDIDCON_TXAFTERRESP (1<<20)
+ #define S3C2410_SDIDCON_RXAFTERCMD (1<<19)
+@@ -59,6 +69,7 @@
+ #define S3C2410_SDIDCON_WIDEBUS (1<<16)
+ #define S3C2410_SDIDCON_DMAEN (1<<15)
+ #define S3C2410_SDIDCON_STOP (1<<14)
++#define S3C2440_SDIDCON_DATSTART (1<<14)
+ #define S3C2410_SDIDCON_DATMODE (3<<12)
+ #define S3C2410_SDIDCON_BLKNUM (0x7ff)
+
+@@ -68,6 +79,7 @@
+ #define S3C2410_SDIDCON_XFER_RXSTART (2<<12)
+ #define S3C2410_SDIDCON_XFER_TXSTART (3<<12)
+
++#define S3C2410_SDIDCON_BLKNUM_MASK (0xFFF)
+ #define S3C2410_SDIDCNT_BLKNUM_SHIFT (12)
+
+ #define S3C2410_SDIDSTA_RDYWAITREQ (1<<10)
+@@ -82,10 +94,12 @@
+ #define S3C2410_SDIDSTA_TXDATAON (1<<1)
+ #define S3C2410_SDIDSTA_RXDATAON (1<<0)
+
++#define S3C2440_SDIFSTA_FIFORESET (1<<16)
++#define S3C2440_SDIFSTA_FIFOFAIL (3<<14) /* 3 is correct (2 bits) */
+ #define S3C2410_SDIFSTA_TFDET (1<<13)
+ #define S3C2410_SDIFSTA_RFDET (1<<12)
+-#define S3C2410_SDIFSTA_TXHALF (1<<11)
+-#define S3C2410_SDIFSTA_TXEMPTY (1<<10)
++#define S3C2410_SDIFSTA_TFHALF (1<<11)
++#define S3C2410_SDIFSTA_TFEMPTY (1<<10)
+ #define S3C2410_SDIFSTA_RFLAST (1<<9)
+ #define S3C2410_SDIFSTA_RFFULL (1<<8)
+ #define S3C2410_SDIFSTA_RFHALF (1<<7)
+Index: linux-2.6.22.1/drivers/mmc/host/mmc_debug.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/drivers/mmc/host/mmc_debug.c 2007-07-19 01:15:25.233962797 +0200
+@@ -0,0 +1,61 @@
+/*
+ * linux/drivers/mmc/mmc_debug.c
+ *
@@ -16,6 +89,7 @@
+ *
+ */
+
++#include <linux/module.h>
+#include <linux/mmc/core.h>
+#include <linux/mmc/mmc.h>
+#include "mmc_debug.h"
@@ -63,8 +137,10 @@
+ }
+}
+EXPORT_SYMBOL(mmc_err2str);
---- /dev/null
-+++ linux-2.6.22.1/drivers/mmc/mmc_debug.h
+Index: linux-2.6.22.1/drivers/mmc/host/mmc_debug.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/drivers/mmc/host/mmc_debug.h 2007-07-19 01:10:38.597628323 +0200
@@ -0,0 +1,7 @@
+#ifndef MMC_DEBUG_H
+#define MMC_DEBUG_H
@@ -73,120 +149,11 @@
+char *mmc_err2str(int err);
+
+#endif /* MMC_DEBUG_H */
---- linux-2.6.22.1.orig/include/asm-arm/arch-s3c2410/regs-sdi.h
-+++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/regs-sdi.h
-@@ -28,9 +28,15 @@
- #define S3C2410_SDIDCNT (0x30)
- #define S3C2410_SDIDSTA (0x34)
- #define S3C2410_SDIFSTA (0x38)
-+
- #define S3C2410_SDIDATA (0x3C)
- #define S3C2410_SDIIMSK (0x40)
-
-+#define S3C2440_SDIDATA (0x40)
-+#define S3C2440_SDIIMSK (0x3C)
-+
-+#define S3C2440_SDICON_SDRESET (1<<8)
-+#define S3C2440_SDICON_MMCCLOCK (1<<5)
- #define S3C2410_SDICON_BYTEORDER (1<<4)
- #define S3C2410_SDICON_SDIOIRQ (1<<3)
- #define S3C2410_SDICON_RWAITEN (1<<2)
-@@ -42,7 +48,8 @@
- #define S3C2410_SDICMDCON_LONGRSP (1<<10)
- #define S3C2410_SDICMDCON_WAITRSP (1<<9)
- #define S3C2410_SDICMDCON_CMDSTART (1<<8)
--#define S3C2410_SDICMDCON_INDEX (0xff)
-+#define S3C2410_SDICMDCON_SENDERHOST (1<<6)
-+#define S3C2410_SDICMDCON_INDEX (0x3f)
-
- #define S3C2410_SDICMDSTAT_CRCFAIL (1<<12)
- #define S3C2410_SDICMDSTAT_CMDSENT (1<<11)
-@@ -51,6 +58,9 @@
- #define S3C2410_SDICMDSTAT_XFERING (1<<8)
- #define S3C2410_SDICMDSTAT_INDEX (0xff)
-
-+#define S3C2440_SDIDCON_DS_BYTE (0<<22)
-+#define S3C2440_SDIDCON_DS_HALFWORD (1<<22)
-+#define S3C2440_SDIDCON_DS_WORD (2<<22)
- #define S3C2410_SDIDCON_IRQPERIOD (1<<21)
- #define S3C2410_SDIDCON_TXAFTERRESP (1<<20)
- #define S3C2410_SDIDCON_RXAFTERCMD (1<<19)
-@@ -59,6 +69,7 @@
- #define S3C2410_SDIDCON_WIDEBUS (1<<16)
- #define S3C2410_SDIDCON_DMAEN (1<<15)
- #define S3C2410_SDIDCON_STOP (1<<14)
-+#define S3C2440_SDIDCON_DATSTART (1<<14)
- #define S3C2410_SDIDCON_DATMODE (3<<12)
- #define S3C2410_SDIDCON_BLKNUM (0x7ff)
-
-@@ -68,6 +79,7 @@
- #define S3C2410_SDIDCON_XFER_RXSTART (2<<12)
- #define S3C2410_SDIDCON_XFER_TXSTART (3<<12)
-
-+#define S3C2410_SDIDCON_BLKNUM_MASK (0xFFF)
- #define S3C2410_SDIDCNT_BLKNUM_SHIFT (12)
-
- #define S3C2410_SDIDSTA_RDYWAITREQ (1<<10)
-@@ -82,10 +94,12 @@
- #define S3C2410_SDIDSTA_TXDATAON (1<<1)
- #define S3C2410_SDIDSTA_RXDATAON (1<<0)
-
-+#define S3C2440_SDIFSTA_FIFORESET (1<<16)
-+#define S3C2440_SDIFSTA_FIFOFAIL (3<<14) /* 3 is correct (2 bits) */
- #define S3C2410_SDIFSTA_TFDET (1<<13)
- #define S3C2410_SDIFSTA_RFDET (1<<12)
--#define S3C2410_SDIFSTA_TXHALF (1<<11)
--#define S3C2410_SDIFSTA_TXEMPTY (1<<10)
-+#define S3C2410_SDIFSTA_TFHALF (1<<11)
-+#define S3C2410_SDIFSTA_TFEMPTY (1<<10)
- #define S3C2410_SDIFSTA_RFLAST (1<<9)
- #define S3C2410_SDIFSTA_RFFULL (1<<8)
- #define S3C2410_SDIFSTA_RFHALF (1<<7)
---- linux-2.6.22.1.orig/drivers/mmc/Makefile
-+++ linux-2.6.22.1/drivers/mmc/Makefile
-@@ -4,6 +4,7 @@
-
- ifeq ($(CONFIG_MMC_DEBUG),y)
- EXTRA_CFLAGS += -DDEBUG
-+ obj-$(CONFIG_MMC) += mmc_debug.o
- endif
-
- obj-$(CONFIG_MMC) += core/
---- linux-2.6.22.1.orig/drivers/mmc/host/Makefile
-+++ linux-2.6.22.1/drivers/mmc/host/Makefile
-@@ -15,4 +15,5 @@
- obj-$(CONFIG_MMC_OMAP) += omap.o
- obj-$(CONFIG_MMC_AT91) += at91_mci.o
- obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
-+obj-$(CONFIG_MMC_S3C) += s3cmci.o
-
---- linux-2.6.22.1.orig/include/linux/mmc/core.h
-+++ linux-2.6.22.1/include/linux/mmc/core.h
-@@ -54,12 +54,15 @@
- unsigned int retries; /* max number of retries */
- unsigned int error; /* command error */
-
--#define MMC_ERR_NONE 0
--#define MMC_ERR_TIMEOUT 1
--#define MMC_ERR_BADCRC 2
--#define MMC_ERR_FIFO 3
--#define MMC_ERR_FAILED 4
--#define MMC_ERR_INVALID 5
-+#define MMC_ERR_NONE 0
-+#define MMC_ERR_TIMEOUT 1
-+#define MMC_ERR_BADCRC 2
-+#define MMC_ERR_FIFO 3
-+#define MMC_ERR_DMA 4
-+#define MMC_ERR_BUSY 5
-+#define MMC_ERR_FAILED 6
-+#define MMC_ERR_INVALID 7
-+#define MMC_ERR_CANCELED 8
-
- struct mmc_data *data; /* data segment associated with cmd */
- struct mmc_request *mrq; /* associated request */
---- /dev/null
-+++ linux-2.6.22.1/drivers/mmc/host/s3cmci.c
-@@ -0,0 +1,1340 @@
+Index: linux-2.6.22.1/drivers/mmc/host/s3cmci.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/drivers/mmc/host/s3cmci.c 2007-07-19 01:13:22.862989265 +0200
+@@ -0,0 +1,1341 @@
+/*
+ * linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
+ *
@@ -200,6 +167,7 @@
+#include <linux/module.h>
+#include <linux/dma-mapping.h>
+#include <linux/clk.h>
++#include <linux/mmc/mmc.h>
+#include <linux/mmc/host.h>
+#include <linux/platform_device.h>
+#include <linux/irq.h>
@@ -211,7 +179,7 @@
+#include <asm/arch/regs-sdi.h>
+#include <asm/arch/regs-gpio.h>
+
-+#include "../mmc_debug.h"
++#include "mmc_debug.h"
+#include "s3cmci.h"
+
+#define DRIVER_NAME "s3c-mci"
@@ -1527,8 +1495,10 @@
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Thomas Kleffel <tk at maintech.de>");
+
---- /dev/null
-+++ linux-2.6.22.1/drivers/mmc/host/s3cmci.h
+Index: linux-2.6.22.1/drivers/mmc/host/s3cmci.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/drivers/mmc/host/s3cmci.h 2007-07-19 01:13:22.334959182 +0200
@@ -0,0 +1,71 @@
+/*
+ * linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
@@ -1601,3 +1571,33 @@
+ unsigned int ccnt, dcnt;
+ struct tasklet_struct pio_tasklet;
+};
+Index: linux-2.6.22.1/drivers/mmc/host/Kconfig
+===================================================================
+--- linux-2.6.22.1.orig/drivers/mmc/host/Kconfig 2007-07-19 01:10:43.497907574 +0200
++++ linux-2.6.22.1/drivers/mmc/host/Kconfig 2007-07-19 01:11:57.214108422 +0200
+@@ -100,3 +100,14 @@
+ To compile this driver as a module, choose M here: the
+ module will be called tifm_sd.
+
++config MMC_S3C
++ tristate "Samsung S3C SD/MMC Card Interface support"
++ depends on ARCH_S3C2410 && MMC
++ help
++ This selects a driver for the MCI interface found in
++ Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
++ If you have a board based on one of those and a MMC/SD
++ slot, say Y or M here.
++
++ If unsure, say N.
++
+Index: linux-2.6.22.1/drivers/mmc/host/Makefile
+===================================================================
+--- linux-2.6.22.1.orig/drivers/mmc/host/Makefile 2007-07-19 01:10:43.517908714 +0200
++++ linux-2.6.22.1/drivers/mmc/host/Makefile 2007-07-19 01:11:07.043249347 +0200
+@@ -15,4 +15,6 @@
+ obj-$(CONFIG_MMC_OMAP) += omap.o
+ obj-$(CONFIG_MMC_AT91) += at91_mci.o
+ obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
++obj-$(CONFIG_MMC_S3C) += s3cmci.o
++obj-$(CONFIG_MMC) += mmc_debug.o
+
Modified: branches/src/target/kernel/2.6.22.x/patches/s3c_mci_platform.patch
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/s3c_mci_platform.patch 2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/s3c_mci_platform.patch 2007-07-26 23:00:22 UTC (rev 2405)
@@ -1,17 +1,19 @@
This patch adds platform data support to the s3mci driver. This allows
flexible board-specific configuration of set_power, card detect and read only
pins.
---- linux-2.6.22.1.orig/drivers/mmc/host/s3cmci.c
-+++ linux-2.6.22.1/drivers/mmc/host/s3cmci.c
-@@ -21,6 +21,7 @@
+Index: linux-2.6.22.1/drivers/mmc/host/s3cmci.c
+===================================================================
+--- linux-2.6.22.1.orig/drivers/mmc/host/s3cmci.c 2007-07-19 00:27:24.937824075 +0200
++++ linux-2.6.22.1/drivers/mmc/host/s3cmci.c 2007-07-19 00:27:45.823014255 +0200
+@@ -22,6 +22,7 @@
#include <asm/io.h>
#include <asm/arch/regs-sdi.h>
#include <asm/arch/regs-gpio.h>
+#include <asm/arch/mci.h>
- #include "../mmc_debug.h"
+ #include "mmc_debug.h"
#include "s3cmci.h"
-@@ -1011,6 +1012,9 @@
+@@ -1012,6 +1013,9 @@
s3c2410_gpio_cfgpin(S3C2410_GPE9, S3C2410_GPE9_SDDAT2);
s3c2410_gpio_cfgpin(S3C2410_GPE10, S3C2410_GPE10_SDDAT3);
@@ -21,7 +23,7 @@
if (!host->is2440)
mci_con|=S3C2410_SDICON_FIFORESET;
-@@ -1021,6 +1025,9 @@
+@@ -1022,6 +1026,9 @@
s3c2410_gpio_setpin(S3C2410_GPE5, 0);
s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2410_GPE5_OUTP);
@@ -31,7 +33,7 @@
if (host->is2440)
mci_con|=S3C2440_SDICON_SDRESET;
-@@ -1074,9 +1081,26 @@
+@@ -1075,9 +1082,26 @@
writel(con, host->base + S3C2410_SDICON);
}
@@ -58,7 +60,7 @@
};
static int s3cmci_probe(struct platform_device *pdev, int is2440)
-@@ -1096,6 +1120,12 @@
+@@ -1097,6 +1121,12 @@
host->mmc = mmc;
host->pdev = pdev;
@@ -71,7 +73,7 @@
spin_lock_init(&host->complete_lock);
tasklet_init(&host->pio_tasklet, pio_tasklet, (unsigned long) host);
if (is2440) {
-@@ -1114,7 +1144,8 @@
+@@ -1115,7 +1145,8 @@
host->pio_active = XFER_NONE;
host->dma = S3CMCI_DMA;
@@ -81,7 +83,7 @@
host->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!host->mem) {
-@@ -1156,7 +1187,7 @@
+@@ -1157,7 +1188,7 @@
disable_irq(host->irq);
@@ -90,7 +92,7 @@
set_irq_type(host->irq_cd, IRQT_BOTHEDGE);
if (request_irq(host->irq_cd, s3cmci_irq_cd, 0, DRIVER_NAME, host)) {
-@@ -1167,6 +1198,10 @@
+@@ -1168,6 +1199,10 @@
goto probe_free_irq;
}
@@ -101,7 +103,7 @@
if (s3c2410_dma_request(S3CMCI_DMA, &s3cmci_dma_client, NULL)) {
dev_err(&pdev->dev, "unable to get DMA channel.\n");
ret = -EBUSY;
-@@ -1189,7 +1224,7 @@
+@@ -1190,7 +1225,7 @@
host->clk_rate = clk_get_rate(host->clk);
mmc->ops = &s3cmci_ops;
@@ -110,8 +112,10 @@
mmc->caps = MMC_CAP_4_BIT_DATA;
mmc->f_min = host->clk_rate / (host->clk_div * 256);
mmc->f_max = host->clk_rate / host->clk_div;
---- linux-2.6.22.1.orig/drivers/mmc/host/s3cmci.h
-+++ linux-2.6.22.1/drivers/mmc/host/s3cmci.h
+Index: linux-2.6.22.1/drivers/mmc/host/s3cmci.h
+===================================================================
+--- linux-2.6.22.1.orig/drivers/mmc/host/s3cmci.h 2007-07-19 00:25:34.647538991 +0200
++++ linux-2.6.22.1/drivers/mmc/host/s3cmci.h 2007-07-19 00:27:45.831014710 +0200
@@ -22,6 +22,7 @@
struct s3cmci_host {
@@ -120,8 +124,10 @@
struct mmc_host *mmc;
struct resource *mem;
struct clk *clk;
---- /dev/null
-+++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/mci.h
+Index: linux-2.6.22.1/include/asm-arm/arch-s3c2410/mci.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/mci.h 2007-07-19 00:27:45.859016308 +0200
@@ -0,0 +1,12 @@
+#ifndef _ARCH_MCI_H
+#define _ARCH_MCI_H
Modified: branches/src/target/kernel/2.6.22.x/patches/series
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/series 2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/series 2007-07-26 23:00:22 UTC (rev 2405)
@@ -42,3 +42,4 @@
pcf50606_fix.patch
pcf50633_fix.patch
hxd8-tsl256x_fix.patch
+missing_defs.patch
More information about the commitlog
mailing list