Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3baa4fee authored by Shawn Guo's avatar Shawn Guo Committed by Sascha Hauer
Browse files

ARM: mxs: add dma device

parent 4ca94366
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -444,7 +444,8 @@ static struct clk_lookup lookups[] = {
	_REGISTER_CLOCK("duart", NULL, uart_clk)
	_REGISTER_CLOCK("mxs-auart.0", NULL, uart_clk)
	_REGISTER_CLOCK("rtc", NULL, rtc_clk)
	_REGISTER_CLOCK(NULL, "hclk", hbus_clk)
	_REGISTER_CLOCK("mxs-dma-apbh", NULL, hbus_clk)
	_REGISTER_CLOCK("mxs-dma-apbx", NULL, xbus_clk)
	_REGISTER_CLOCK(NULL, "usb", usb_clk)
	_REGISTER_CLOCK(NULL, "audio", audio_clk)
	_REGISTER_CLOCK("mxs-pwm.0", NULL, pwm_clk)
+2 −2
Original line number Diff line number Diff line
@@ -616,8 +616,8 @@ static struct clk_lookup lookups[] = {
	_REGISTER_CLOCK("mxs-auart.4", NULL, uart_clk)
	_REGISTER_CLOCK("rtc", NULL, rtc_clk)
	_REGISTER_CLOCK("pll2", NULL, pll2_clk)
	_REGISTER_CLOCK(NULL, "hclk", hbus_clk)
	_REGISTER_CLOCK(NULL, "xclk", xbus_clk)
	_REGISTER_CLOCK("mxs-dma-apbh", NULL, hbus_clk)
	_REGISTER_CLOCK("mxs-dma-apbx", NULL, xbus_clk)
	_REGISTER_CLOCK("flexcan.0", NULL, can0_clk)
	_REGISTER_CLOCK("flexcan.1", NULL, can1_clk)
	_REGISTER_CLOCK(NULL, "usb0", usb0_clk)
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_MXS_HAVE_AMBA_DUART) += amba-duart.o
obj-$(CONFIG_MXS_HAVE_PLATFORM_AUART) += platform-auart.o
obj-y += platform-dma.o
obj-$(CONFIG_MXS_HAVE_PLATFORM_FEC) += platform-fec.o
obj-$(CONFIG_MXS_HAVE_PLATFORM_FLEXCAN) += platform-flexcan.o
obj-$(CONFIG_MXS_HAVE_PLATFORM_MXS_I2C) += platform-mxs-i2c.o
+49 −0
Original line number Diff line number Diff line
/*
 * Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved.
 *
 * 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.
 */
#include <linux/compiler.h>
#include <linux/err.h>
#include <linux/init.h>

#include <mach/mx23.h>
#include <mach/mx28.h>
#include <mach/devices-common.h>

static struct platform_device *__init mxs_add_dma(const char *devid,
						resource_size_t base)
{
	struct resource res[] = {
		{
			.start = base,
			.end = base + SZ_8K - 1,
			.flags = IORESOURCE_MEM,
		}
	};

	return mxs_add_platform_device_dmamask(devid, -1,
				res, ARRAY_SIZE(res), NULL, 0,
				DMA_BIT_MASK(32));
}

static int __init mxs_add_mxs_dma(void)
{
	char *apbh = "mxs-dma-apbh";
	char *apbx = "mxs-dma-apbx";

	if (cpu_is_mx23()) {
		mxs_add_dma(apbh, MX23_APBH_DMA_BASE_ADDR);
		mxs_add_dma(apbx, MX23_APBX_DMA_BASE_ADDR);
	}

	if (cpu_is_mx28()) {
		mxs_add_dma(apbh, MX28_APBH_DMA_BASE_ADDR);
		mxs_add_dma(apbx, MX28_APBX_DMA_BASE_ADDR);
	}

	return 0;
}
arch_initcall(mxs_add_mxs_dma);