From patchwork Mon Apr 15 22:14:00 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Otavio Salvador X-Patchwork-Id: 236735 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 9F3132C00CD for ; Tue, 16 Apr 2013 08:14:37 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 0A9684A176; Tue, 16 Apr 2013 00:14:36 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MsmiyKWqLBSF; Tue, 16 Apr 2013 00:14:35 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 77A304A177; Tue, 16 Apr 2013 00:14:34 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 297EA4A176 for ; Tue, 16 Apr 2013 00:14:33 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Msyliw-UKjyf for ; Tue, 16 Apr 2013 00:14:32 +0200 (CEST) X-Greylist: delayed 31097 seconds by postgrey-1.27 at theia; Tue, 16 Apr 2013 00:14:31 CEST X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-yh0-f48.google.com (mail-yh0-f48.google.com [209.85.213.48]) by theia.denx.de (Postfix) with ESMTPS id 1427D4A177 for ; Tue, 16 Apr 2013 00:14:30 +0200 (CEST) Received: by mail-yh0-f48.google.com with SMTP id q46so820878yhf.7 for ; Mon, 15 Apr 2013 15:14:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:sender:from:to:cc:subject:date:message-id:x-mailer; bh=f5seRKJFlcNgjx6UPr7GmnkgdyDqgumfAVcdJ/obiYs=; b=kMjOucfIDQmUhBrS5c2DmKbZcpvzb13XeuyaFBCjtYNkSJ7pvtWoIIdLPYIuoPGF9N YyE7LfggfQ7Jh2+vWBkX76e38Mjln1kbq0a+MlmlyJlC5/xuEKADqAxZAVfgb1/eCWfh xIWqRCrmyR5V8u81RStUlJRMHV47m8r9Hq3NVJ0LZCJmJ0VWo1V0xYcHGxkEP6roMGuz lgIOfdcln9oELDBz6zE5Jid6UT6joQ+s/AE0lXRsaqONc0mSkR5YsaWTd0m5lJ4y29Az SqpW00WkYGyhLLxL/AHXC+6WneOkj7Dg8P16hTD1JqIS9ysH1L+dT+M8cAOr9ONW53YD GQfQ== X-Received: by 10.236.200.37 with SMTP id y25mr12864149yhn.110.1366064069583; Mon, 15 Apr 2013 15:14:29 -0700 (PDT) Received: from nano.lab.ossystems.com.br ([187.23.144.59]) by mx.google.com with ESMTPS id b78sm30902668yhi.2.2013.04.15.15.14.27 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 15 Apr 2013 15:14:28 -0700 (PDT) From: Otavio Salvador To: U-Boot Mailing List Date: Mon, 15 Apr 2013 19:14:00 -0300 Message-Id: <1366064042-30763-1-git-send-email-otavio@ossystems.com.br> X-Mailer: git-send-email 1.8.1 Cc: Fabio Estevam , Otavio Salvador Subject: [U-Boot] [PATCH v2 1/3] wandboard: Add card detection for SOM MicroSD card X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.11 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de This add support to identify if the card is connected or not; so it does not try to communicate with the controller if no card is available. Signed-off-by: Otavio Salvador --- Changes in v2: None arch/arm/include/asm/arch-mx6/mx6dl_pins.h | 1 + board/wandboard/wandboard.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/arch/arm/include/asm/arch-mx6/mx6dl_pins.h b/arch/arm/include/asm/arch-mx6/mx6dl_pins.h index 9846f1b..b8e6bf0 100644 --- a/arch/arm/include/asm/arch-mx6/mx6dl_pins.h +++ b/arch/arm/include/asm/arch-mx6/mx6dl_pins.h @@ -93,6 +93,7 @@ enum { MX6_PAD_EIM_D28__I2C1_SDA = IOMUX_PAD(0x0544, 0x0174, 1 | IOMUX_CONFIG_SION, 0x086C, 1, 0), MX6_PAD_EIM_D28__GPIO_3_28 = IOMUX_PAD(0x0544, 0x0174, 5, 0x0000, 0, 0), MX6_PAD_EIM_D29__GPIO_3_29 = IOMUX_PAD(0x0548, 0x0178, 5, 0x0000, 0, 0), + MX6_PAD_EIM_DA9__GPIO_3_9 = IOMUX_PAD(0x0590, 0x01C0, 5, 0x0000, 0, 0), MX6_PAD_ENET_MDC__ENET_MDC = IOMUX_PAD(0x05B8, 0x01E8, 1, 0x0000, 0, 0), MX6_PAD_ENET_MDIO__ENET_MDIO = IOMUX_PAD(0x05BC, 0x01EC, 1, 0x0810, 0, 0), MX6_PAD_ENET_REF_CLK__ENET_TX_CLK = IOMUX_PAD(0x05C0, 0x01F0, 1, 0x0000, 0, 0), diff --git a/board/wandboard/wandboard.c b/board/wandboard/wandboard.c index ac7b89a..a8f6ba2 100644 --- a/board/wandboard/wandboard.c +++ b/board/wandboard/wandboard.c @@ -52,6 +52,8 @@ static iomux_v3_cfg_t const uart1_pads[] = { MX6_PAD_CSI0_DAT11__UART1_RXD | MUX_PAD_CTRL(UART_PAD_CTRL), }; +#define USDHC3_CD_GPIO IMX_GPIO_NR(3, 9) + static iomux_v3_cfg_t const usdhc3_pads[] = { MX6_PAD_SD3_CLK__USDHC3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), MX6_PAD_SD3_CMD__USDHC3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), @@ -59,6 +61,8 @@ static iomux_v3_cfg_t const usdhc3_pads[] = { MX6_PAD_SD3_DAT1__USDHC3_DAT1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), MX6_PAD_SD3_DAT2__USDHC3_DAT2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), MX6_PAD_SD3_DAT3__USDHC3_DAT3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + /* SOM MicroSD Card Detect */ + MX6_PAD_EIM_DA9__GPIO_3_9 | MUX_PAD_CTRL(NO_PAD_CTRL), }; static iomux_v3_cfg_t const enet_pads[] = { @@ -100,12 +104,27 @@ static struct fsl_esdhc_cfg usdhc_cfg[1] = { {USDHC3_BASE_ADDR}, }; +int board_mmc_getcd(struct mmc *mmc) +{ + struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; + int ret = 0; + + switch (cfg->esdhc_base) { + case USDHC3_BASE_ADDR: + ret = !gpio_get_value(USDHC3_CD_GPIO); + break; + } + + return ret; +} + int board_mmc_init(bd_t *bis) { imx_iomux_v3_setup_multiple_pads(usdhc3_pads, ARRAY_SIZE(usdhc3_pads)); usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK); usdhc_cfg[0].max_bus_width = 4; + gpio_direction_input(USDHC3_CD_GPIO); return fsl_esdhc_initialize(bis, &usdhc_cfg[0]); }