From patchwork Tue Nov 6 04:24:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vasily Khoruzhick X-Patchwork-Id: 993502 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=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="Bxy1RfLX"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42pxLB2Rl5z9sCw for ; Tue, 6 Nov 2018 15:25:38 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id EF32AC2248F; Tue, 6 Nov 2018 04:25:20 +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, KHOP_BIG_TO_CC, RCVD_IN_DNSWL_BLOCKED, 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 0DFFCC22390; Tue, 6 Nov 2018 04:25:01 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 31063C22160; Tue, 6 Nov 2018 04:24:59 +0000 (UTC) Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by lists.denx.de (Postfix) with ESMTPS id 8A8DBC2214F for ; Tue, 6 Nov 2018 04:24:58 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id w7so5211340pgp.13 for ; Mon, 05 Nov 2018 20:24:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=4rVgrPyZNGUmQj0PxJVuSAWMx4qVN70GC4XbQdaI4EA=; b=Bxy1RfLXaCsqv+mCnBp/Qva25UkYSWg4uRTmYa06XWDM1Yh731YYAwzTCjC15lwqGR 0v/L/LtqtnTs9W2yU3IBRUvv69dlDz2UbC3roji2UHJEWsKOf//52DYnJ5xvqB5vrMQ6 wVRFcGPgWIXdDGaSmN3IdiC5wQkeLf6FAC8lnHgwxt0ikEz/TZbxSWj0PhU3S2IzqosV TMccsRDk0yvdU+WjPqEiRFO9itdp2Fin2UbFc8C3wJvhcLs02jxvOlCSy4F/CZGoy1Vu bMQN8PCAcXu8dI2kWE2dXu12fGY2o3qAd5HA8+FSGeEhjLHKLuUHucLNfwgfANzJAUbx IHgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4rVgrPyZNGUmQj0PxJVuSAWMx4qVN70GC4XbQdaI4EA=; b=qQi7XNxQeH+HWWlPO0uWCbUxdsMZ1QDoyHfF7oJE98PTYp+aWQdKvz6VdJ7LLsAIKQ xipg2x55f/BMgaB8YwIy/UGnwrGQ9jVC361jisrR7xKIUAQjST5DqPhD1YiTt9flgahF QbNyplbZ8vDD5mpYcleaOr5FcxKvk20MO2Sgo6WIehQge+fNpH/qq6Pb9mdbNQgdBeai m2JjseA12cJuxEh9s8xCmanxoLxwrvRMeU/xSxARySNZxLSU/s/T0kqXr2OsJ6tZ7jFO 0jshBa27guz99TRW0CM0WrcGYSIHfxuoGaWpuRMPrLUuIcaDv6onxU9ZuH1NyBTS9d87 f1fA== X-Gm-Message-State: AGRZ1gLJGLnC1AHZlQBW4HFe4sAbSr1252SwElYGxYdd8eHmNEr7iM3d Pdrifnl01V/xIolXHyB96+VzMV1zJsk= X-Google-Smtp-Source: AJdET5fqMFcetBR/mvtwzeIrVYktIISj7yd7qWTO88hVDWHNuCPn/wObPFi9QkizFp5fU0OToYzL9w== X-Received: by 2002:a65:66ce:: with SMTP id c14mr15501002pgw.450.1541478297080; Mon, 05 Nov 2018 20:24:57 -0800 (PST) Received: from anarsoul-thinkpad.lan (216-71-193-140.dyn.novuscom.net. [216.71.193.140]) by smtp.gmail.com with ESMTPSA id b185sm11143964pga.85.2018.11.05.20.24.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Nov 2018 20:24:56 -0800 (PST) From: Vasily Khoruzhick To: Albert Aribaud , Jagan Teki , Maxime Ripard , Hans de Goede , Jaehoon Chung , Anatolij Gustschin , Chen-Yu Tsai , Andre Przywara , =?utf-8?q?Jernej_=C5=A0krabec?= , Vagrant Cascadian , anarsoul@gmail.com, u-boot@lists.denx.de Date: Mon, 5 Nov 2018 20:24:28 -0800 Message-Id: <20181106042431.21595-2-anarsoul@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181106042431.21595-1-anarsoul@gmail.com> References: <20181106042431.21595-1-anarsoul@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v5 1/4] mmc: sunxi: add support for automatic delay calibration 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" A64 and H6 support automatic delay calibration and Linux driver uses it instead of hardcoded delays. Add support for it to u-boot driver. Fixes eMMC instability on Pinebook Signed-off-by: Vasily Khoruzhick Acked-by: Maxime Ripard Tested-by: Maxime Ripard Reviewed-by: Andre Przywara Cc: Vagrant Cascadian --- arch/arm/include/asm/arch-sunxi/mmc.h | 6 +++++- drivers/mmc/sunxi_mmc.c | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/arch/arm/include/asm/arch-sunxi/mmc.h b/arch/arm/include/asm/arch-sunxi/mmc.h index d98c53faaa..f2deafddd2 100644 --- a/arch/arm/include/asm/arch-sunxi/mmc.h +++ b/arch/arm/include/asm/arch-sunxi/mmc.h @@ -46,7 +46,9 @@ struct sunxi_mmc { u32 cbda; /* 0x94 */ u32 res2[26]; #if defined(CONFIG_SUNXI_GEN_SUN6I) || defined(CONFIG_MACH_SUN50I_H6) - u32 res3[64]; + u32 res3[17]; + u32 samp_dl; + u32 res4[46]; #endif u32 fifo; /* 0x100 / 0x200 FIFO access address */ }; @@ -130,5 +132,7 @@ struct sunxi_mmc { #define SUNXI_MMC_COMMON_CLK_GATE (1 << 16) #define SUNXI_MMC_COMMON_RESET (1 << 18) +#define SUNXI_MMC_CAL_DL_SW_EN (0x1 << 7) + struct mmc *sunxi_mmc_init(int sdc_no); #endif /* _SUNXI_MMC_H */ diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c index 39f15eb423..147eb9b4d5 100644 --- a/drivers/mmc/sunxi_mmc.c +++ b/drivers/mmc/sunxi_mmc.c @@ -99,11 +99,16 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) { unsigned int pll, pll_hz, div, n, oclk_dly, sclk_dly; bool new_mode = false; + bool calibrate = false; u32 val = 0; if (IS_ENABLED(CONFIG_MMC_SUNXI_HAS_NEW_MODE) && (priv->mmc_no == 2)) new_mode = true; +#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6) + calibrate = true; +#endif + /* * The MMC clock has an extra /2 post-divider when operating in the new * mode. @@ -174,7 +179,11 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) val = CCM_MMC_CTRL_MODE_SEL_NEW; setbits_le32(&priv->reg->ntsr, SUNXI_MMC_NTSR_MODE_SEL_NEW); #endif - } else { + } else if (!calibrate) { + /* + * Use hardcoded delay values if controller doesn't support + * calibration + */ val = CCM_MMC_CTRL_OCLK_DLY(oclk_dly) | CCM_MMC_CTRL_SCLK_DLY(sclk_dly); } @@ -228,6 +237,16 @@ static int mmc_config_clock(struct sunxi_mmc_priv *priv, struct mmc *mmc) rval &= ~SUNXI_MMC_CLK_DIVIDER_MASK; writel(rval, &priv->reg->clkcr); +#if defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H6) + /* A64 supports calibration of delays on MMC controller and we + * have to set delay of zero before starting calibration. + * Allwinner BSP driver sets a delay only in the case of + * using HS400 which is not supported by mainline U-Boot or + * Linux at the moment + */ + writel(SUNXI_MMC_CAL_DL_SW_EN, &priv->reg->samp_dl); +#endif + /* Re-enable Clock */ rval |= SUNXI_MMC_CLK_ENABLE; writel(rval, &priv->reg->clkcr); From patchwork Tue Nov 6 04:24:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vasily Khoruzhick X-Patchwork-Id: 993504 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=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="IMbuqpQh"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42pxMx6Pjlz9sCw for ; Tue, 6 Nov 2018 15:27:09 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 97A65C22600; Tue, 6 Nov 2018 04:25:36 +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, KHOP_BIG_TO_CC, RCVD_IN_DNSWL_BLOCKED, 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 CB8ECC22674; Tue, 6 Nov 2018 04:25:06 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 37316C22327; Tue, 6 Nov 2018 04:25:03 +0000 (UTC) Received: from mail-pg1-f194.google.com (mail-pg1-f194.google.com [209.85.215.194]) by lists.denx.de (Postfix) with ESMTPS id 7021EC22311 for ; Tue, 6 Nov 2018 04:24:59 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id c10-v6so5231701pgq.4 for ; Mon, 05 Nov 2018 20:24:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=sQ9hMXdtWPy+jQNDExFMODHsqLOOxgoREbLP4VZ5giE=; b=IMbuqpQhBFjKwGlVw/aR9FNdrdoC6rEM8s271w8Q0AbdZrxeLjo2HcjgFRI8/cLlKR d+qVo/TEDf+5eWZkQreeYKwj9dMsZZhBjkUl88baIprxUe/iBvdoJ7Rh8C2k7eh8taOK SxBf4orUjQoBcAlpH7kPp71JQaSZ60Z3+JDFc7R9kG7lvAA9xHFtXKpBdhzF+AMN2Qs7 t+GYSbAl5wEgHJt03uW1kLOkMZ2qOFD3h2KjVPw2ktOCzwvZ8Z8aspctkVpGhMHg68MY uQPcS1SRyl/3FslZZDLp2fEul4IxYCBkYffUmdJQtZuVcl3C2BvFLgOUfS2nJbL2SW7w uuhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sQ9hMXdtWPy+jQNDExFMODHsqLOOxgoREbLP4VZ5giE=; b=kfC5XwTMfUjvsbVjd8W1hOGPJY0v1PbqUW9EJJpUv/HEvNbz9VvImaDxHoBY92uAfk +Kc0I+xzkv1PNHYNmF+U0JLL6MbT07Rv0ZEjAreY8hBQe3DqIJJ1rLAdgz0tqjfvhlrD vF4wGG41Inoq+WU6ZB+q9iry9F7sm8lp+r7dkS++2DKnQaFPSaOeBRGCd1nb92vEJ2Qc BGg7j6v2Cyb7wD1TgeLSwGoY+23/OCriP1y9T2DTUgx3BjxpCd9MsXcfMbXI8OTVkl7v QVN4l7B0NnkKMyCwcWVziEcUec/bVWkryuDpQ7oXM/K+DTjdNBw3uidl5v4wOeiT2t6i /XJA== X-Gm-Message-State: AGRZ1gJmAU1RRO/ey989y8z8SDilfjDx2FC70/AyWCTleCBzYaSc/Vfr 4N+JIbO5tn6evgaMX39fBq0= X-Google-Smtp-Source: AJdET5cACGYUORcyErG7MnVybXR0q2nO1JoCzJ9lmgCPvccSRLowcl0U845p6jKXAWfRQ/l1JjKLlA== X-Received: by 2002:a63:588:: with SMTP id 130mr22195211pgf.273.1541478298040; Mon, 05 Nov 2018 20:24:58 -0800 (PST) Received: from anarsoul-thinkpad.lan (216-71-193-140.dyn.novuscom.net. [216.71.193.140]) by smtp.gmail.com with ESMTPSA id b185sm11143964pga.85.2018.11.05.20.24.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Nov 2018 20:24:57 -0800 (PST) From: Vasily Khoruzhick To: Albert Aribaud , Jagan Teki , Maxime Ripard , Hans de Goede , Jaehoon Chung , Anatolij Gustschin , Chen-Yu Tsai , Andre Przywara , =?utf-8?q?Jernej_=C5=A0krabec?= , Vagrant Cascadian , anarsoul@gmail.com, u-boot@lists.denx.de Date: Mon, 5 Nov 2018 20:24:29 -0800 Message-Id: <20181106042431.21595-3-anarsoul@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181106042431.21595-1-anarsoul@gmail.com> References: <20181106042431.21595-1-anarsoul@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v5 2/4] dm: video: bridge: don't fail to activate bridge if reset or sleep GPIO is missing 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" Both GPIOs are optional, so we shouldn't fail if any is missing. Without this fix reset is not deasserted if sleep GPIO is missing. Signed-off-by: Vasily Khoruzhick Acked-by: Maxime Ripard Tested-by: Maxime Ripard Reviewed-by: Andre Przywara Cc: Vagrant Cascadian --- drivers/video/bridge/video-bridge-uclass.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/video/bridge/video-bridge-uclass.c b/drivers/video/bridge/video-bridge-uclass.c index cd4959cc71..5fecb4cfd5 100644 --- a/drivers/video/bridge/video-bridge-uclass.c +++ b/drivers/video/bridge/video-bridge-uclass.c @@ -106,13 +106,19 @@ static int video_bridge_pre_probe(struct udevice *dev) int video_bridge_set_active(struct udevice *dev, bool active) { struct video_bridge_priv *uc_priv = dev_get_uclass_priv(dev); - int ret; + int ret = 0; debug("%s: %d\n", __func__, active); - ret = dm_gpio_set_value(&uc_priv->sleep, !active); - if (ret) - return ret; - if (active) { + if (uc_priv->sleep.dev) { + ret = dm_gpio_set_value(&uc_priv->sleep, !active); + if (ret) + return ret; + } + + if (!active) + return 0; + + if (uc_priv->reset.dev) { ret = dm_gpio_set_value(&uc_priv->reset, true); if (ret) return ret; From patchwork Tue Nov 6 04:24:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vasily Khoruzhick X-Patchwork-Id: 993503 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=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="MKgE248w"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42pxMV5fr0z9sCw for ; Tue, 6 Nov 2018 15:26:46 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 78040C22676; Tue, 6 Nov 2018 04:25:53 +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, KHOP_BIG_TO_CC, RCVD_IN_DNSWL_BLOCKED, 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 B51B3C22366; Tue, 6 Nov 2018 04:25:13 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id DA3F4C22319; Tue, 6 Nov 2018 04:25:04 +0000 (UTC) Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.193]) by lists.denx.de (Postfix) with ESMTPS id 90049C2232B for ; Tue, 6 Nov 2018 04:25:00 +0000 (UTC) Received: by mail-pl1-f193.google.com with SMTP id f12-v6so4353333plo.1 for ; Mon, 05 Nov 2018 20:25:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=04ohBoiqG1HJEDDsdw1v1dX6JPqO0dn+fijFyrXGbJo=; b=MKgE248wQvw5n9q+7MFmXv0yOlQOazEdSsfF4os6Xpo8TZrqgaP+i8tuXbRePTvEjb 3Noe7NnrWf7eAfwo7T4dk+CAJOD3aGlSiJfgHlT42ZMKFMPBEPhfGKARuNRMMoiM5doV N+WOxS80kE0CHiWXacR8/JKpWybzT8TA41iHY1XOLxsllzLyqIGN5tnW0lAhtOCoeLY+ 5Fc30wzwhHipd8JKJIGL+q81X9OI1KEkI3rX2wA2WB60HruOvPsAujmY6bJhgaoGr77k V/JFwJfHNUPFb3AKtGg0fyEnXbweFp/UisQIA+obbWdW57Q7FMC7A8mz7PXHE0dCMYnk bPvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=04ohBoiqG1HJEDDsdw1v1dX6JPqO0dn+fijFyrXGbJo=; b=iNmZLhXFegjEkmmDjD7Y4tIRbQaXCbU9RfKIzwOPH/d9GUJcBm+DpcGQIqIcwTUqL3 MCl2hKxZ0zeLUHaGVdTlz8UVzRR8iVwCKVgXuKzUBmzoAGb3YAYEQkmS/S+o82n8UOt7 IHk6zk+tHLdpX6F9SYtHqoWSJOkhqlwbSKwA2BtY77TnqqTeckq0lYgld1LNKyUlpncE DRHl4pqPyAL6B+J7hnmGP+iDJzlcH/Wc/sLUIan0j1wVYCE9aNAN75kUHxgcG/3qg0IV r1BXXurJkVUdk52duGIljteQxr8RN0bqxw74VmqTc9UedNhsQK2g4fwEjXWo0vhBYDJZ pwqQ== X-Gm-Message-State: AGRZ1gItPl0sasPqhTNEvfxuV6g5EOR2wKU5THoYkW6V3peS9gD824+3 mXhilcO1HvgdEmgnb/i5yeQ= X-Google-Smtp-Source: AJdET5doJ/WrJQTEpws5Eq0d5wKKFMKMgrC4v36BqGFZSpeWU2nTOIkKzRh3mnUty3+Ijy9OG3Z7nw== X-Received: by 2002:a17:902:b183:: with SMTP id s3-v6mr23522215plr.70.1541478298971; Mon, 05 Nov 2018 20:24:58 -0800 (PST) Received: from anarsoul-thinkpad.lan (216-71-193-140.dyn.novuscom.net. [216.71.193.140]) by smtp.gmail.com with ESMTPSA id b185sm11143964pga.85.2018.11.05.20.24.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Nov 2018 20:24:58 -0800 (PST) From: Vasily Khoruzhick To: Albert Aribaud , Jagan Teki , Maxime Ripard , Hans de Goede , Jaehoon Chung , Anatolij Gustschin , Chen-Yu Tsai , Andre Przywara , =?utf-8?q?Jernej_=C5=A0krabec?= , Vagrant Cascadian , anarsoul@gmail.com, u-boot@lists.denx.de Date: Mon, 5 Nov 2018 20:24:30 -0800 Message-Id: <20181106042431.21595-4-anarsoul@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181106042431.21595-1-anarsoul@gmail.com> References: <20181106042431.21595-1-anarsoul@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v5 3/4] sun50i: A64: add support for R_I2C controller 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" Allwinner A64 has a I2C controller, which is in the R_ MMIO zone and has two groups of pinmuxes on PL bank, so it's called R_I2C. Add support for this I2C controller and the pinmux which doesn't conflict with RSB. Signed-off-by: Vasily Khoruzhick Acked-by: Maxime Ripard Tested-by: Maxime Ripard Cc: Vagrant Cascadian --- arch/arm/include/asm/arch-sunxi/gpio.h | 1 + arch/arm/mach-sunxi/Kconfig | 1 + board/sunxi/board.c | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/arch/arm/include/asm/arch-sunxi/gpio.h b/arch/arm/include/asm/arch-sunxi/gpio.h index 6a5eafc3d3..2daf23f6f5 100644 --- a/arch/arm/include/asm/arch-sunxi/gpio.h +++ b/arch/arm/include/asm/arch-sunxi/gpio.h @@ -211,6 +211,7 @@ enum sunxi_gpio_number { #define SUN8I_H3_GPL_R_TWI 2 #define SUN8I_A23_GPL_R_TWI 3 #define SUN8I_GPL_R_UART 2 +#define SUN50I_GPL_R_TWI 2 #define SUN9I_GPN_R_RSB 3 diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index 6277abc3cc..560dc9b25d 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -278,6 +278,7 @@ config MACH_SUN50I select ARM64 select DM_I2C select PHY_SUN4I_USB + select SUN6I_PRCM select SUNXI_DE2 select SUNXI_GEN_SUN6I select SUPPORT_SPL diff --git a/board/sunxi/board.c b/board/sunxi/board.c index b196d48674..64ccbc7245 100644 --- a/board/sunxi/board.c +++ b/board/sunxi/board.c @@ -168,10 +168,16 @@ void i2c_init_board(void) #endif #ifdef CONFIG_R_I2C_ENABLE +#ifdef CONFIG_MACH_SUN50I + clock_twi_onoff(5, 1); + sunxi_gpio_set_cfgpin(SUNXI_GPL(8), SUN50I_GPL_R_TWI); + sunxi_gpio_set_cfgpin(SUNXI_GPL(9), SUN50I_GPL_R_TWI); +#else clock_twi_onoff(5, 1); sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_H3_GPL_R_TWI); sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_H3_GPL_R_TWI); #endif +#endif } #if defined(CONFIG_ENV_IS_IN_MMC) && defined(CONFIG_ENV_IS_IN_FAT) From patchwork Tue Nov 6 04:24:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vasily Khoruzhick X-Patchwork-Id: 993505 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=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="hK3EPqW4"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42pxNN3Hgxz9sCw for ; Tue, 6 Nov 2018 15:27:32 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E9B30C22417; Tue, 6 Nov 2018 04:26:10 +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, KHOP_BIG_TO_CC, RCVD_IN_DNSWL_BLOCKED, 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 66A5FC22320; Tue, 6 Nov 2018 04:25:14 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E5F4DC22322; Tue, 6 Nov 2018 04:25:05 +0000 (UTC) Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) by lists.denx.de (Postfix) with ESMTPS id 59DABC2242C for ; Tue, 6 Nov 2018 04:25:01 +0000 (UTC) Received: by mail-pl1-f195.google.com with SMTP id q19-v6so2539101pll.7 for ; Mon, 05 Nov 2018 20:25:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=sw5I8tqtZsGsEvi+eY3yX9n51zdaIkukpUlCtWiCgMo=; b=hK3EPqW4J9sCkXu1+Qi5YEizyVBj9ZwjzlE/Stkicj++qkTvt5rsghpr5SofXfwUtT X4TPSDwRIHHz/0BzyzuAmGIoaS66WIPBl8GcOsbx2oAZ4XNZYUdW6laizg+W65LF/lYI BE3QFHroLl7exs74UG837mbg9FKvknEl4iGxbTafZPT4OF56ONXgJOBKatnNbVyZEmvX Ae+hRihbINUTZvlQkQR3YbizWfRpBFY/UviVYyku4u08wJeAKukdAJaGDyQpx8MlEfOt wQb7ITbuYOX609HSJU62GnVAUll7yES3XHZBKI4T6tUjtQITzkQ3DM9BSq3bnTdvFApn bAWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sw5I8tqtZsGsEvi+eY3yX9n51zdaIkukpUlCtWiCgMo=; b=eJC5V36rGAJTLK6Mp4GOt9yEkPh/eIX6L81z2atgLezKkPevWiax+qZNeqkpqspq1z 75W9Qjm8TPlnyljpxpWr+70mFjRVWbdBb3gxyxuHAhGhosEAu/IDT8Ass5IvAIBCaVax V8iz9WikNUvu3YQW8DNbWXI2sZvQAZptYOjRGNkW3mFHit671/PA2IrgnbHR2Q/i8CWd Olc9smdNhttug5BaKDTz1oNmHcacSf2I/seZcc+J8XYAlXgygSGNCuIjMa/kxiTPNGXC 3+1GaGmUP/4WNLoVp5GKMH4CjLmJRJLyQaBWUP6Xnr2KkT45BLFDbS2THSaPKG+svvan UlqQ== X-Gm-Message-State: AGRZ1gIol/viltHbVj81DM38bxQaVnDdcG6Me0qS6PPBR2zMAoXvqO5x B5EpexX3ERrzmILi1lfO0lw= X-Google-Smtp-Source: AJdET5dhoeF5GkTzpBKjb+58yLT6MZIp2NSocJEhAhLOHmxn5LewdUZf9fZuwAHLGItZthWGYckVxQ== X-Received: by 2002:a17:902:9a47:: with SMTP id x7-v6mr24864734plv.316.1541478299835; Mon, 05 Nov 2018 20:24:59 -0800 (PST) Received: from anarsoul-thinkpad.lan (216-71-193-140.dyn.novuscom.net. [216.71.193.140]) by smtp.gmail.com with ESMTPSA id b185sm11143964pga.85.2018.11.05.20.24.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Nov 2018 20:24:59 -0800 (PST) From: Vasily Khoruzhick To: Albert Aribaud , Jagan Teki , Maxime Ripard , Hans de Goede , Jaehoon Chung , Anatolij Gustschin , Chen-Yu Tsai , Andre Przywara , =?utf-8?q?Jernej_=C5=A0krabec?= , Vagrant Cascadian , anarsoul@gmail.com, u-boot@lists.denx.de Date: Mon, 5 Nov 2018 20:24:31 -0800 Message-Id: <20181106042431.21595-5-anarsoul@gmail.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181106042431.21595-1-anarsoul@gmail.com> References: <20181106042431.21595-1-anarsoul@gmail.com> MIME-Version: 1.0 Subject: [U-Boot] [PATCH v5 4/4] sunxi: DT: add support for Pinebook 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" Pinebook is a laptop produced by Pine64, with USB-connected keyboard, USB-connected touchpad and an eDP LCD panel connected via a RGB-eDP bridge from Analogix. Signed-off-by: Vasily Khoruzhick Acked-by: Maxime Ripard Tested-by: Maxime Ripard Cc: Vagrant Cascadian --- arch/arm/dts/Makefile | 1 + arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi | 15 + arch/arm/dts/sun50i-a64-pinebook.dts | 294 +++++++++++++++++++ configs/pinebook_defconfig | 22 ++ 4 files changed, 332 insertions(+) create mode 100644 arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi create mode 100644 arch/arm/dts/sun50i-a64-pinebook.dts create mode 100644 configs/pinebook_defconfig diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index d36447d18d..7778f15091 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -405,6 +405,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \ sun50i-a64-orangepi-win.dtb \ sun50i-a64-pine64-plus.dtb \ sun50i-a64-pine64.dtb \ + sun50i-a64-pinebook.dtb \ sun50i-a64-sopine-baseboard.dtb dtb-$(CONFIG_MACH_SUN9I) += \ sun9i-a80-optimus.dtb \ diff --git a/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi new file mode 100644 index 0000000000..a99b7171d0 --- /dev/null +++ b/arch/arm/dts/sun50i-a64-pinebook-u-boot.dtsi @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Vasily Khoruzhick + * + */ + +/* The ANX6345 eDP-bridge is on r_i2c */ +&r_i2c { + anx6345: edp-bridge@38 { + compatible = "analogix,anx6345"; + reg = <0x38>; + reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */ + status = "okay"; + }; +}; diff --git a/arch/arm/dts/sun50i-a64-pinebook.dts b/arch/arm/dts/sun50i-a64-pinebook.dts new file mode 100644 index 0000000000..ec537c5297 --- /dev/null +++ b/arch/arm/dts/sun50i-a64-pinebook.dts @@ -0,0 +1,294 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2017 Icenowy Zheng + * Copyright (C) 2018 Vasily Khoruzhick + * + */ + +/dts-v1/; + +#include "sun50i-a64.dtsi" + +#include +#include +#include + +/ { + model = "Pinebook"; + compatible = "pine64,pinebook", "allwinner,sun50i-a64"; + + aliases { + serial0 = &uart0; + ethernet0 = &rtl8723cs; + }; + + vdd_bl: regulator@0 { + compatible = "regulator-fixed"; + regulator-name = "bl-3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */ + enable-active-high; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm 0 50000 0>; + brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>; + default-brightness-level = <2>; + enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */ + power-supply = <&vdd_bl>; + }; + + chosen { + stdout-path = "serial0:115200n8"; + + framebuffer-lcd { + panel-supply = <®_dc1sw>; + dvdd25-supply = <®_dldo2>; + dvdd12-supply = <®_fldo1>; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + + lid_switch { + label = "Lid Switch"; + gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */ + linux,input-type = ; + linux,code = ; + linux,can-disable; + wakeup-source; + }; + }; + + reg_vcc3v3: vcc3v3 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + }; + + wifi_pwrseq: wifi_pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ + }; +}; + +&ehci0 { + phys = <&usbphy 0>; + phy-names = "usb"; + status = "okay"; +}; + +&ehci1 { + status = "okay"; +}; + +&mmc0 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc0_pins>; + vmmc-supply = <®_dcdc1>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; + disable-wp; + bus-width = <4>; + status = "okay"; +}; + +&mmc1 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc1_pins>; + vmmc-supply = <®_dldo4>; + vqmmc-supply = <®_eldo1>; + mmc-pwrseq = <&wifi_pwrseq>; + bus-width = <4>; + non-removable; + status = "okay"; + + rtl8723cs: wifi@1 { + reg = <1>; + }; +}; + +&mmc2 { + pinctrl-names = "default"; + pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>; + vmmc-supply = <®_dcdc1>; + vqmmc-supply = <®_eldo1>; + bus-width = <8>; + non-removable; + cap-mmc-hw-reset; + mmc-hs200-1_8v; + status = "okay"; +}; + +&ohci0 { + phys = <&usbphy 0>; + phy-names = "usb"; + status = "okay"; +}; + +&ohci1 { + status = "okay"; +}; + +&pwm { + status = "okay"; +}; + +&r_rsb { + status = "okay"; + + axp803: pmic@3a3 { + compatible = "x-powers,axp803"; + reg = <0x3a3>; + interrupt-parent = <&r_intc>; + interrupts = <0 IRQ_TYPE_LEVEL_LOW>; + }; +}; + +/* The ANX6345 eDP-bridge is on r_i2c */ +&r_i2c { + clock-frequency = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&r_i2c_pl89_pins>; + status = "okay"; +}; + +#include "axp803.dtsi" + +®_aldo1 { + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-name = "vcc-csi"; +}; + +®_aldo2 { + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-pl"; +}; + +®_aldo3 { + regulator-always-on; + regulator-min-microvolt = <2700000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-pll-avcc"; +}; + +®_dc1sw { + regulator-name = "vcc-lcd"; +}; + +®_dcdc1 { + regulator-always-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-3v3"; +}; + +®_dcdc2 { + regulator-always-on; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1300000>; + regulator-name = "vdd-cpux"; +}; + +/* DCDC3 is polyphased with DCDC2 */ + +®_dcdc5 { + regulator-always-on; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-name = "vcc-dram"; +}; + +®_dcdc6 { + regulator-always-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-name = "vdd-sys"; +}; + +®_dldo1 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-hdmi"; +}; + +®_dldo2 { + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <2500000>; + regulator-name = "vcc-edp"; +}; + +®_dldo3 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "avdd-csi"; +}; + +®_dldo4 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-wifi"; +}; + +®_eldo1 { + regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "cpvdd"; +}; + +®_eldo3 { + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-name = "vdd-1v8-csi"; +}; + +®_fldo1 { + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-name = "vcc-1v2-hsic"; +}; + +®_fldo2 { + regulator-always-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-name = "vdd-cpus"; +}; + +®_ldo_io0 { + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc-usb"; + status = "okay"; +}; + +®_rtc_ldo { + regulator-name = "vcc-rtc"; +}; + +&simplefb_hdmi { + vcc-hdmi-supply = <®_dldo1>; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_pb_pins>; + status = "okay"; +}; + +&usb_otg { + dr_mode = "host"; +}; + +&usbphy { + usb0_vbus-supply = <®_ldo_io0>; + usb1_vbus-supply = <®_ldo_io0>; + status = "okay"; +}; diff --git a/configs/pinebook_defconfig b/configs/pinebook_defconfig new file mode 100644 index 0000000000..5294dbd2eb --- /dev/null +++ b/configs/pinebook_defconfig @@ -0,0 +1,22 @@ +CONFIG_ARM=y +CONFIG_ARCH_SUNXI=y +CONFIG_SPL=y +CONFIG_MACH_SUN50I=y +CONFIG_SUNXI_DRAM_LPDDR3_STOCK=y +CONFIG_DRAM_CLK=552 +CONFIG_DRAM_ZQ=3881949 +CONFIG_MMC_SUNXI_SLOT_EXTRA=2 +CONFIG_R_I2C_ENABLE=y +# CONFIG_CMD_FLASH is not set +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_SPL_EFI_PARTITION is not set +CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pinebook" +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_PWM=y +CONFIG_PWM_SUNXI=y +CONFIG_USB_EHCI_HCD=y +CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y +# CONFIG_USB_GADGET is not set +CONFIG_VIDEO_BRIDGE=y +CONFIG_VIDEO_BRIDGE_ANALOGIX_ANX6345=y