From patchwork Thu Apr 4 12:00:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joris OFFOUGA X-Patchwork-Id: 1077210 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="eZTD8j6P"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44ZhcQ25WFz9sPn for ; Thu, 4 Apr 2019 23:11:02 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id EFB0EC21E07; Thu, 4 Apr 2019 12:09:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id E8389C21E7D; Thu, 4 Apr 2019 12:02:32 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 9B35AC21E88; Thu, 4 Apr 2019 12:01:09 +0000 (UTC) Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by lists.denx.de (Postfix) with ESMTPS id 7FF2DC21EA2 for ; Thu, 4 Apr 2019 12:01:05 +0000 (UTC) Received: by mail-wr1-f67.google.com with SMTP id t17so3381141wrw.13 for ; Thu, 04 Apr 2019 05:01:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=KoxmNK0OmNBJAbp1L6nT0z5D2OA8EB3a6m+sjVjIT7g=; b=eZTD8j6PKT8Y7pBlpqYkVRV9isAS9m0m6Te8uVMJGs6ZF5TqD71wFKNy4SSoqXcTTX KQxUIMegi1Il56NrsmA7OBujSpSuD21V0p0CrxCc/K4tgOTpfBH3zas2WjVb/kkvjbR5 tg1Px85TAg3JdaX513mqIW7j1MqG0qeRQtSoWUuktVQ3sIcgU16lj17EXtp9u5+ejYzY FX+4/6BKHyPRa3ULtltv1iuS1+UC++snnmGJ9/dCcj0Z0Jl0rMN1xuNOyAjRNI65xV13 ZPyfEAKL8HfeTAk6oy7oCYMOlopNt6krSKDmn91EwfdVLMFtD/H2gwP+pWfCLN5jnljg AWfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=KoxmNK0OmNBJAbp1L6nT0z5D2OA8EB3a6m+sjVjIT7g=; b=nfqpbckVyOVRX17OAzA/lcyRBXT8xapqH2Bsgcm4CTfm7kMvQBHh4VjxIHdMDTfIMv XxnsVTAkCICW2rx5UT9ASO/tAFSBA5tlB7R+yGYuLaAmGXVjJKwP4RP+5/X5d3ffiOkd bLybQgeTQG6qN0oI2OK41Np2ej4tEj7txeL8LCC/BRjIHVORIio0OrX8ATO2D/m8Wi28 vnPq2OyHgzhpCs1CGDRHFF77BSmQdRrdCHjK2oJyNE7sKPGU2H+1og9VcmPOrTTazzwP N+7C9N0DUyfKBItxyJ8Sq2Kc2WRSnm/olBwvwKUmGByBEIlHllipwwxCcXMnBxBbvWvh Jy7A== X-Gm-Message-State: APjAAAXXwQ914/dKRFZRu/UJQ6mNDGS6HBBMIY1coSSM1SgUlKvK6afo 9O4Fe9o9+ZRJpl7L7wzrxrhSvM3kRMs= X-Google-Smtp-Source: APXvYqzU92zzOt01/WzJAnv5E7ewXqi8eUIvWlj43PlgdnEm5DO1Ish2jP1skcXuF+40cCnhVuOfeQ== X-Received: by 2002:adf:f805:: with SMTP id s5mr4111646wrp.178.1554379264848; Thu, 04 Apr 2019 05:01:04 -0700 (PDT) Received: from furher.auvence.co ([92.103.174.138]) by smtp.gmail.com with ESMTPSA id y1sm54058144wrd.34.2019.04.04.05.01.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 04 Apr 2019 05:01:04 -0700 (PDT) From: Joris Offouga To: u-boot@lists.denx.de, sbabic@denx.de Date: Thu, 4 Apr 2019 14:00:55 +0200 Message-Id: <1554379256-24701-5-git-send-email-offougajoris@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1554379256-24701-1-git-send-email-offougajoris@gmail.com> References: <1554379256-24701-1-git-send-email-offougajoris@gmail.com> Cc: vanessa.maegima@nxp.com, richard.hu@technexion.com, otavio@ossystems.com.br Subject: [U-Boot] [PATCH V2 4/5] pico-imx7d: Convert DM MMC X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" This patch enable convert DM MMC for imx7d-pico board and variant. Before the DM conversion only usdhc3 was enabled and therefore it appeared as MMC 0 to u-boot. After enabling MMC DM though usdhc3 defaults to MMC 2, which left unattended would drive changes to existing pico-pi bootscripts and environment variables that rely on mmc 0. Setup the alias of mmc0 and usdhc3 so that existing pico-imx7d boot code will work unmodified. When converting to DM_MMC it is necessary that SPL initializes eMMC by itself, so move the original eMMC initialization from U-Boot proper to SPL. Signed-off-by: Joris Offouga Signed-off-by: Fabio Estevam --- arch/arm/dts/imx7d-pico.dtsi | 4 ++++ board/technexion/pico-imx7d/pico-imx7d.c | 38 -------------------------------- board/technexion/pico-imx7d/spl.c | 38 ++++++++++++++++++++++++++++++++ configs/pico-hobbit-imx7d_defconfig | 1 + configs/pico-imx7d_defconfig | 1 + configs/pico-pi-imx7d_defconfig | 1 + 6 files changed, 45 insertions(+), 38 deletions(-) diff --git a/arch/arm/dts/imx7d-pico.dtsi b/arch/arm/dts/imx7d-pico.dtsi index d1a4079..9f1fe68 100644 --- a/arch/arm/dts/imx7d-pico.dtsi +++ b/arch/arm/dts/imx7d-pico.dtsi @@ -8,6 +8,10 @@ / { + aliases { + mmc0 = &usdhc3; + }; + /* Will be filled by the bootloader */ memory@80000000 { device_type = "memory"; diff --git a/board/technexion/pico-imx7d/pico-imx7d.c b/board/technexion/pico-imx7d/pico-imx7d.c index 3b9be45..e63b19d 100644 --- a/board/technexion/pico-imx7d/pico-imx7d.c +++ b/board/technexion/pico-imx7d/pico-imx7d.c @@ -13,10 +13,8 @@ #include #include #include -#include #include #include -#include #include #include #include @@ -28,9 +26,6 @@ DECLARE_GLOBAL_DATA_PTR; #define UART_PAD_CTRL (PAD_CTL_DSE_3P3V_49OHM | \ PAD_CTL_PUS_PU100KOHM | PAD_CTL_HYS) -#define USDHC_PAD_CTRL (PAD_CTL_DSE_3P3V_32OHM | PAD_CTL_SRE_SLOW | \ - PAD_CTL_HYS | PAD_CTL_PUE | PAD_CTL_PUS_PU47KOHM) - #define ENET_PAD_CTRL (PAD_CTL_PUS_PU100KOHM | PAD_CTL_DSE_3P3V_49OHM) #define ENET_PAD_CTRL_MII (PAD_CTL_DSE_3P3V_32OHM) @@ -126,20 +121,6 @@ static iomux_v3_cfg_t const uart5_pads[] = { MX7D_PAD_I2C4_SDA__UART5_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL), }; -static iomux_v3_cfg_t const usdhc3_emmc_pads[] = { - MX7D_PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_SD3_DATA0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_SD3_DATA1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_SD3_DATA2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_SD3_DATA3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_SD3_DATA4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_SD3_DATA5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_SD3_DATA6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_SD3_DATA7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL), - MX7D_PAD_GPIO1_IO14__GPIO1_IO14 | MUX_PAD_CTRL(USDHC_PAD_CTRL), -}; - #ifdef CONFIG_FEC_MXC static iomux_v3_cfg_t const fec1_pads[] = { MX7D_PAD_SD2_CD_B__ENET1_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL_MII), @@ -224,25 +205,6 @@ static void setup_iomux_uart(void) imx_iomux_v3_setup_multiple_pads(uart5_pads, ARRAY_SIZE(uart5_pads)); } -static struct fsl_esdhc_cfg usdhc_cfg[1] = { - {USDHC3_BASE_ADDR}, -}; - -int board_mmc_getcd(struct mmc *mmc) -{ - /* Assume uSDHC3 emmc is always present */ - return 1; -} - -int board_mmc_init(bd_t *bis) -{ - imx_iomux_v3_setup_multiple_pads( - usdhc3_emmc_pads, ARRAY_SIZE(usdhc3_emmc_pads)); - usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK); - - return fsl_esdhc_initialize(bis, &usdhc_cfg[0]); -} - int board_early_init_f(void) { setup_iomux_uart(); diff --git a/board/technexion/pico-imx7d/spl.c b/board/technexion/pico-imx7d/spl.c index 8c34438..92a4646 100644 --- a/board/technexion/pico-imx7d/spl.c +++ b/board/technexion/pico-imx7d/spl.c @@ -5,11 +5,15 @@ * Author: Richard Hu */ +#include #include #include +#include #include #include +#include #include +#include #include #if defined(CONFIG_SPL_BUILD) @@ -119,4 +123,38 @@ void board_init_f(ulong dummy) void reset_cpu(ulong addr) { } + +#define USDHC_PAD_CTRL (PAD_CTL_DSE_3P3V_32OHM | PAD_CTL_SRE_SLOW | \ + PAD_CTL_HYS | PAD_CTL_PUE | PAD_CTL_PUS_PU47KOHM) + +static iomux_v3_cfg_t const usdhc3_pads[] = { + MX7D_PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_SD3_DATA0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_SD3_DATA1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_SD3_DATA2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_SD3_DATA3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_SD3_DATA4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_SD3_DATA5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_SD3_DATA6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_SD3_DATA7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX7D_PAD_GPIO1_IO14__GPIO1_IO14 | MUX_PAD_CTRL(USDHC_PAD_CTRL), +}; + +static struct fsl_esdhc_cfg usdhc_cfg[1] = { + {USDHC3_BASE_ADDR}, +}; + +int board_mmc_getcd(struct mmc *mmc) +{ + /* Assume uSDHC3 emmc is always present */ + return 1; +} + +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); + return fsl_esdhc_initialize(bis, &usdhc_cfg[0]); +} #endif diff --git a/configs/pico-hobbit-imx7d_defconfig b/configs/pico-hobbit-imx7d_defconfig index a830aa8..918e4b9 100644 --- a/configs/pico-hobbit-imx7d_defconfig +++ b/configs/pico-hobbit-imx7d_defconfig @@ -34,6 +34,7 @@ CONFIG_CMD_SPL=y CONFIG_CMD_SPL_WRITE_SIZE=0x20000 CONFIG_CMD_DFU=y CONFIG_CMD_GPIO=y +CONFIG_DM_MMC=y CONFIG_CMD_GPT=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y diff --git a/configs/pico-imx7d_defconfig b/configs/pico-imx7d_defconfig index ec7faf9..04d7804 100644 --- a/configs/pico-imx7d_defconfig +++ b/configs/pico-imx7d_defconfig @@ -30,6 +30,7 @@ CONFIG_CMD_BOOTMENU=y CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX7=y CONFIG_DM_GPIO=y +CONFIG_DM_MMC=y CONFIG_CMD_SPL=y CONFIG_CMD_SPL_WRITE_SIZE=0x20000 CONFIG_CMD_DFU=y diff --git a/configs/pico-pi-imx7d_defconfig b/configs/pico-pi-imx7d_defconfig index 662492a..926e70e 100644 --- a/configs/pico-pi-imx7d_defconfig +++ b/configs/pico-pi-imx7d_defconfig @@ -34,6 +34,7 @@ CONFIG_CMD_SPL=y CONFIG_CMD_SPL_WRITE_SIZE=0x20000 CONFIG_CMD_DFU=y CONFIG_CMD_GPIO=y +CONFIG_DM_MMC=y CONFIG_CMD_GPT=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y