aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-08-08 14:00:26 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-08 14:00:26 -0400
commit44c916d58b9ef1f2c4aec2def57fa8289c716a60 (patch)
treee4c886dd0948eefeed883f66c9a21f39a5731103 /drivers/mtd
parent889fa782bf8ebe7c0d0ed0a9429bf43197f0f64e (diff)
parentc4846a7823bfd34ecb2dc56b025e19285432d08d (diff)
Merge tag 'cleanup-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC cleanups from Olof Johansson: "This merge window brings a good size of cleanups on various platforms. Among the bigger ones: - Removal of Samsung s5pc100 and s5p64xx platforms. Both of these have lacked active support for quite a while, and after asking around nobody showed interest in keeping them around. If needed, they could be resurrected in the future but it's more likely that we would prefer reintroduction of them as DT and multiplatform-enabled platforms instead. - OMAP4 controller code register define diet. They defined a lot of registers that were never actually used, etc. - Move of some of the Tegra platform code (PMC, APBIO, fuse, powergate) to drivers/soc so it can be shared with 64-bit code. This also converts them over to traditional driver models where possible. - Removal of legacy gpio-samsung driver, since the last users have been removed (moved to pinctrl) Plus a bunch of smaller changes for various platforms that sort of dissapear in the diffstat for the above. clps711x cleanups, shmobile header file refactoring/moves for multiplatform friendliness, some misc cleanups, etc" * tag 'cleanup-for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (117 commits) drivers: CCI: Correct use of ! and & video: clcd-versatile: Depend on ARM video: fix up versatile CLCD helper move MAINTAINERS: Add sdhci-st file to ARCH/STI architecture ARM: EXYNOS: Fix build breakge with PM_SLEEP=n MAINTAINERS: Remove Kirkwood ARM: tegra: Convert PMC to a driver soc/tegra: fuse: Set up in early initcall ARM: tegra: Always lock the CPU reset vector ARM: tegra: Setup CPU hotplug in a pure initcall soc/tegra: Implement runtime check for Tegra SoCs soc/tegra: fuse: fix dummy functions soc/tegra: fuse: move APB DMA into Tegra20 fuse driver soc/tegra: Add efuse and apbmisc bindings soc/tegra: Add efuse driver for Tegra ARM: tegra: move fuse exports to soc/tegra/fuse.h ARM: tegra: export apb dma readl/writel ARM: tegra: Use a function to get the chip ID ARM: tegra: Sort includes alphabetically ARM: tegra: Move includes to include/soc/tegra ...
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/onenand/Kconfig4
-rw-r--r--drivers/mtd/onenand/samsung.c25
2 files changed, 3 insertions, 26 deletions
diff --git a/drivers/mtd/onenand/Kconfig b/drivers/mtd/onenand/Kconfig
index ab2607273e80..dcae2f6a2b11 100644
--- a/drivers/mtd/onenand/Kconfig
+++ b/drivers/mtd/onenand/Kconfig
@@ -32,10 +32,10 @@ config MTD_ONENAND_OMAP2
32 32
33config MTD_ONENAND_SAMSUNG 33config MTD_ONENAND_SAMSUNG
34 tristate "OneNAND on Samsung SOC controller support" 34 tristate "OneNAND on Samsung SOC controller support"
35 depends on ARCH_S3C64XX || ARCH_S5PC100 || ARCH_S5PV210 || ARCH_EXYNOS4 35 depends on ARCH_S3C64XX || ARCH_S5PV210 || ARCH_EXYNOS4
36 help 36 help
37 Support for a OneNAND flash device connected to an Samsung SOC. 37 Support for a OneNAND flash device connected to an Samsung SOC.
38 S3C64XX/S5PC100 use command mapping method. 38 S3C64XX uses command mapping method.
39 S5PC110/S5PC210 use generic OneNAND method. 39 S5PC110/S5PC210 use generic OneNAND method.
40 40
41config MTD_ONENAND_OTP 41config MTD_ONENAND_OTP
diff --git a/drivers/mtd/onenand/samsung.c b/drivers/mtd/onenand/samsung.c
index efb819c3df2f..19cfb97adbc0 100644
--- a/drivers/mtd/onenand/samsung.c
+++ b/drivers/mtd/onenand/samsung.c
@@ -10,7 +10,7 @@
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11 * 11 *
12 * Implementation: 12 * Implementation:
13 * S3C64XX and S5PC100: emulate the pseudo BufferRAM 13 * S3C64XX: emulate the pseudo BufferRAM
14 * S5PC110: use DMA 14 * S5PC110: use DMA
15 */ 15 */
16 16
@@ -32,7 +32,6 @@
32enum soc_type { 32enum soc_type {
33 TYPE_S3C6400, 33 TYPE_S3C6400,
34 TYPE_S3C6410, 34 TYPE_S3C6410,
35 TYPE_S5PC100,
36 TYPE_S5PC110, 35 TYPE_S5PC110,
37}; 36};
38 37
@@ -59,7 +58,6 @@ enum soc_type {
59#define MAP_11 (0x3) 58#define MAP_11 (0x3)
60 59
61#define S3C64XX_CMD_MAP_SHIFT 24 60#define S3C64XX_CMD_MAP_SHIFT 24
62#define S5PC100_CMD_MAP_SHIFT 26
63 61
64#define S3C6400_FBA_SHIFT 10 62#define S3C6400_FBA_SHIFT 10
65#define S3C6400_FPA_SHIFT 4 63#define S3C6400_FPA_SHIFT 4
@@ -69,10 +67,6 @@ enum soc_type {
69#define S3C6410_FPA_SHIFT 6 67#define S3C6410_FPA_SHIFT 6
70#define S3C6410_FSA_SHIFT 4 68#define S3C6410_FSA_SHIFT 4
71 69
72#define S5PC100_FBA_SHIFT 13
73#define S5PC100_FPA_SHIFT 7
74#define S5PC100_FSA_SHIFT 5
75
76/* S5PC110 specific definitions */ 70/* S5PC110 specific definitions */
77#define S5PC110_DMA_SRC_ADDR 0x400 71#define S5PC110_DMA_SRC_ADDR 0x400
78#define S5PC110_DMA_SRC_CFG 0x404 72#define S5PC110_DMA_SRC_CFG 0x404
@@ -195,11 +189,6 @@ static unsigned int s3c64xx_cmd_map(unsigned type, unsigned val)
195 return (type << S3C64XX_CMD_MAP_SHIFT) | val; 189 return (type << S3C64XX_CMD_MAP_SHIFT) | val;
196} 190}
197 191
198static unsigned int s5pc1xx_cmd_map(unsigned type, unsigned val)
199{
200 return (type << S5PC100_CMD_MAP_SHIFT) | val;
201}
202
203static unsigned int s3c6400_mem_addr(int fba, int fpa, int fsa) 192static unsigned int s3c6400_mem_addr(int fba, int fpa, int fsa)
204{ 193{
205 return (fba << S3C6400_FBA_SHIFT) | (fpa << S3C6400_FPA_SHIFT) | 194 return (fba << S3C6400_FBA_SHIFT) | (fpa << S3C6400_FPA_SHIFT) |
@@ -212,12 +201,6 @@ static unsigned int s3c6410_mem_addr(int fba, int fpa, int fsa)
212 (fsa << S3C6410_FSA_SHIFT); 201 (fsa << S3C6410_FSA_SHIFT);
213} 202}
214 203
215static unsigned int s5pc100_mem_addr(int fba, int fpa, int fsa)
216{
217 return (fba << S5PC100_FBA_SHIFT) | (fpa << S5PC100_FPA_SHIFT) |
218 (fsa << S5PC100_FSA_SHIFT);
219}
220
221static void s3c_onenand_reset(void) 204static void s3c_onenand_reset(void)
222{ 205{
223 unsigned long timeout = 0x10000; 206 unsigned long timeout = 0x10000;
@@ -835,9 +818,6 @@ static void s3c_onenand_setup(struct mtd_info *mtd)
835 } else if (onenand->type == TYPE_S3C6410) { 818 } else if (onenand->type == TYPE_S3C6410) {
836 onenand->mem_addr = s3c6410_mem_addr; 819 onenand->mem_addr = s3c6410_mem_addr;
837 onenand->cmd_map = s3c64xx_cmd_map; 820 onenand->cmd_map = s3c64xx_cmd_map;
838 } else if (onenand->type == TYPE_S5PC100) {
839 onenand->mem_addr = s5pc100_mem_addr;
840 onenand->cmd_map = s5pc1xx_cmd_map;
841 } else if (onenand->type == TYPE_S5PC110) { 821 } else if (onenand->type == TYPE_S5PC110) {
842 /* Use generic onenand functions */ 822 /* Use generic onenand functions */
843 this->read_bufferram = s5pc110_read_bufferram; 823 this->read_bufferram = s5pc110_read_bufferram;
@@ -1111,9 +1091,6 @@ static struct platform_device_id s3c_onenand_driver_ids[] = {
1111 .name = "s3c6410-onenand", 1091 .name = "s3c6410-onenand",
1112 .driver_data = TYPE_S3C6410, 1092 .driver_data = TYPE_S3C6410,
1113 }, { 1093 }, {
1114 .name = "s5pc100-onenand",
1115 .driver_data = TYPE_S5PC100,
1116 }, {
1117 .name = "s5pc110-onenand", 1094 .name = "s5pc110-onenand",
1118 .driver_data = TYPE_S5PC110, 1095 .driver_data = TYPE_S5PC110,
1119 }, { }, 1096 }, { },