From patchwork Fri Sep 9 20:00:08 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rogerio Pimentel X-Patchwork-Id: 114126 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 D10CEB71BC for ; Sat, 10 Sep 2011 06:04:26 +1000 (EST) Received: from canuck.infradead.org ([134.117.69.58]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1R27JD-0002iM-G3; Fri, 09 Sep 2011 20:04:19 +0000 Received: from localhost ([127.0.0.1] helo=canuck.infradead.org) by canuck.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1R27JD-00083n-4G; Fri, 09 Sep 2011 20:04:19 +0000 Received: from va3ehsobe003.messaging.microsoft.com ([216.32.180.13] helo=VA3EHSOBE003.bigfish.com) by canuck.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1R27J9-00083U-Ub for linux-arm-kernel@lists.infradead.org; Fri, 09 Sep 2011 20:04:16 +0000 Received: from mail107-va3-R.bigfish.com (10.7.14.254) by VA3EHSOBE003.bigfish.com (10.7.40.23) with Microsoft SMTP Server id 14.1.225.22; Fri, 9 Sep 2011 20:04:13 +0000 Received: from mail107-va3 (localhost.localdomain [127.0.0.1]) by mail107-va3-R.bigfish.com (Postfix) with ESMTP id E5B6217802A5; Fri, 9 Sep 2011 20:04:12 +0000 (UTC) X-SpamScore: 0 X-BigFish: VS0(zzzz1202hzz8275bhz2dh2a8h668h839h61h) X-Spam-TCS-SCL: 0:0 X-Forefront-Antispam-Report: CIP:70.37.183.190; KIP:(null); UIP:(null); IPVD:NLI; H:mail.freescale.net; RD:none; EFVD:NLI Received: from mail107-va3 (localhost.localdomain [127.0.0.1]) by mail107-va3 (MessageSwitch) id 1315598644519087_1997; Fri, 9 Sep 2011 20:04:04 +0000 (UTC) Received: from VA3EHSMHS025.bigfish.com (unknown [10.7.14.241]) by mail107-va3.bigfish.com (Postfix) with ESMTP id 6825A4E80A6; Fri, 9 Sep 2011 20:00:06 +0000 (UTC) Received: from mail.freescale.net (70.37.183.190) by VA3EHSMHS025.bigfish.com (10.7.99.35) with Microsoft SMTP Server (TLS) id 14.1.225.22; Fri, 9 Sep 2011 19:59:57 +0000 Received: from az33smr01.freescale.net (10.64.34.199) by 039-SN1MMR1-002.039d.mgd.msft.net (10.84.1.15) with Microsoft SMTP Server id 14.1.323.7; Fri, 9 Sep 2011 14:59:56 -0500 Received: from b19259.am.freescale.net ([10.29.240.183]) by az33smr01.freescale.net (8.13.1/8.13.0) with ESMTP id p89Jxh9Y005051; Fri, 9 Sep 2011 14:59:54 -0500 (CDT) From: Rogerio Pimentel To: Subject: [PATCH v2 4/4] ARM: mx53_ard: Add flexcan support Date: Fri, 9 Sep 2011 17:00:08 -0300 Message-ID: <1315598408-29563-4-git-send-email-rogerio.pimentel@freescale.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1315598408-29563-1-git-send-email-rogerio.pimentel@freescale.com> References: <1315598408-29563-1-git-send-email-rogerio.pimentel@freescale.com> MIME-Version: 1.0 X-OriginatorOrg: freescale.com X-CRM114-Version: 20090807-BlameThorstenAndJenny ( TRE 0.7.6 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20110909_160416_106257_99D1D953 X-CRM114-Status: GOOD ( 18.28 ) X-Spam-Score: -0.7 (/) X-Spam-Report: SpamAssassin version 3.3.1 on canuck.infradead.org summary: Content analysis details: (-0.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [216.32.180.13 listed in list.dnswl.org] Cc: Rogerio Pimentel , kernel@pengutronix.de X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.12 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 Adding flexcan support on i.MX53 ARD Signed-off-by: Rogerio Pimentel --- Changes since v1: Changed pull-up pad config from iomux-mx53.h to board-mx53_ard.c Created a function to request CAN pins If pins cannot be requested, flexcan will not be registered arch/arm/mach-mx5/Kconfig | 1 + arch/arm/mach-mx5/board-mx53_ard.c | 37 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig index fb4c503..7c911d1 100644 --- a/arch/arm/mach-mx5/Kconfig +++ b/arch/arm/mach-mx5/Kconfig @@ -205,6 +205,7 @@ config MACH_MX53_LOCO config MACH_MX53_ARD bool "Support MX53 ARD platforms" select SOC_IMX53 + select IMX_HAVE_PLATFORM_FLEXCAN select IMX_HAVE_PLATFORM_IMX2_WDT select IMX_HAVE_PLATFORM_IMX_I2C select IMX_HAVE_PLATFORM_IMX_UART diff --git a/arch/arm/mach-mx5/board-mx53_ard.c b/arch/arm/mach-mx5/board-mx53_ard.c index 76a67c4..3b5d77e 100644 --- a/arch/arm/mach-mx5/board-mx53_ard.c +++ b/arch/arm/mach-mx5/board-mx53_ard.c @@ -44,6 +44,8 @@ #define ARD_BACK IMX_GPIO_NR(5, 11) #define ARD_PROG IMX_GPIO_NR(5, 12) #define ARD_VOLUMEUP IMX_GPIO_NR(5, 13) +#define ARD_CAN_EN IMX_GPIO_NR(7, 6) +#define ARD_CAN_STBY IMX_GPIO_NR(4, 15) static iomux_v3_cfg_t mx53_ard_pads[] = { /* UART1 */ @@ -102,6 +104,13 @@ static iomux_v3_cfg_t mx53_ard_pads[] = { MX53_PAD_DISP0_DAT18__GPIO5_12, /* prog */ MX53_PAD_DISP0_DAT19__GPIO5_13, /* vol up */ MX53_PAD_GPIO_10__GPIO4_0, /* vol down */ + /* CAN */ + MX53_PAD_KEY_COL2__CAN1_TXCAN | PAD_CTL_PUS_100K_UP, + MX53_PAD_KEY_ROW2__CAN1_RXCAN, + MX53_PAD_PATA_RESET_B__CAN2_TXCAN | PAD_CTL_PUS_100K_UP, + MX53_PAD_PATA_IORDY__CAN2_RXCAN, + MX53_PAD_PATA_DA_0__GPIO7_6, + MX53_PAD_KEY_ROW4__GPIO4_15, }; #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \ @@ -181,6 +190,25 @@ static void __init mx53_ard_io_init(void) gpio_direction_output(ARD_I2CPORTEXP_B, 1); } +static int __init mx53_ard_flexcan_init(void) +{ + int ret; + + ret = gpio_request_one(ARD_CAN_EN, GPIOF_OUT_INIT_HIGH, "can-en"); + if (ret) { + pr_err("Cannot request ARD_CAN_EN pin: %d\n", ret); + return ret; + } + + ret = gpio_request_one(ARD_CAN_STBY, GPIOF_OUT_INIT_HIGH, "can-stby"); + if (ret) { + pr_err("Cannot request ARD_CAN_STBY pin: %d\n", ret); + return ret; + } + + return 0; +} + /* Config CS1 settings for ethernet controller */ static int weim_cs_config(void) { @@ -222,6 +250,8 @@ static struct platform_device *devices[] __initdata = { static void __init mx53_ard_board_init(void) { + int ret; + imx53_soc_init(); imx53_add_imx_uart(0, NULL); @@ -234,6 +264,13 @@ static void __init mx53_ard_board_init(void) imx53_add_imx_i2c(1, &mx53_ard_i2c2_data); imx53_add_imx_i2c(2, &mx53_ard_i2c3_data); imx_add_gpio_keys(&ard_button_data); + ret = mx53_ard_flexcan_init(); + if (ret) { + pr_err("failed to request flexcan pins: %d\n", ret); + } else { + imx53_add_flexcan0(NULL); + imx53_add_flexcan1(NULL); + } } static void __init mx53_ard_timer_init(void)