msm: dma: add support for 9615 dma
Signed-off-by: Jeff Ohlstein <johlstei@codeaurora.org>
Conflicts:
arch/arm/mach-msm/board-9615.c
diff --git a/arch/arm/mach-msm/board-9615.c b/arch/arm/mach-msm/board-9615.c
index f13e238..297b686 100644
--- a/arch/arm/mach-msm/board-9615.c
+++ b/arch/arm/mach-msm/board-9615.c
@@ -26,6 +26,7 @@
#include "board-9615.h"
static struct platform_device *common_devices[] = {
+ &msm9615_device_dmov,
&msm9615_device_uart_gsbi4,
&msm9615_device_ssbi_pmic1,
&msm9615_device_qup_i2c_gsbi5,
diff --git a/arch/arm/mach-msm/devices-9615.c b/arch/arm/mach-msm/devices-9615.c
index 0e186d4..0277f28 100644
--- a/arch/arm/mach-msm/devices-9615.c
+++ b/arch/arm/mach-msm/devices-9615.c
@@ -22,6 +22,7 @@
#include <mach/socinfo.h>
#include <asm/hardware/cache-l2x0.h>
#include <mach/msm_sps.h>
+#include <mach/dma.h>
#include "devices.h"
#include "acpuclock.h"
@@ -46,6 +47,21 @@
#define MSM_PMIC1_SSBI_CMD_PHYS 0x00500000
#define MSM_PMIC_SSBI_SIZE SZ_4K
+static struct resource msm_dmov_resource[] = {
+ {
+ .start = ADM_0_SCSS_1_IRQ,
+ .end = (resource_size_t)MSM_DMOV_BASE,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+struct platform_device msm9615_device_dmov = {
+ .name = "msm_dmov",
+ .id = -1,
+ .resource = msm_dmov_resource,
+ .num_resources = ARRAY_SIZE(msm_dmov_resource),
+};
+
static struct resource resources_uart_gsbi4[] = {
{
.start = GSBI4_UARTDM_IRQ,
diff --git a/arch/arm/mach-msm/devices.h b/arch/arm/mach-msm/devices.h
index 3cd7fea..1ab614c 100644
--- a/arch/arm/mach-msm/devices.h
+++ b/arch/arm/mach-msm/devices.h
@@ -113,6 +113,7 @@
extern struct platform_device msm_device_dmov;
extern struct platform_device msm8960_device_dmov;
extern struct platform_device apq8064_device_dmov;
+extern struct platform_device msm9615_device_dmov;
extern struct platform_device msm_device_dmov_adm0;
extern struct platform_device msm_device_dmov_adm1;
diff --git a/arch/arm/mach-msm/include/mach/dma.h b/arch/arm/mach-msm/include/mach/dma.h
index 144a71c..9c331a4 100644
--- a/arch/arm/mach-msm/include/mach/dma.h
+++ b/arch/arm/mach-msm/include/mach/dma.h
@@ -55,7 +55,7 @@
#if defined(CONFIG_ARCH_MSM7X30)
#define DMOV_SD_SIZE 0x400
#define DMOV_SD_AARM 2
-#elif defined(CONFIG_ARCH_MSM8960)
+#elif defined(CONFIG_ARCH_MSM8960) || defined(CONFIG_ARCH_MSM9615)
#define DMOV_SD_SIZE 0x800
#define DMOV_SD_AARM 1
#elif defined(CONFIG_ARCH_APQ8064)
@@ -205,6 +205,20 @@
#define DMOV_HSUART_GSBI6_RX_CHAN 8
#define DMOV_HSUART_GSBI6_RX_CRCI 11
+#elif defined(CONFIG_ARCH_MSM9615)
+
+#define DMOV_GP_CHAN 4
+
+#define DMOV_CE_IN_CHAN 0
+#define DMOV_CE_IN_CRCI 12
+
+#define DMOV_CE_OUT_CHAN 1
+#define DMOV_CE_OUT_CRCI 13
+
+#define DMOV_NAND_CHAN 3
+#define DMOV_NAND_CRCI_CMD 15
+#define DMOV_NAND_CRCI_DATA 3
+
#elif defined(CONFIG_ARCH_FSM9XXX)
/* defined in dma-fsm9xxx.h */
diff --git a/arch/arm/mach-msm/include/mach/msm_iomap-9615.h b/arch/arm/mach-msm/include/mach/msm_iomap-9615.h
index ec6f065..446adea 100644
--- a/arch/arm/mach-msm/include/mach/msm_iomap-9615.h
+++ b/arch/arm/mach-msm/include/mach/msm_iomap-9615.h
@@ -41,7 +41,7 @@
#define MSM9615_QGIC_CPU_PHYS 0x02002000
#define MSM9615_QGIC_CPU_SIZE SZ_4K
-#define MSM9615_DMOV_PHYS 0x18300000
+#define MSM9615_DMOV_PHYS 0x18320000
#define MSM9615_DMOV_SIZE SZ_1M
#define MSM9615_TLMM_PHYS 0x00800000