提交 277dc7ae 编写于 作者: R Russell King

Merge branch 'sa11x0-ir' into sa11x0

...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/dma-mapping.h>
#include <linux/pm.h> #include <linux/pm.h>
#include <linux/cpufreq.h> #include <linux/cpufreq.h>
#include <linux/ioport.h> #include <linux/ioport.h>
...@@ -289,6 +290,29 @@ static struct platform_device sa11x0rtc_device = { ...@@ -289,6 +290,29 @@ static struct platform_device sa11x0rtc_device = {
.id = -1, .id = -1,
}; };
static struct resource sa11x0dma_resources[] = {
DEFINE_RES_MEM(__PREG(DDAR(0)), 6 * DMASp),
DEFINE_RES_IRQ(IRQ_DMA0),
DEFINE_RES_IRQ(IRQ_DMA1),
DEFINE_RES_IRQ(IRQ_DMA2),
DEFINE_RES_IRQ(IRQ_DMA3),
DEFINE_RES_IRQ(IRQ_DMA4),
DEFINE_RES_IRQ(IRQ_DMA5),
};
static u64 sa11x0dma_dma_mask = DMA_BIT_MASK(32);
static struct platform_device sa11x0dma_device = {
.name = "sa11x0-dma",
.id = -1,
.dev = {
.dma_mask = &sa11x0dma_dma_mask,
.coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa11x0dma_resources),
.resource = sa11x0dma_resources,
};
static struct platform_device *sa11x0_devices[] __initdata = { static struct platform_device *sa11x0_devices[] __initdata = {
&sa11x0udc_device, &sa11x0udc_device,
&sa11x0uart1_device, &sa11x0uart1_device,
...@@ -297,6 +321,7 @@ static struct platform_device *sa11x0_devices[] __initdata = { ...@@ -297,6 +321,7 @@ static struct platform_device *sa11x0_devices[] __initdata = {
&sa11x0pcmcia_device, &sa11x0pcmcia_device,
&sa11x0fb_device, &sa11x0fb_device,
&sa11x0rtc_device, &sa11x0rtc_device,
&sa11x0dma_device,
}; };
static int __init sa1100_init(void) static int __init sa1100_init(void)
......
...@@ -252,6 +252,15 @@ config EP93XX_DMA ...@@ -252,6 +252,15 @@ config EP93XX_DMA
help help
Enable support for the Cirrus Logic EP93xx M2P/M2M DMA controller. Enable support for the Cirrus Logic EP93xx M2P/M2M DMA controller.
config DMA_SA11X0
tristate "SA-11x0 DMA support"
depends on ARCH_SA1100
select DMA_ENGINE
help
Support the DMA engine found on Intel StrongARM SA-1100 and
SA-1110 SoCs. This DMA engine can only be used with on-chip
devices.
config DMA_ENGINE config DMA_ENGINE
bool bool
......
...@@ -27,3 +27,4 @@ obj-$(CONFIG_PL330_DMA) += pl330.o ...@@ -27,3 +27,4 @@ obj-$(CONFIG_PL330_DMA) += pl330.o
obj-$(CONFIG_PCH_DMA) += pch_dma.o obj-$(CONFIG_PCH_DMA) += pch_dma.o
obj-$(CONFIG_AMBA_PL08X) += amba-pl08x.o obj-$(CONFIG_AMBA_PL08X) += amba-pl08x.o
obj-$(CONFIG_EP93XX_DMA) += ep93xx_dma.o obj-$(CONFIG_EP93XX_DMA) += ep93xx_dma.o
obj-$(CONFIG_DMA_SA11X0) += sa11x0-dma.o
此差异已折叠。
...@@ -356,7 +356,7 @@ config VLSI_FIR ...@@ -356,7 +356,7 @@ config VLSI_FIR
config SA1100_FIR config SA1100_FIR
tristate "SA1100 Internal IR" tristate "SA1100 Internal IR"
depends on ARCH_SA1100 && IRDA depends on ARCH_SA1100 && IRDA && DMA_SA11X0
config VIA_FIR config VIA_FIR
tristate "VIA VT8231/VT1211 SIR/MIR/FIR" tristate "VIA VT8231/VT1211 SIR/MIR/FIR"
......
此差异已折叠。
/*
* SA11x0 DMA Engine support
*
* Copyright (C) 2012 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __LINUX_SA11X0_DMA_H
#define __LINUX_SA11X0_DMA_H
struct dma_chan;
#if defined(CONFIG_DMA_SA11X0) || defined(CONFIG_DMA_SA11X0_MODULE)
bool sa11x0_dma_filter_fn(struct dma_chan *, void *);
#else
static inline bool sa11x0_dma_filter_fn(struct dma_chan *c, void *d)
{
return false;
}
#endif
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册