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>
This commit is contained in:
parent
4162cf6497
commit
a68a078418
|
@ -473,6 +473,7 @@ static struct sh_mobile_sdhi_info sdhi0_info = {
|
|||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.set_pwr = sdhi0_set_pwr,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct resource sdhi0_resources[] = {
|
||||
|
@ -511,6 +512,7 @@ static void sdhi1_set_pwr(struct platform_device *pdev, int state)
|
|||
static struct sh_mobile_sdhi_info sdhi1_info = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI1_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI1_RX,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
.set_pwr = sdhi1_set_pwr,
|
||||
};
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/platform_device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/mfd/sh_mobile_sdhi.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/mfd/tmio.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mtd/onenand.h>
|
||||
|
@ -366,6 +367,7 @@ static struct sh_mobile_sdhi_info sh7724_sdhi0_data = {
|
|||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.tmio_flags = TMIO_MMC_WRPROTECT_DISABLE,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct platform_device kfr2r09_sh_sdhi0_device = {
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mfd/sh_mobile_sdhi.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/smc91x.h>
|
||||
|
@ -467,6 +468,7 @@ static struct resource sdhi0_cn7_resources[] = {
|
|||
static struct sh_mobile_sdhi_info sh7724_sdhi0_data = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct platform_device sdhi0_cn7_device = {
|
||||
|
@ -498,6 +500,7 @@ static struct resource sdhi1_cn8_resources[] = {
|
|||
static struct sh_mobile_sdhi_info sh7724_sdhi1_data = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI1_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI1_RX,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ,
|
||||
};
|
||||
|
||||
static struct platform_device sdhi1_cn8_device = {
|
||||
|
|
|
@ -1144,7 +1144,7 @@ static struct intc_group groups[] __initdata = {
|
|||
static struct intc_mask_reg mask_registers[] __initdata = {
|
||||
{ 0xa4080080, 0xa40800c0, 8, /* IMR0 / IMCR0 */
|
||||
{ 0, TMU1_TUNI2, TMU1_TUNI1, TMU1_TUNI0,
|
||||
0, DISABLED, ENABLED, ENABLED } },
|
||||
0, ENABLED, ENABLED, ENABLED } },
|
||||
{ 0xa4080084, 0xa40800c4, 8, /* IMR1 / IMCR1 */
|
||||
{ VIO_VOU, VIO_VEU1, VIO_BEU0, VIO_CEU0,
|
||||
DMAC0A_DEI3, DMAC0A_DEI2, DMAC0A_DEI1, DMAC0A_DEI0 } },
|
||||
|
@ -1166,7 +1166,7 @@ static struct intc_mask_reg mask_registers[] __initdata = {
|
|||
{ I2C0_DTEI, I2C0_WAITI, I2C0_TACKI, I2C0_ALI,
|
||||
I2C1_DTEI, I2C1_WAITI, I2C1_TACKI, I2C1_ALI } },
|
||||
{ 0xa40800a0, 0xa40800e0, 8, /* IMR8 / IMCR8 */
|
||||
{ DISABLED, DISABLED, ENABLED, ENABLED,
|
||||
{ DISABLED, ENABLED, ENABLED, ENABLED,
|
||||
0, 0, SCIFA5, FSI } },
|
||||
{ 0xa40800a4, 0xa40800e4, 8, /* IMR9 / IMCR9 */
|
||||
{ 0, 0, 0, CMT, 0, USB1, USB0, 0 } },
|
||||
|
|
Loading…
Reference in New Issue