Merge branch 'sa11x0-ir' into sa11x0
This commit is contained in:
commit
277dc7ae14
7 changed files with 1818 additions and 541 deletions
|
@ -14,6 +14,7 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/cpufreq.h>
|
||||
#include <linux/ioport.h>
|
||||
|
@ -289,6 +290,29 @@ static struct platform_device sa11x0rtc_device = {
|
|||
.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 = {
|
||||
&sa11x0udc_device,
|
||||
&sa11x0uart1_device,
|
||||
|
@ -297,6 +321,7 @@ static struct platform_device *sa11x0_devices[] __initdata = {
|
|||
&sa11x0pcmcia_device,
|
||||
&sa11x0fb_device,
|
||||
&sa11x0rtc_device,
|
||||
&sa11x0dma_device,
|
||||
};
|
||||
|
||||
static int __init sa1100_init(void)
|
||||
|
|
|
@ -252,6 +252,15 @@ config EP93XX_DMA
|
|||
help
|
||||
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
|
||||
bool
|
||||
|
||||
|
|
|
@ -27,3 +27,4 @@ obj-$(CONFIG_PL330_DMA) += pl330.o
|
|||
obj-$(CONFIG_PCH_DMA) += pch_dma.o
|
||||
obj-$(CONFIG_AMBA_PL08X) += amba-pl08x.o
|
||||
obj-$(CONFIG_EP93XX_DMA) += ep93xx_dma.o
|
||||
obj-$(CONFIG_DMA_SA11X0) += sa11x0-dma.o
|
||||
|
|
1109
drivers/dma/sa11x0-dma.c
Normal file
1109
drivers/dma/sa11x0-dma.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -356,7 +356,7 @@ config VLSI_FIR
|
|||
|
||||
config SA1100_FIR
|
||||
tristate "SA1100 Internal IR"
|
||||
depends on ARCH_SA1100 && IRDA
|
||||
depends on ARCH_SA1100 && IRDA && DMA_SA11X0
|
||||
|
||||
config VIA_FIR
|
||||
tristate "VIA VT8231/VT1211 SIR/MIR/FIR"
|
||||
|
|
File diff suppressed because it is too large
Load diff
24
include/linux/sa11x0-dma.h
Normal file
24
include/linux/sa11x0-dma.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* 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
|
Loading…
Reference in a new issue