aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-10-28 18:54:04 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-28 18:54:04 -0400
commitb779b332d0e1ef68f40867948ae5526a3e925163 (patch)
treed2fc8bb455d696fbdb288055ce0a4f0cfcee31fd /arch
parenta0cadc2777a71b1fde62e6417284b38e52128e88 (diff)
parent0f48285755991b73c14b6eeeee464590f490ac25 (diff)
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (73 commits) power: Revert "power_supply: Mark twl4030_charger as broken" mfd: Fix a memory leak when unload mc13xxx-core module mfd: Fix resource reclaim for max8998 mfd: Remove unneeded ret value checking for max8998 register updates mfd: Add free max8998->ono irq in max8998_irq_exit() mfd: Fix resource reclaim in pcf50633_remove() omap4: pandaboard: fix up mmc card detect logic mfd: Fix ezx_pcap_probe error path mfd: Fix off-by-one value range checking for tps6507x mfd: Remove __devinitdata from tc6393xb_mmc_resources mfd: Add WM831x SPI support mfd: Factor out WM831x I2C I/O from the core driver mfd: Remove DEBUG defines from mc13xxx-core mfd: Fix jz4740_adc_set_enabled mfd: Add TPS658621C device ID mfd: Fix twl-irq function declaration warnings regulator: max8998 BUCK1/2 voltage change with use of GPIOs mfd: Voltages and GPIOs platform_data definitions for max8998 regulator: max8998 BUCK1/2 internal voltages and indexes defined mfd: Support for ICs compliant with max8998 ...
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c7
-rw-r--r--arch/arm/mach-omap2/board-omap4panda.c15
-rw-r--r--arch/arm/mach-s3c64xx/Kconfig1
-rw-r--r--arch/arm/mach-shmobile/board-ap4evb.c19
4 files changed, 38 insertions, 4 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 69a4ae971e4..df5a425a49d 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -269,9 +269,14 @@ static int omap4_twl6030_hsmmc_late_init(struct device *dev)
269 struct omap_mmc_platform_data *pdata = dev->platform_data; 269 struct omap_mmc_platform_data *pdata = dev->platform_data;
270 270
271 /* Setting MMC1 Card detect Irq */ 271 /* Setting MMC1 Card detect Irq */
272 if (pdev->id == 0) 272 if (pdev->id == 0) {
273 ret = twl6030_mmc_card_detect_config();
274 if (ret)
275 pr_err("Failed configuring MMC1 card detect\n");
273 pdata->slots[0].card_detect_irq = TWL6030_IRQ_BASE + 276 pdata->slots[0].card_detect_irq = TWL6030_IRQ_BASE +
274 MMCDETECT_INTR_OFFSET; 277 MMCDETECT_INTR_OFFSET;
278 pdata->slots[0].card_detect = twl6030_mmc_card_detect;
279 }
275 return ret; 280 return ret;
276} 281}
277 282
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index 702f2a63f2c..1ecd0a6cefb 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -160,10 +160,19 @@ static int omap4_twl6030_hsmmc_late_init(struct device *dev)
160 struct platform_device, dev); 160 struct platform_device, dev);
161 struct omap_mmc_platform_data *pdata = dev->platform_data; 161 struct omap_mmc_platform_data *pdata = dev->platform_data;
162 162
163 if (!pdata) {
164 dev_err(dev, "%s: NULL platform data\n", __func__);
165 return -EINVAL;
166 }
163 /* Setting MMC1 Card detect Irq */ 167 /* Setting MMC1 Card detect Irq */
164 if (pdev->id == 0) 168 if (pdev->id == 0) {
165 pdata->slots[0].card_detect_irq = TWL6030_IRQ_BASE + 169 ret = twl6030_mmc_card_detect_config();
166 MMCDETECT_INTR_OFFSET; 170 if (ret)
171 dev_err(dev, "%s: Error card detect config(%d)\n",
172 __func__, ret);
173 else
174 pdata->slots[0].card_detect = twl6030_mmc_card_detect;
175 }
167 return ret; 176 return ret;
168} 177}
169 178
diff --git a/arch/arm/mach-s3c64xx/Kconfig b/arch/arm/mach-s3c64xx/Kconfig
index 1e4d78af7d8..546db5cb892 100644
--- a/arch/arm/mach-s3c64xx/Kconfig
+++ b/arch/arm/mach-s3c64xx/Kconfig
@@ -185,6 +185,7 @@ config SMDK6410_WM1192_EV1
185 select REGULATOR_WM831X 185 select REGULATOR_WM831X
186 select S3C24XX_GPIO_EXTRA64 186 select S3C24XX_GPIO_EXTRA64
187 select MFD_WM831X 187 select MFD_WM831X
188 select MFD_WM831X_I2C
188 help 189 help
189 The Wolfson Microelectronics 1192-EV1 is a WM831x based PMIC 190 The Wolfson Microelectronics 1192-EV1 is a WM831x based PMIC
190 daughtercard for the Samsung SMDK6410 reference platform. 191 daughtercard for the Samsung SMDK6410 reference platform.
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index 14923989ea0..22a2b44ddb7 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -235,6 +235,18 @@ static struct platform_device smc911x_device = {
235 }, 235 },
236}; 236};
237 237
238/*
239 * The card detect pin of the top SD/MMC slot (CN7) is active low and is
240 * connected to GPIO A22 of SH7372 (GPIO_PORT41).
241 */
242static int slot_cn7_get_cd(struct platform_device *pdev)
243{
244 if (gpio_is_valid(GPIO_PORT41))
245 return !gpio_get_value(GPIO_PORT41);
246 else
247 return -ENXIO;
248}
249
238/* SH_MMCIF */ 250/* SH_MMCIF */
239static struct resource sh_mmcif_resources[] = { 251static struct resource sh_mmcif_resources[] = {
240 [0] = { 252 [0] = {
@@ -261,6 +273,7 @@ static struct sh_mmcif_plat_data sh_mmcif_plat = {
261 .caps = MMC_CAP_4_BIT_DATA | 273 .caps = MMC_CAP_4_BIT_DATA |
262 MMC_CAP_8_BIT_DATA | 274 MMC_CAP_8_BIT_DATA |
263 MMC_CAP_NEEDS_POLL, 275 MMC_CAP_NEEDS_POLL,
276 .get_cd = slot_cn7_get_cd,
264}; 277};
265 278
266static struct platform_device sh_mmcif_device = { 279static struct platform_device sh_mmcif_device = {
@@ -310,6 +323,8 @@ static struct sh_mobile_sdhi_info sdhi1_info = {
310 .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, 323 .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX,
311 .tmio_ocr_mask = MMC_VDD_165_195, 324 .tmio_ocr_mask = MMC_VDD_165_195,
312 .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, 325 .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE,
326 .tmio_caps = MMC_CAP_NEEDS_POLL,
327 .get_cd = slot_cn7_get_cd,
313}; 328};
314 329
315static struct resource sdhi1_resources[] = { 330static struct resource sdhi1_resources[] = {
@@ -948,6 +963,10 @@ static void __init ap4evb_init(void)
948 gpio_no_direction(GPIO_PORT9CR); /* FSIAOBT needs no direction */ 963 gpio_no_direction(GPIO_PORT9CR); /* FSIAOBT needs no direction */
949 gpio_no_direction(GPIO_PORT10CR); /* FSIAOLR needs no direction */ 964 gpio_no_direction(GPIO_PORT10CR); /* FSIAOLR needs no direction */
950 965
966 /* card detect pin for MMC slot (CN7) */
967 gpio_request(GPIO_PORT41, NULL);
968 gpio_direction_input(GPIO_PORT41);
969
951 /* set SPU2 clock to 119.6 MHz */ 970 /* set SPU2 clock to 119.6 MHz */
952 clk = clk_get(NULL, "spu_clk"); 971 clk = clk_get(NULL, "spu_clk");
953 if (!IS_ERR(clk)) { 972 if (!IS_ERR(clk)) {