From patchwork Sat Dec 18 21:10:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 1570619 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=ktEMxmaD; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JGdn01VJHz9sVq for ; Sun, 19 Dec 2021 08:10:58 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 52F69830A0; Sat, 18 Dec 2021 22:10:42 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ktEMxmaD"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 246BD8309D; Sat, 18 Dec 2021 22:10:40 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id E42B88306E for ; Sat, 18 Dec 2021 22:10:36 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=festevam@gmail.com Received: by mail-qt1-x82a.google.com with SMTP id j17so6223940qtx.2 for ; Sat, 18 Dec 2021 13:10:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=rV2i33osYSOkeZPUaahOMqt9me8fY7tyubR8ligqKyg=; b=ktEMxmaD87e0lCi/AcUbNn0Ti1BctmF3rcqPDqsOG6t5XXNooA5qqUTuWacnrvAZQv yK351V7Z5k3vdgHlSdm+vavIpOeHaL1GP0rGK/44MJye6y60jVN1PbQpH1zDK1SdDMER TKFyH2TvB94Dl+ou03CZ81IeWW3J6no1lCvpeUPbVewhZbsFpnQZqHNK9hZRVdyr9ZEp CDqIokr2aIvOzPRRIZDzifcNjxiOylVERjuBJ1YTKSfyzsDyQ3Mmsmhfz3ZFqTjaG2c2 UR8/eggnSBgzuf9VZbmOBctQU7tlci+Ot/tbfdA0PIigCtaBbD11/9yt1uW5Hkpk0MB4 FOJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=rV2i33osYSOkeZPUaahOMqt9me8fY7tyubR8ligqKyg=; b=jJ/+pzxmRkGxmnXPJjfkHhbNmOm0woC8mnAwXOgMn+HnmEzT9EBR+tWEBUi4v6fVh0 F6OzzdOW/D/Ll8j0XdPsUXW+I6lxrDTV/U5vTQGrIuKKzueF3eWFUoGiXx56tx9qAhUS obyrz7pXvrla7TdrrLpzMcPmNrXEA+88D0JQXMb/dG8opWWjm4ZDq3OjFxIS5/NLt9yh SCkIqrpmCmUmt3F31X5/ztr8AY2EyE+qg5xMC9eNTtQrDumAWXY7RB5fa6KAlv60Mb/f df8iPu+0TbXyfPJFjYDvS5rR2GLp5NK7vHCfbl9auF8Rz0flLt2IbKLRfCP27SWHXoXy gvFg== X-Gm-Message-State: AOAM532OJ10aX4bkxsuNj53lyP7vUR26nHG2iCdihuhQ8CglEDe45iTO RajVv8GtupOUEcQhi+/Rcg0= X-Google-Smtp-Source: ABdhPJwl1uE8uKxwiHP2ZFv2WGeDF5boPNkMSUNTGbuD27NQFqZCUsYKK4HCbR63roYV0g4voyyYcQ== X-Received: by 2002:ac8:5bd6:: with SMTP id b22mr7406946qtb.231.1639861835603; Sat, 18 Dec 2021 13:10:35 -0800 (PST) Received: from localhost.localdomain ([2804:14c:485:504a:7b0c:575d:a01c:4860]) by smtp.gmail.com with ESMTPSA id x25sm7562213qkf.91.2021.12.18.13.10.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Dec 2021 13:10:35 -0800 (PST) From: Fabio Estevam To: sbabic@denx.de Cc: pbrobinson@gmail.com, trini@konsulko.com, u-boot@lists.denx.de, Fabio Estevam Subject: [PATCH 1/6] udoo_spl: Initialize the eSDHC controller in SPL Date: Sat, 18 Dec 2021 18:10:20 -0300 Message-Id: <20211218211025.770362-1-festevam@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.38 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean Currently, imx6q udoo board fails to boot like this: U-Boot SPL 2022.01-rc3-00061-g95ca715adad3 (Dec 18 2021 - 18:04:40 -0300) Trying to boot from MMC1 The reason is that the eSDHC controller is not initialized in SPL. Initialize the eSDHC controller in SPL via C code as DM is not used in SPL. Signed-off-by: Fabio Estevam Reviewed-by: Peter Robinson --- board/udoo/udoo_spl.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/board/udoo/udoo_spl.c b/board/udoo/udoo_spl.c index d9afbbb74198..754bd9dfe21e 100644 --- a/board/udoo/udoo_spl.c +++ b/board/udoo/udoo_spl.c @@ -254,4 +254,39 @@ void board_init_f(ulong dummy) /* DDR initialization */ spl_dram_init(); } + +#define USDHC3_CD_GPIO IMX_GPIO_NR(7, 0) + +#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \ + PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \ + PAD_CTL_SRE_FAST | PAD_CTL_HYS) + +static struct fsl_esdhc_cfg usdhc_cfg[2] = { + {USDHC3_BASE_ADDR}, +}; + +static const iomux_v3_cfg_t usdhc3_pads[] = { + IOMUX_PADS(PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)), + IOMUX_PADS(PAD_SD3_DAT5__GPIO7_IO00 | MUX_PAD_CTRL(NO_PAD_CTRL)), +}; + +int board_mmc_getcd(struct mmc *mmc) +{ + return !gpio_get_value(USDHC3_CD_GPIO); +} + +int board_mmc_init(struct bd_info *bis) +{ + SETUP_IOMUX_PADS(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]); +} #endif