summaryrefslogtreecommitdiff
path: root/arch/arm/plat-mxc/devices/platform-imx-dma.c
diff options
context:
space:
mode:
authorZeng Zhaoming <b32542@freescale.com>2011-06-28 09:15:47 +0800
committerJason Liu <r64343@freescale.com>2012-01-09 20:18:24 +0800
commite9fdc59b7b9f57ac8f886779ded5a8a326f7e9e6 (patch)
treec08e929032e804a36c3df5bdbbf1aa2acb0c2310 /arch/arm/plat-mxc/devices/platform-imx-dma.c
parent2049219609cb178c90c962ba3c8919d9d8d8b314 (diff)
ENGR00139229-1 MX6: Bring up i.MX6 sabreauto with Single core
MSL code for bring up MX6 sabreauto board with Single core. Merged from testbuild:imx6_bringup branch. Signed-off-by: Anson Huang <b20788@freescale.com> Signed-off-by: Jason Liu <r64343@freescale.com> Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com> Singed-off-by: Dinh Nguyen <Dinh.Nguyen@freescale.com> Signed-off-by: Richard Zhu <r65037@freescale.com> Signed-off-by: Anish Trivedi <anish@freescale.com> Signed-off-by: Dong Aisheng <b29396@freescale.com> Signed-off-by: Jason Chen <b02280@freescale.com> Signed-off-by: Lily Zhang <r58066@freescale.com> Signed-off-by: Sammy He <r62914@freescale.com> Signed-off-by: Peter Chen <peter.chen@freescale.com> Signed-off-by: Frank Li <Frank.Li@freescale.com> Signed-off-by: Terry Lv <r65388@freescale.com> Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Zeng Zhaoming <b32542@freescale.com> Merged-by: Zeng Zhaoming <b32542@freescale.com> Reviewed-by: Jason Liu <r64343@freescale.com> Reviewed-by: Frank Li <Frank.Li@freescale.com>
Diffstat (limited to 'arch/arm/plat-mxc/devices/platform-imx-dma.c')
-rwxr-xr-xarch/arm/plat-mxc/devices/platform-imx-dma.c48
1 files changed, 42 insertions, 6 deletions
diff --git a/arch/arm/plat-mxc/devices/platform-imx-dma.c b/arch/arm/plat-mxc/devices/platform-imx-dma.c
index f4ad78493449..9b8715244e29 100755
--- a/arch/arm/plat-mxc/devices/platform-imx-dma.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-dma.c
@@ -56,6 +56,11 @@ struct imx_imx_sdma_data imx53_imx_sdma_data __initconst =
imx_imx_sdma_data_entry_single(MX53, 2, "imx53", 1);
#endif /* ifdef CONFIG_SOC_IMX51 */
+#ifdef CONFIG_SOC_IMX6Q
+struct imx_imx_sdma_data imx6q_imx_sdma_data __initconst =
+ imx_imx_sdma_data_entry_single(MX6Q, 2, "imx6q", 1);
+#endif /* ifdef CONFIG_SOC_IMX6Q */
+
static struct platform_device __init __maybe_unused *imx_add_imx_sdma(
const struct imx_imx_sdma_data *data)
{
@@ -173,6 +178,21 @@ static struct sdma_script_start_addrs addr_imx53_to1 = {
};
#endif
+#ifdef CONFIG_SOC_IMX6Q
+static struct sdma_script_start_addrs addr_imx6q_to1 = {
+ .ap_2_ap_addr = 642,
+ .uart_2_mcu_addr = 817,
+ .mcu_2_app_addr = 747,
+ .per_2_per_addr = 6474,
+ .uartsh_2_mcu_addr = 1032,
+ .mcu_2_shp_addr = 960,
+ .app_2_mcu_addr = 683,
+ .shp_2_mcu_addr = 891,
+ .spdif_2_mcu_addr = 1100,
+ .mcu_2_spdif_addr = 1134,
+};
+#endif
+
static int __init imxXX_add_imx_dma(void)
{
struct platform_device *ret;
@@ -195,9 +215,11 @@ static int __init imxXX_add_imx_dma(void)
int to_version = mx31_revision() >> 4;
imx31_imx_sdma_data.pdata.to_version = to_version;
if (to_version == 1)
- imx31_imx_sdma_data.pdata.script_addrs = &addr_imx31_to1;
+ imx31_imx_sdma_data.pdata.script_addrs =
+ &addr_imx31_to1;
else
- imx31_imx_sdma_data.pdata.script_addrs = &addr_imx31_to2;
+ imx31_imx_sdma_data.pdata.script_addrs =
+ &addr_imx31_to2;
ret = imx_add_imx_sdma(&imx31_imx_sdma_data);
} else
#endif
@@ -207,9 +229,11 @@ static int __init imxXX_add_imx_dma(void)
int to_version = mx35_revision() >> 4;
imx35_imx_sdma_data.pdata.to_version = to_version;
if (to_version == 1)
- imx35_imx_sdma_data.pdata.script_addrs = &addr_imx35_to1;
+ imx35_imx_sdma_data.pdata.script_addrs =
+ &addr_imx35_to1;
else
- imx35_imx_sdma_data.pdata.script_addrs = &addr_imx35_to2;
+ imx35_imx_sdma_data.pdata.script_addrs =
+ &addr_imx35_to2;
ret = imx_add_imx_sdma(&imx35_imx_sdma_data);
} else
#endif
@@ -219,7 +243,8 @@ static int __init imxXX_add_imx_dma(void)
int to_version = mx51_revision() >> 4;
imx51_imx_sdma_data.pdata.to_version = to_version;
if (to_version == 3)
- imx51_imx_sdma_data.pdata.script_addrs = &addr_imx51_to3;
+ imx51_imx_sdma_data.pdata.script_addrs =
+ &addr_imx51_to3;
ret = imx_add_imx_sdma(&imx51_imx_sdma_data);
} else
#endif
@@ -228,10 +253,21 @@ static int __init imxXX_add_imx_dma(void)
int to_version = 1;
imx53_imx_sdma_data.pdata.to_version = to_version;
if (to_version == 1)
- imx53_imx_sdma_data.pdata.script_addrs = &addr_imx53_to1;
+ imx53_imx_sdma_data.pdata.script_addrs =
+ &addr_imx53_to1;
ret = imx_add_imx_sdma(&imx53_imx_sdma_data);
} else
#endif
+#if defined(CONFIG_SOC_IMX6Q)
+ if (cpu_is_mx6q()) {
+ int to_version = 1;
+ imx6q_imx_sdma_data.pdata.to_version = to_version;
+ if (to_version == 1)
+ imx6q_imx_sdma_data.pdata.script_addrs =
+ &addr_imx6q_to1;
+ ret = imx_add_imx_sdma(&imx6q_imx_sdma_data);
+ } else
+#endif
ret = ERR_PTR(-ENODEV);
if (IS_ERR(ret))