From patchwork Tue Mar 13 08:47:08 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dong Aisheng X-Patchwork-Id: 146364 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:4978:20e::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 016FFB70AC for ; Tue, 13 Mar 2012 19:48:11 +1100 (EST) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1S7NMl-00041J-9s; Tue, 13 Mar 2012 08:45:59 +0000 Received: from tx2ehsobe003.messaging.microsoft.com ([65.55.88.13] helo=tx2outboundpool.messaging.microsoft.com) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1S7NMC-0003j1-Py for linux-arm-kernel@lists.infradead.org; Tue, 13 Mar 2012 08:45:26 +0000 Received: from mail111-tx2-R.bigfish.com (10.9.14.239) by TX2EHSOBE005.bigfish.com (10.9.40.25) with Microsoft SMTP Server id 14.1.225.23; Tue, 13 Mar 2012 08:45:23 +0000 Received: from mail111-tx2 (localhost [127.0.0.1]) by mail111-tx2-R.bigfish.com (Postfix) with ESMTP id 31B85260440; Tue, 13 Mar 2012 08:45:23 +0000 (UTC) X-SpamScore: 3 X-BigFish: VS3(zzzz1202h1082kzz8275dhz2dh2a8h668h839h) X-Forefront-Antispam-Report: CIP:70.37.183.190; KIP:(null); UIP:(null); IPV:NLI; H:mail.freescale.net; RD:none; EFVD:NLI Received: from mail111-tx2 (localhost.localdomain [127.0.0.1]) by mail111-tx2 (MessageSwitch) id 1331628320435741_10178; Tue, 13 Mar 2012 08:45:20 +0000 (UTC) Received: from TX2EHSMHS033.bigfish.com (unknown [10.9.14.248]) by mail111-tx2.bigfish.com (Postfix) with ESMTP id 5A363A0049; Tue, 13 Mar 2012 08:45:20 +0000 (UTC) Received: from mail.freescale.net (70.37.183.190) by TX2EHSMHS033.bigfish.com (10.9.99.133) with Microsoft SMTP Server (TLS) id 14.1.225.23; Tue, 13 Mar 2012 08:45:18 +0000 Received: from az84smr01.freescale.net (10.64.34.197) by 039-SN1MMR1-001.039d.mgd.msft.net (10.84.1.13) with Microsoft SMTP Server (TLS) id 14.1.355.3; Tue, 13 Mar 2012 03:45:18 -0500 Received: from localhost.localdomain (shlinux2.ap.freescale.net [10.192.224.44]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id q2D8iri2008949; Tue, 13 Mar 2012 01:45:15 -0700 From: Dong Aisheng To: , , , Subject: [PATCH v1 5/5] ARM: mxs: add mxs dma dt support Date: Tue, 13 Mar 2012 16:47:08 +0800 Message-ID: <1331628428-24017-6-git-send-email-b29396@freescale.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1331628428-24017-1-git-send-email-b29396@freescale.com> References: <1331628428-24017-1-git-send-email-b29396@freescale.com> MIME-Version: 1.0 X-OriginatorOrg: freescale.com X-Spam-Note: CRM114 invocation failed X-Spam-Score: -4.2 (----) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-4.2 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at http://www.dnswl.org/, medium trust [65.55.88.13 listed in list.dnswl.org] -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: vinod.koul@linux.intel.com, s.hauer@pengutronix.de, rob.herring@calxeda.com, grant.likely@secretlab.ca, rdunlap@xenotime.net, kernel@pengutronix.de, cjb@laptop.org, shawn.guo@freescale.com X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org From: Dong Aisheng Originally the dma device will be added by default via arch_initcall(mxs_add_mxs_dma); Now change to call it explicitly in board file to avoid conflict with device tree support. Signed-off-by: Dong Aisheng --- arch/arm/boot/dts/imx28.dtsi | 12 +++++++++++- arch/arm/mach-mxs/devices-mx23.h | 2 ++ arch/arm/mach-mxs/devices-mx28.h | 2 ++ arch/arm/mach-mxs/devices/platform-dma.c | 3 +-- arch/arm/mach-mxs/imx28-dt.c | 2 ++ arch/arm/mach-mxs/include/mach/devices-common.h | 3 +++ arch/arm/mach-mxs/mach-apx4devkit.c | 1 + arch/arm/mach-mxs/mach-m28evk.c | 1 + arch/arm/mach-mxs/mach-mx23evk.c | 1 + arch/arm/mach-mxs/mach-mx28evk.c | 1 + arch/arm/mach-mxs/mach-stmp378x_devb.c | 1 + arch/arm/mach-mxs/mach-tx28.c | 1 + 12 files changed, 27 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi index 71c7bfb..f0322e9 100644 --- a/arch/arm/boot/dts/imx28.dtsi +++ b/arch/arm/boot/dts/imx28.dtsi @@ -47,6 +47,11 @@ reg = <0x80000000 0x2000>; }; + dma-apbh@80004000 { + compatible = "fsl,mxs-dma-apbh"; + reg = <0x80004000 2000>; + }; + ssp@80010000 { compatible = "fsl,imx28-mmc"; reg = <0x80010000 2000>; @@ -79,7 +84,12 @@ dma_channel = <3>; status = "disabled"; }; - }; + + dma-apbx@80024000 { + compatible = "fsl,mxs-dma-apbx"; + reg = <0x80024000 2000>; + }; + }; apbx@80040000 { compatible = "simple-bus"; diff --git a/arch/arm/mach-mxs/devices-mx23.h b/arch/arm/mach-mxs/devices-mx23.h index 3fa651d..721c91a 100644 --- a/arch/arm/mach-mxs/devices-mx23.h +++ b/arch/arm/mach-mxs/devices-mx23.h @@ -31,3 +31,5 @@ struct platform_device *__init mx23_add_mxsfb( const struct mxsfb_platform_data *pdata); struct platform_device *__init mx23_add_rtc_stmp3xxx(void); + +#define mx23_add_dma() mxs_add_mxs_dma() diff --git a/arch/arm/mach-mxs/devices-mx28.h b/arch/arm/mach-mxs/devices-mx28.h index 4f50094..c0cfd4e 100644 --- a/arch/arm/mach-mxs/devices-mx28.h +++ b/arch/arm/mach-mxs/devices-mx28.h @@ -51,3 +51,5 @@ extern const struct mxs_saif_data mx28_saif_data[] __initconst; mxs_add_saif(&mx28_saif_data[id], pdata) struct platform_device *__init mx28_add_rtc_stmp3xxx(void); + +#define mx28_add_dma() mxs_add_mxs_dma() diff --git a/arch/arm/mach-mxs/devices/platform-dma.c b/arch/arm/mach-mxs/devices/platform-dma.c index 6a0202b..57f851e 100644 --- a/arch/arm/mach-mxs/devices/platform-dma.c +++ b/arch/arm/mach-mxs/devices/platform-dma.c @@ -30,7 +30,7 @@ static struct platform_device *__init mxs_add_dma(const char *devid, DMA_BIT_MASK(32)); } -static int __init mxs_add_mxs_dma(void) +int __init mxs_add_mxs_dma(void) { char *apbh = "mxs-dma-apbh"; char *apbx = "mxs-dma-apbx"; @@ -47,4 +47,3 @@ static int __init mxs_add_mxs_dma(void) return 0; } -arch_initcall(mxs_add_mxs_dma); diff --git a/arch/arm/mach-mxs/imx28-dt.c b/arch/arm/mach-mxs/imx28-dt.c index 429b88e..1c4d317 100644 --- a/arch/arm/mach-mxs/imx28-dt.c +++ b/arch/arm/mach-mxs/imx28-dt.c @@ -25,6 +25,8 @@ static const struct of_dev_auxdata imx28_auxdata_lookup[] __initconst = { OF_DEV_AUXDATA("fsl,imx28-fec", MX28_ENET_MAC1_BASE_ADDR, "imx28-fec.1", NULL), OF_DEV_AUXDATA("fsl,imx28-mmc", MX28_SSP0_BASE_ADDR, "mxs-mmc.0", NULL), OF_DEV_AUXDATA("fsl,imx28-mmc", MX28_SSP1_BASE_ADDR, "mxs-mmc.1", NULL), + OF_DEV_AUXDATA("fsl,mxs-dma-apbh", MX28_APBH_DMA_BASE_ADDR, "mxs-dma-apbh", NULL), + OF_DEV_AUXDATA("fsl,mxs-dma-apbx", MX28_APBX_DMA_BASE_ADDR, "mxs-dma-apbx", NULL), { /* sentinel */ } }; diff --git a/arch/arm/mach-mxs/include/mach/devices-common.h b/arch/arm/mach-mxs/include/mach/devices-common.h index dc369c1..87939a2 100644 --- a/arch/arm/mach-mxs/include/mach/devices-common.h +++ b/arch/arm/mach-mxs/include/mach/devices-common.h @@ -106,3 +106,6 @@ struct mxs_saif_data { struct platform_device *__init mxs_add_saif( const struct mxs_saif_data *data, const struct mxs_saif_platform_data *pdata); + +/* dma */ +int __init mxs_add_mxs_dma(void); diff --git a/arch/arm/mach-mxs/mach-apx4devkit.c b/arch/arm/mach-mxs/mach-apx4devkit.c index 48a7fab..92f47e9 100644 --- a/arch/arm/mach-mxs/mach-apx4devkit.c +++ b/arch/arm/mach-mxs/mach-apx4devkit.c @@ -210,6 +210,7 @@ static void __init apx4devkit_init(void) mxs_iomux_setup_multiple_pads(apx4devkit_pads, ARRAY_SIZE(apx4devkit_pads)); + mx28_add_dma(); mx28_add_duart(); mx28_add_auart0(); mx28_add_auart1(); diff --git a/arch/arm/mach-mxs/mach-m28evk.c b/arch/arm/mach-mxs/mach-m28evk.c index 06d7996..9a74ce6 100644 --- a/arch/arm/mach-mxs/mach-m28evk.c +++ b/arch/arm/mach-mxs/mach-m28evk.c @@ -321,6 +321,7 @@ static void __init m28evk_init(void) { mxs_iomux_setup_multiple_pads(m28evk_pads, ARRAY_SIZE(m28evk_pads)); + mx28_add_dma(); mx28_add_duart(); mx28_add_auart0(); mx28_add_auart3(); diff --git a/arch/arm/mach-mxs/mach-mx23evk.c b/arch/arm/mach-mxs/mach-mx23evk.c index 5ea1c57..cabc884 100644 --- a/arch/arm/mach-mxs/mach-mx23evk.c +++ b/arch/arm/mach-mxs/mach-mx23evk.c @@ -143,6 +143,7 @@ static void __init mx23evk_init(void) mxs_iomux_setup_multiple_pads(mx23evk_pads, ARRAY_SIZE(mx23evk_pads)); + mx23_add_dma(); mx23_add_duart(); mx23_add_auart0(); diff --git a/arch/arm/mach-mxs/mach-mx28evk.c b/arch/arm/mach-mxs/mach-mx28evk.c index e386c14..4b645eb 100644 --- a/arch/arm/mach-mxs/mach-mx28evk.c +++ b/arch/arm/mach-mxs/mach-mx28evk.c @@ -415,6 +415,7 @@ static void __init mx28evk_init(void) mxs_iomux_setup_multiple_pads(mx28evk_pads, ARRAY_SIZE(mx28evk_pads)); + mx28_add_dma(); mx28_add_duart(); mx28_add_auart0(); mx28_add_auart3(); diff --git a/arch/arm/mach-mxs/mach-stmp378x_devb.c b/arch/arm/mach-mxs/mach-stmp378x_devb.c index a626c07..a391b9e 100644 --- a/arch/arm/mach-mxs/mach-stmp378x_devb.c +++ b/arch/arm/mach-mxs/mach-stmp378x_devb.c @@ -88,6 +88,7 @@ static void __init stmp378x_dvb_init(void) mxs_iomux_setup_multiple_pads(stmp378x_dvb_pads, ARRAY_SIZE(stmp378x_dvb_pads)); + mx23_add_dma(); mx23_add_duart(); mx23_add_auart0(); mx23_add_rtc_stmp3xxx(); diff --git a/arch/arm/mach-mxs/mach-tx28.c b/arch/arm/mach-mxs/mach-tx28.c index 2c0862e..e17e262 100644 --- a/arch/arm/mach-mxs/mach-tx28.c +++ b/arch/arm/mach-mxs/mach-tx28.c @@ -149,6 +149,7 @@ static void __init tx28_stk5v3_init(void) mxs_iomux_setup_multiple_pads(tx28_stk5v3_pads, ARRAY_SIZE(tx28_stk5v3_pads)); + mx28_add_dma(); mx28_add_duart(); /* UART1 */ mx28_add_auart(1); /* UART2 */