Loading arch/arm/mach-sa1100/generic.c +25 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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, Loading @@ -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) Loading drivers/dma/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -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 Loading drivers/dma/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
arch/arm/mach-sa1100/generic.c +25 −0 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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, Loading @@ -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) Loading
drivers/dma/Kconfig +9 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
drivers/dma/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -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