diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 18:54:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 18:54:04 -0400 |
commit | b779b332d0e1ef68f40867948ae5526a3e925163 (patch) | |
tree | d2fc8bb455d696fbdb288055ce0a4f0cfcee31fd /arch | |
parent | a0cadc2777a71b1fde62e6417284b38e52128e88 (diff) | |
parent | 0f48285755991b73c14b6eeeee464590f490ac25 (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.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap4panda.c | 15 | ||||
-rw-r--r-- | arch/arm/mach-s3c64xx/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-ap4evb.c | 19 |
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 | */ | ||
242 | static 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 */ |
239 | static struct resource sh_mmcif_resources[] = { | 251 | static 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 | ||
266 | static struct platform_device sh_mmcif_device = { | 279 | static 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 | ||
315 | static struct resource sdhi1_resources[] = { | 330 | static 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)) { |