diff options
author | Arnd Hannemann <arnd@arndnet.de> | 2010-12-28 17:22:34 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-01-12 00:36:33 -0500 |
commit | a68a07841848a25fa04918b441667fd192cea108 (patch) | |
tree | 11a2262c7f77c56681dafa3153788b220990ea73 /arch/sh/boards | |
parent | 4162cf64973df51fc885825bc9ca4d055891c49f (diff) |
sh: sh7724 Enable SDIO IRQs
This patch enables the interrupt generation for SDIO IRQs
of the sdhi controllers of the SoC. To make sure interrupt
are handled announce the MMC_CAP_SDIO_IRQ capability
on ecovec, kfr2r09 and se7724.
Tested with a b43-based SDIO wireless card on ecovec.
Signed-off-by: Arnd Hannemann <arnd@arndnet.de>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/boards')
-rw-r--r-- | arch/sh/boards/mach-ecovec24/setup.c | 2 | ||||
-rw-r--r-- | arch/sh/boards/mach-kfr2r09/setup.c | 2 | ||||
-rw-r--r-- | arch/sh/boards/mach-se/7724/setup.c | 3 |
3 files changed, 7 insertions, 0 deletions
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c index f48c492a68d3..ee8dd45be1e2 100644 --- a/arch/sh/boards/mach-ecovec24/setup.c +++ b/arch/sh/boards/mach-ecovec24/setup.c | |||
@@ -473,6 +473,7 @@ static struct sh_mobile_sdhi_info sdhi0_info = { | |||
473 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, | 473 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, |
474 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, | 474 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, |
475 | .set_pwr = sdhi0_set_pwr, | 475 | .set_pwr = sdhi0_set_pwr, |
476 | .tmio_caps = MMC_CAP_SDIO_IRQ, | ||
476 | }; | 477 | }; |
477 | 478 | ||
478 | static struct resource sdhi0_resources[] = { | 479 | static struct resource sdhi0_resources[] = { |
@@ -511,6 +512,7 @@ static void sdhi1_set_pwr(struct platform_device *pdev, int state) | |||
511 | static struct sh_mobile_sdhi_info sdhi1_info = { | 512 | static struct sh_mobile_sdhi_info sdhi1_info = { |
512 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, | 513 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, |
513 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, | 514 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, |
515 | .tmio_caps = MMC_CAP_SDIO_IRQ, | ||
514 | .set_pwr = sdhi1_set_pwr, | 516 | .set_pwr = sdhi1_set_pwr, |
515 | }; | 517 | }; |
516 | 518 | ||
diff --git a/arch/sh/boards/mach-kfr2r09/setup.c b/arch/sh/boards/mach-kfr2r09/setup.c index 9b60eaabf8f3..7504daaa85da 100644 --- a/arch/sh/boards/mach-kfr2r09/setup.c +++ b/arch/sh/boards/mach-kfr2r09/setup.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/platform_device.h> | 11 | #include <linux/platform_device.h> |
12 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
13 | #include <linux/mfd/sh_mobile_sdhi.h> | 13 | #include <linux/mfd/sh_mobile_sdhi.h> |
14 | #include <linux/mmc/host.h> | ||
14 | #include <linux/mfd/tmio.h> | 15 | #include <linux/mfd/tmio.h> |
15 | #include <linux/mtd/physmap.h> | 16 | #include <linux/mtd/physmap.h> |
16 | #include <linux/mtd/onenand.h> | 17 | #include <linux/mtd/onenand.h> |
@@ -366,6 +367,7 @@ static struct sh_mobile_sdhi_info sh7724_sdhi0_data = { | |||
366 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, | 367 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, |
367 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, | 368 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, |
368 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, | 369 | .tmio_flags = TMIO_MMC_WRPROTECT_DISABLE, |
370 | .tmio_caps = MMC_CAP_SDIO_IRQ, | ||
369 | }; | 371 | }; |
370 | 372 | ||
371 | static struct platform_device kfr2r09_sh_sdhi0_device = { | 373 | static struct platform_device kfr2r09_sh_sdhi0_device = { |
diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c index 527a0cd956b5..6dc7407f2cd0 100644 --- a/arch/sh/boards/mach-se/7724/setup.c +++ b/arch/sh/boards/mach-se/7724/setup.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/mfd/sh_mobile_sdhi.h> | 17 | #include <linux/mfd/sh_mobile_sdhi.h> |
18 | #include <linux/mmc/host.h> | ||
18 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
19 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
20 | #include <linux/smc91x.h> | 21 | #include <linux/smc91x.h> |
@@ -467,6 +468,7 @@ static struct resource sdhi0_cn7_resources[] = { | |||
467 | static struct sh_mobile_sdhi_info sh7724_sdhi0_data = { | 468 | static struct sh_mobile_sdhi_info sh7724_sdhi0_data = { |
468 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, | 469 | .dma_slave_tx = SHDMA_SLAVE_SDHI0_TX, |
469 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, | 470 | .dma_slave_rx = SHDMA_SLAVE_SDHI0_RX, |
471 | .tmio_caps = MMC_CAP_SDIO_IRQ, | ||
470 | }; | 472 | }; |
471 | 473 | ||
472 | static struct platform_device sdhi0_cn7_device = { | 474 | static struct platform_device sdhi0_cn7_device = { |
@@ -498,6 +500,7 @@ static struct resource sdhi1_cn8_resources[] = { | |||
498 | static struct sh_mobile_sdhi_info sh7724_sdhi1_data = { | 500 | static struct sh_mobile_sdhi_info sh7724_sdhi1_data = { |
499 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, | 501 | .dma_slave_tx = SHDMA_SLAVE_SDHI1_TX, |
500 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, | 502 | .dma_slave_rx = SHDMA_SLAVE_SDHI1_RX, |
503 | .tmio_caps = MMC_CAP_SDIO_IRQ, | ||
501 | }; | 504 | }; |
502 | 505 | ||
503 | static struct platform_device sdhi1_cn8_device = { | 506 | static struct platform_device sdhi1_cn8_device = { |