From patchwork Fri Jan 11 18:04:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1023711 X-Patchwork-Delegate: jagannadh.teki@gmail.com 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=none (p=none dis=none) header.from=amarulasolutions.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=amarulasolutions.com header.i=@amarulasolutions.com header.b="le6Bd2Hz"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43brQT2hybz9sDL for ; Sat, 12 Jan 2019 05:06:09 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E3957C221E4; Fri, 11 Jan 2019 18:04:56 +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=RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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 4859EC22226; Fri, 11 Jan 2019 18:04:53 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 72511C221E4; Fri, 11 Jan 2019 18:04:44 +0000 (UTC) Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by lists.denx.de (Postfix) with ESMTPS id 83019C221F7 for ; Fri, 11 Jan 2019 18:04:40 +0000 (UTC) Received: by mail-pl1-f194.google.com with SMTP id u6so7079110plm.8 for ; Fri, 11 Jan 2019 10:04:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3KOGznCeA7Z45cSyspnsCkaV47Q9GcK4w8b4nn/JrW8=; b=le6Bd2Hzsphm6Vae379+u68IvoX1CJ8ihTBFOtAPwqCU4QD8ggbURqHGT8x+edMhx6 bPhXZZh6cUFi+G/rvhD+e9Uj21+/EfdOsMmBfvMM66Ufy33/E8dHKrT+nSlTrEgZqrOF xMFPhSawgyoz04JTsnXP48BzU5HvcMg3w7T5Y= 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:mime-version:content-transfer-encoding; bh=3KOGznCeA7Z45cSyspnsCkaV47Q9GcK4w8b4nn/JrW8=; b=XJZvqHfYfDL7+yCVYIOw1FSX+TMcy7/HdIFQ0CSaZM/ZELqO2ZUktETBe7pKBJVchu rJf2linX5F6yfiuetmoFmxHEP/GIIOYpSsLohv46k+5nXSq49mYIbyU9oUcbmOUZwHmb iJJIIjQTNx1nJxhsxnvKnoAp7tI7R/r9vdu7xiBrVSVy4nLVP6NLk1Dnc9MCBS/ucOeo xCYPIvzaEQqO0AoNNDfkFUll564b+aFAy9OGdHZmo6IDDpmpoWLPU/bEL/5ndgoAz5k4 RKgt/DI4UrTDrsmILdW1qgiX29xcALwZ0MI2vz+IrwxlrfYPq8g4bexwo4KqtoIw9Tpu k5LQ== X-Gm-Message-State: AJcUukfLB8y4WjoIamNo7nu0XGjqdoVmYSozE3dF9R1W8XiHbxym02cf Wk05IF+kFPwr6QZCW0kl4XPNzA== X-Google-Smtp-Source: ALg8bN4v/VSZ4Ta5j/W2Owf6KqEttJfM4suRUoI/JpdNPRWVP9uFmFrQcdfju9A5glTsMOwdbK+4/A== X-Received: by 2002:a17:902:161:: with SMTP id 88mr15952153plb.306.1547229878937; Fri, 11 Jan 2019 10:04:38 -0800 (PST) Received: from localhost.localdomain ([49.206.202.55]) by smtp.gmail.com with ESMTPSA id 186sm156638146pga.36.2019.01.11.10.04.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Jan 2019 10:04:37 -0800 (PST) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Simon Glass , Tom Rini , u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Priit Laes , linux-amarula@amarulasolutions.com Date: Fri, 11 Jan 2019 23:34:08 +0530 Message-Id: <20190111180414.1563-2-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190111180414.1563-1-jagan@amarulasolutions.com> References: <20190111180414.1563-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH 1/7] mmc: sunxi: Configure reset support for 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: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Start with Allwinner A31, mmc controllers do support reset control bit. This code add support to enable the reset control start from SUN6I even though it share same compatible between SUN4I and SUN6I. Signed-off-by: Jagan Teki --- drivers/mmc/sunxi_mmc.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c index 302332bf97..0b17e2c391 100644 --- a/drivers/mmc/sunxi_mmc.c +++ b/drivers/mmc/sunxi_mmc.c @@ -21,8 +21,11 @@ #ifdef CONFIG_DM_MMC struct sunxi_mmc_variant { + bool has_reset; u16 gate_offset; u16 mclk_offset; + u16 reset_offset; + u8 reset_start_bit; }; #endif @@ -609,7 +612,7 @@ static int sunxi_mmc_probe(struct udevice *dev) struct sunxi_mmc_priv *priv = dev_get_priv(dev); struct mmc_config *cfg = &plat->cfg; struct ofnode_phandle_args args; - u32 *gate_reg, *ccu_reg; + u32 *gate_reg, *reset_reg, *ccu_reg; int bus_width, ret; cfg->name = dev->name; @@ -644,6 +647,12 @@ static int sunxi_mmc_probe(struct udevice *dev) gate_reg = (void *)ccu_reg + priv->variant->gate_offset; setbits_le32(gate_reg, BIT(AHB_GATE_OFFSET_MMC(priv->mmc_no))); + if ((!IS_ENABLED(CONFIG_MACH_SUN4I)) && priv->variant->has_reset) { + reset_reg = (void *)ccu_reg + priv->variant->reset_offset; + setbits_le32(reset_reg, BIT(priv->mmc_no + + priv->variant->reset_start_bit)); + } + ret = mmc_set_mod_clk(priv, 24000000); if (ret) return ret; @@ -680,6 +689,14 @@ static const struct sunxi_mmc_variant sun4i_a10_variant = { .mclk_offset = 0x88, }; +static const struct sunxi_mmc_variant sun7i_a20_variant = { + .has_reset = true, + .gate_offset = 0x60, + .mclk_offset = 0x88, + .reset_offset = 0x2c0, + .reset_start_bit = 8, +}; + static const struct udevice_id sunxi_mmc_ids[] = { { .compatible = "allwinner,sun4i-a10-mmc", @@ -691,7 +708,7 @@ static const struct udevice_id sunxi_mmc_ids[] = { }, { .compatible = "allwinner,sun7i-a20-mmc", - .data = (ulong)&sun4i_a10_variant, + .data = (ulong)&sun7i_a20_variant, }, { /* sentinel */ } };