From patchwork Sun Aug 19 13:56:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959325 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="SkXcLamW"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tdnd5w8Nz9s3C for ; Sun, 19 Aug 2018 23:58:29 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 6AF31C21E47; Sun, 19 Aug 2018 13:58:07 +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 2561EC21E2B; Sun, 19 Aug 2018 13:57:48 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A4DA4C21DB6; Sun, 19 Aug 2018 13:57:43 +0000 (UTC) Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) by lists.denx.de (Postfix) with ESMTPS id 3709FC21E16 for ; Sun, 19 Aug 2018 13:57:38 +0000 (UTC) Received: by mail-pf1-f195.google.com with SMTP id k21-v6so5484290pff.11 for ; Sun, 19 Aug 2018 06:57:38 -0700 (PDT) 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=SGyNxDetIZvbUTo+YJrjobOhGBOIt7xakYNQh+kl1uw=; b=SkXcLamWuvgbmDwHAlZSeirSvzUwjNhfpc1RBem1YDM1U9Taebn7Y2fPFZH8pyxefT 8eYOr4+JZPhnoIiE891Oe0ONk1HriI7bmHO9DtSa2qp9ZkbGcsFcJwSXONL6y3yMLHS3 3dVxukL84n8DaIUxIkPcNIVmRf6sP82YgxwYY= 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=SGyNxDetIZvbUTo+YJrjobOhGBOIt7xakYNQh+kl1uw=; b=GxDx5ug5sL8RDOkzD85dwYIKG/UrfWtWVa+9TLi9wRKZEjvzkXiK9frkgN68gw7vTT 9IokRqVd+Hk6ZvVonBgMvrS2luTm+bX6Kbg4odOOuiDC897pnm05nqIeLz/9fSCM7p9Y AsLGYp8lCKkxsfAoJ/cnxCIzbaaEm54eiAvDTad+1JrCdrt8l8WgiKSwcFeVjijtad8g LlDygB1EYI+JVSs5xrV7u4gQcWEKBgOiAATaiCe1IZeuWJnsXQJPeJolgUzDLzp8K12q J+YlOGI87UkMvTZD/tdGxToFHS3hDBXJtGYcJLCB7nMPynt0dG5mjU077iQ6jVuLu7HD KFdQ== X-Gm-Message-State: AOUpUlFWbwQeUjgQhVPkaXLy+qAlUQw6y425980NFLh9T2g+1g9lTYMW Is9BO2EXkO4b+Yolcd4JISmu+w== X-Google-Smtp-Source: AA+uWPwEm5Y2j7/+aeyZf5kdnthOzSLZqtNwhiKv/bIM5kNwxVmfmb1DNTXme9U/sQRcfT06GvKc4Q== X-Received: by 2002:a63:60c1:: with SMTP id u184-v6mr1497598pgb.266.1534687056352; Sun, 19 Aug 2018 06:57:36 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.57.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:57:35 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:18 +0530 Message-Id: <20180819135715.15799-2-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 01/58] clk: Add Allwinner A64 CLK driver 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" Add initial clock driver for Allwinner A64. Implement USB clock enable and disable functions for OHCI, EHCI, OTG and USBPHY gate and clock registers. Signed-off-by: Jagan Teki --- arch/arm/include/asm/arch-sunxi/ccu.h | 47 ++++++++++++++++++++ drivers/clk/Kconfig | 1 + drivers/clk/Makefile | 1 + drivers/clk/sunxi/Kconfig | 18 ++++++++ drivers/clk/sunxi/Makefile | 9 ++++ drivers/clk/sunxi/clk_a64.c | 62 +++++++++++++++++++++++++++ drivers/clk/sunxi/clk_sunxi.c | 58 +++++++++++++++++++++++++ 7 files changed, 196 insertions(+) create mode 100644 arch/arm/include/asm/arch-sunxi/ccu.h create mode 100644 drivers/clk/sunxi/Kconfig create mode 100644 drivers/clk/sunxi/Makefile create mode 100644 drivers/clk/sunxi/clk_a64.c create mode 100644 drivers/clk/sunxi/clk_sunxi.c diff --git a/arch/arm/include/asm/arch-sunxi/ccu.h b/arch/arm/include/asm/arch-sunxi/ccu.h new file mode 100644 index 0000000000..f628c893de --- /dev/null +++ b/arch/arm/include/asm/arch-sunxi/ccu.h @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#ifndef _ASM_ARCH_CCU_H +#define _ASM_ARCH_CCU_H + +/** + * ccu_clk_map - common clock unit clock map + * + * @off: ccu clock offset + * @bit: ccu clock bit value + * @ccu_clk_set_rate: ccu clock set rate func + */ +struct ccu_clk_map { + u16 off; + u32 bit; + int (*ccu_clk_set_rate)(void *base, u32 bit, ulong rate); +}; + +/** + * struct ccu_desc - common clock unit descriptor + * + * @clks: mapping clocks descriptor + * @num_clks: number of mapped clocks + */ +struct ccu_desc { + struct ccu_clk_map *clks; + unsigned long num_clks; +}; + +/** + * struct sunxi_clk_priv - sunxi clock private structure + * + * @base: base address + * @desc: ccu descriptor + */ +struct sunxi_clk_priv { + void *base; + const struct ccu_desc *desc; +}; + +extern struct clk_ops sunxi_clk_ops; + +#endif /* _ASM_ARCH_CCU_H */ diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig index a99abed9e9..b4992e9ff1 100644 --- a/drivers/clk/Kconfig +++ b/drivers/clk/Kconfig @@ -88,6 +88,7 @@ source "drivers/clk/exynos/Kconfig" source "drivers/clk/mvebu/Kconfig" source "drivers/clk/owl/Kconfig" source "drivers/clk/renesas/Kconfig" +source "drivers/clk/sunxi/Kconfig" source "drivers/clk/tegra/Kconfig" source "drivers/clk/uniphier/Kconfig" diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile index 146283c723..7cefcd99a0 100644 --- a/drivers/clk/Makefile +++ b/drivers/clk/Makefile @@ -11,6 +11,7 @@ obj-y += tegra/ obj-$(CONFIG_ARCH_ASPEED) += aspeed/ obj-$(CONFIG_ARCH_MESON) += clk_meson.o obj-$(CONFIG_ARCH_ROCKCHIP) += rockchip/ +obj-$(CONFIG_ARCH_SUNXI) += sunxi/ obj-$(CONFIG_CLK_AT91) += at91/ obj-$(CONFIG_CLK_MVEBU) += mvebu/ obj-$(CONFIG_CLK_BCM6345) += clk_bcm6345.o diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig new file mode 100644 index 0000000000..bf5ecb3801 --- /dev/null +++ b/drivers/clk/sunxi/Kconfig @@ -0,0 +1,18 @@ +config CLK_SUNXI + bool "Clock support for Allwinner SoCs" + depends on CLK && ARCH_SUNXI + default y + help + This enables support for common clock driver API on Allwinner + SoCs. + +if CLK_SUNXI + +config CLK_SUN50I_A64 + bool "Clock driver for Allwinner A64" + default MACH_SUN50I + help + This enables common clock driver support for platforms based + on Allwinner A64 SoC. + +endif # CLK_SUNXI diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile new file mode 100644 index 0000000000..fb20d28333 --- /dev/null +++ b/drivers/clk/sunxi/Makefile @@ -0,0 +1,9 @@ +# +# Copyright (C) 2018 Amarula Solutions. +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-$(CONFIG_CLK_SUNXI) += clk_sunxi.o + +obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c new file mode 100644 index 0000000000..9393a01ccf --- /dev/null +++ b/drivers/clk/sunxi/clk_a64.c @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map a64_clks[] = { + [CLK_BUS_OTG] = { 0x060, BIT(23), NULL }, + [CLK_BUS_EHCI0] = { 0x060, BIT(24), NULL }, + [CLK_BUS_EHCI1] = { 0x060, BIT(25), NULL }, + [CLK_BUS_OHCI0] = { 0x060, BIT(28), NULL }, + [CLK_BUS_OHCI1] = { 0x060, BIT(29), NULL }, + + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, + [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, + [CLK_USB_HSIC] = { 0x0cc, BIT(10), NULL }, + [CLK_USB_HSIC_12M] = { 0x0cc, BIT(11), NULL }, + [CLK_USB_OHCI0] = { 0x0cc, BIT(16), NULL }, + [CLK_USB_OHCI1] = { 0x0cc, BIT(17), NULL }, +}; + +static const struct ccu_desc sun50i_a64_ccu_desc = { + .clks = a64_clks, + .num_clks = ARRAY_SIZE(a64_clks), +}; + +static int a64_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static const struct udevice_id a64_clk_ids[] = { + { .compatible = "allwinner,sun50i-a64-ccu", + .data = (ulong)&sun50i_a64_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun50i_a64) = { + .name = "sun50i_a64_ccu", + .id = UCLASS_CLK, + .of_match = a64_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = a64_clk_probe, +}; diff --git a/drivers/clk/sunxi/clk_sunxi.c b/drivers/clk/sunxi/clk_sunxi.c new file mode 100644 index 0000000000..791b1ac7f2 --- /dev/null +++ b/drivers/clk/sunxi/clk_sunxi.c @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static int sunxi_clk_enable(struct clk *clk) +{ + struct sunxi_clk_priv *priv = dev_get_priv(clk->dev); + struct ccu_clk_map *map = &priv->desc->clks[clk->id]; + u32 reg; + + if (!map->off || !map->bit) { + debug("%s (CLK#%ld) unhandled\n", __func__, clk->id); + return 0; + } + + debug("%s(#%ld) off#0x%x, BIT(%d)\n", __func__, + clk->id, map->off, ilog2(map->bit)); + + reg = readl(priv->base + map->off); + writel(reg | map->bit, priv->base + map->off); + + return 0; +} + +static int sunxi_clk_disable(struct clk *clk) +{ + struct sunxi_clk_priv *priv = dev_get_priv(clk->dev); + struct ccu_clk_map *map = &priv->desc->clks[clk->id]; + u32 reg; + + if (!map->off || !map->bit) { + debug("%s (CLK#%ld) unhandled\n", __func__, clk->id); + return 0; + } + + debug("%s(#%ld) off#0x%x, BIT(%d)\n", __func__, + clk->id, map->off, ilog2(map->bit)); + + reg = readl(priv->base + map->off); + writel(reg & ~map->bit, priv->base + map->off); + + return 0; +} + +struct clk_ops sunxi_clk_ops = { + .enable = sunxi_clk_enable, + .disable = sunxi_clk_disable, +}; From patchwork Sun Aug 19 13:56:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959326 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="bdx8mvRW"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tdqf6tQgz9s4c for ; Mon, 20 Aug 2018 00:00:14 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 4BA74C21D74; Sun, 19 Aug 2018 13:58:58 +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=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 C8C74C21E15; Sun, 19 Aug 2018 13:57:53 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 18A7BC21DEC; Sun, 19 Aug 2018 13:57:46 +0000 (UTC) Received: from mail-pl0-f49.google.com (mail-pl0-f49.google.com [209.85.160.49]) by lists.denx.de (Postfix) with ESMTPS id 4B043C21E2C for ; Sun, 19 Aug 2018 13:57:41 +0000 (UTC) Received: by mail-pl0-f49.google.com with SMTP id u11-v6so5818359plq.5 for ; Sun, 19 Aug 2018 06:57:41 -0700 (PDT) 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=P1UwTBAos/Cxg7MDidJoTTpUUl8Y/96aSIEKKN+i3RQ=; b=bdx8mvRWmhxPZH62oUnLxFs0Pa+jDjtxfRRrEMP2WKniqiGoeI+80vfq+DQgFC/o4Z jJDvtpP6P+0qzeiIrIMD7x7FBo9e+jSWzHcBDensJ3zJ2syE8CqKrWhkGzg8zgyb1Gt7 9bKPOYUC3WLzW0Dnp7uGUcAmcsHN/lBvZ/zvQ= 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=P1UwTBAos/Cxg7MDidJoTTpUUl8Y/96aSIEKKN+i3RQ=; b=EOXGJvEzAmsxGOy5fIZZp7CMZi/pFTZ2BEhyC2q8IMD3UoHPTY9HG8JDaDCxdm74yI dJZ6fuj7UbEaKMFyax5fHDyujGBxMb20bcd2P/vMHMBKP0riYFB/9Xuu+6Wj+3yNLTxL vuENc8VqQAlktOOJ8VBHd2C2mGacIXqWGJuCatULlYHL+mTbTl6HMkCikULTrv5+37xB 6fQFNg2PXiv0vtwmyEB5s6H/W+rIGigglO9uM1gjO0N2F0PwZ22uJCrmiDEkuZCn1cwk xvymw/IevecMt2fWSxsr6NSF4CGBFL9KIN+fTmBCENgK/i/saXqcGe9gkDOjgE/vRP/w Dk6g== X-Gm-Message-State: AOUpUlGBzSC+shK1nU4MUIni+AGQS1sEOLHCCfT8bNp7Y4D8DqcmPvQt AJClQJq06Ihi239Ek4Jm+MG+qA== X-Google-Smtp-Source: AA+uWPwsW6Z8BJj4SdQ7rBG4qv9JTp2B4RLkck0dXMaEWU0kTKoHRMvG05AU+TPlh1n9ENDkdb83kA== X-Received: by 2002:a17:902:820e:: with SMTP id x14-v6mr41361066pln.218.1534687059902; Sun, 19 Aug 2018 06:57:39 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.57.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:57:39 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:19 +0530 Message-Id: <20180819135715.15799-3-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 02/58] reset: Add default request ops 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" Missing request ops from respective uclass driver generating "synchronous abort" in Allwinner platform, may be in arm. So add default request ops and give a chance to uclass driver to think whether they really need request or not. Cc: Simon Glass Signed-off-by: Jagan Teki --- drivers/reset/reset-uclass.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/reset/reset-uclass.c b/drivers/reset/reset-uclass.c index 3899537635..99881b8b99 100644 --- a/drivers/reset/reset-uclass.c +++ b/drivers/reset/reset-uclass.c @@ -14,6 +14,11 @@ static inline struct reset_ops *reset_dev_ops(struct udevice *dev) return (struct reset_ops *)dev->driver->ops; } +static int reset_request_default(struct reset_ctl *reset_ctl) +{ + return 0; +} + static int reset_of_xlate_default(struct reset_ctl *reset_ctl, struct ofnode_phandle_args *args) { @@ -69,7 +74,10 @@ int reset_get_by_index(struct udevice *dev, int index, return ret; } - ret = ops->request(reset_ctl); + if (ops->request) + ret = ops->request(reset_ctl); + else + ret = reset_request_default(reset_ctl); if (ret) { debug("ops->request() failed: %d\n", ret); return ret; From patchwork Sun Aug 19 13:56:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959329 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="NBGPfi/k"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tds91GTnz9s4c for ; Mon, 20 Aug 2018 00:01:33 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id AF438C21E45; Sun, 19 Aug 2018 13:58:32 +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 ECBE0C21E1E; Sun, 19 Aug 2018 13:57:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 44145C21E56; Sun, 19 Aug 2018 13:57:50 +0000 (UTC) Received: from mail-pl0-f65.google.com (mail-pl0-f65.google.com [209.85.160.65]) by lists.denx.de (Postfix) with ESMTPS id DAB13C21E4F for ; Sun, 19 Aug 2018 13:57:44 +0000 (UTC) Received: by mail-pl0-f65.google.com with SMTP id e11-v6so5825757plb.3 for ; Sun, 19 Aug 2018 06:57:44 -0700 (PDT) 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=TMh88YKTQb1KwF8cseETmFtVdDh2DflXCKnykeVZLlQ=; b=NBGPfi/kSAAki8mKeDQgrNVasvJAL6L7a2H/XbjGIhXpgVQMLnaoHsxdpwB5Kp1Z2F PzyNXZbV0wwQ/QntLgoAJmGKwzN2kfXBRgs+8jzCITzr5wwm+x9qdOOA/W0AiinjiRpU xOt29gF5IZL5g4KEhIb6hMqKsbWYog5+MFXqA= 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=TMh88YKTQb1KwF8cseETmFtVdDh2DflXCKnykeVZLlQ=; b=bha2Ond+pUhn7hB5c9LebQ6UHI/ycobGM8fmLD9HfaAJN6Z5WMvGlp5y6nmJHPu5Vv Kd9szX/UoYUU81ugaWbUNaShQ1Y+ghKKjFfQxKxFW3R8xo1JM5XLm9hSEjGke2jmB1vC 5tpwsUFuc3+9tcUoGejzelAbagfm8sZqyyiT7Sys9zfSKr3WfHJ6S4XvbJ1BzrpQEh3L KeYKtvZLTsi2NFM3FeCZ6bj4RP+1rEZvSpaqdj4QumpVjKwqrUbQ12jKvKMV5WtUpEGo WrnKtmEAIx90F4uKvf32llmnJBPfb7j5Mbwlo7fOT5JzdurPC+v4DUnYJ4F3Ydx3325f qaJA== X-Gm-Message-State: AOUpUlH/em8Z3rcrRLYi1l8de2f9kcuBsU3LheTcMHRBUtz7gXMAwl7w g5qdLGmrTNwF2QEOVGGzgvQlMQ== X-Google-Smtp-Source: AA+uWPyBrrsb1ow2VkxCrYCo+4oSSdYA6pWR3kBxCyTiZOIbU4Py2wteyVRjWm6QNwE83AwTx6M0jQ== X-Received: by 2002:a17:902:a987:: with SMTP id bh7-v6mr42333508plb.182.1534687063416; Sun, 19 Aug 2018 06:57:43 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.57.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:57:42 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:20 +0530 Message-Id: <20180819135715.15799-4-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 03/58] reset: Add Allwinner RESET driver 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" Add common reset driver for all Allwinner SoC's. Since CLK and RESET share common DT compatible, it is CLK driver job is to bind the reset driver. So add CLK bind call on respective SoC driver by passing ccu map descriptor so-that reset deassert, deassert operations held based on reset register map defined by CLK driver. Select DM_RESET via CLK_SUNXI, this make hidden section of RESET since CLK and RESET share common DT compatible and code. Signed-off-by: Jagan Teki --- arch/arm/include/asm/arch-sunxi/ccu.h | 25 ++++++ drivers/clk/sunxi/Kconfig | 1 + drivers/clk/sunxi/clk_a64.c | 22 +++++ drivers/reset/Kconfig | 8 ++ drivers/reset/Makefile | 1 + drivers/reset/reset-sunxi.c | 124 ++++++++++++++++++++++++++ 6 files changed, 181 insertions(+) create mode 100644 drivers/reset/reset-sunxi.c diff --git a/arch/arm/include/asm/arch-sunxi/ccu.h b/arch/arm/include/asm/arch-sunxi/ccu.h index f628c893de..bacd052ef3 100644 --- a/arch/arm/include/asm/arch-sunxi/ccu.h +++ b/arch/arm/include/asm/arch-sunxi/ccu.h @@ -20,15 +20,31 @@ struct ccu_clk_map { int (*ccu_clk_set_rate)(void *base, u32 bit, ulong rate); }; +/** + * ccu_reset_map - common clock unit reset map + * + * @off: ccu reset offset + * @bit: ccu reset bit value + */ +struct ccu_reset_map { + u16 off; + u32 bit; +}; + /** * struct ccu_desc - common clock unit descriptor * * @clks: mapping clocks descriptor * @num_clks: number of mapped clocks + * @resets: mapping resets descriptor + * @num_resets: number of mapped resets */ struct ccu_desc { struct ccu_clk_map *clks; unsigned long num_clks; + + struct ccu_reset_map *resets; + unsigned long num_resets; }; /** @@ -44,4 +60,13 @@ struct sunxi_clk_priv { extern struct clk_ops sunxi_clk_ops; +/** + * sunxi_reset_bind() - reset binding + * + * @dev: reset device + * @count: reset count + * @return 0 success, or error value + */ +int sunxi_reset_bind(struct udevice *dev, ulong count); + #endif /* _ASM_ARCH_CCU_H */ diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index bf5ecb3801..041d711e58 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -1,6 +1,7 @@ config CLK_SUNXI bool "Clock support for Allwinner SoCs" depends on CLK && ARCH_SUNXI + select DM_RESET default y help This enables support for common clock driver API on Allwinner diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index 9393a01ccf..e5257b62c7 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -10,6 +10,7 @@ #include #include #include +#include static struct ccu_clk_map a64_clks[] = { [CLK_BUS_OTG] = { 0x060, BIT(23), NULL }, @@ -26,9 +27,24 @@ static struct ccu_clk_map a64_clks[] = { [CLK_USB_OHCI1] = { 0x0cc, BIT(17), NULL }, }; +static struct ccu_reset_map a64_resets[] = { + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + [RST_USB_PHY1] = { 0x0cc, BIT(1) }, + [RST_USB_HSIC] = { 0x0cc, BIT(2) }, + + [RST_BUS_OTG] = { 0x2c0, BIT(23) }, + [RST_BUS_EHCI0] = { 0x2c0, BIT(24) }, + [RST_BUS_EHCI1] = { 0x2c0, BIT(25) }, + [RST_BUS_OHCI0] = { 0x2c0, BIT(28) }, + [RST_BUS_OHCI1] = { 0x2c0, BIT(29) }, +}; + static const struct ccu_desc sun50i_a64_ccu_desc = { .clks = a64_clks, .num_clks = ARRAY_SIZE(a64_clks), + + .resets = a64_resets, + .num_resets = ARRAY_SIZE(a64_resets), }; static int a64_clk_probe(struct udevice *dev) @@ -46,6 +62,11 @@ static int a64_clk_probe(struct udevice *dev) return 0; } +static int a64_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 50); +} + static const struct udevice_id a64_clk_ids[] = { { .compatible = "allwinner,sun50i-a64-ccu", .data = (ulong)&sun50i_a64_ccu_desc }, @@ -59,4 +80,5 @@ U_BOOT_DRIVER(clk_sun50i_a64) = { .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), .ops = &sunxi_clk_ops, .probe = a64_clk_probe, + .bind = a64_clk_bind, }; diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig index 33c39b7fb6..bdc06564a0 100644 --- a/drivers/reset/Kconfig +++ b/drivers/reset/Kconfig @@ -98,4 +98,12 @@ config RESET_SOCFPGA help Support for reset controller on SoCFPGA platform. +config RESET_SUNXI + bool "RESET support for Allwinner SoCs" + depends on DM_RESET && ARCH_SUNXI + default y + help + This enables support for common reset driver for + Allwinner SoCs. + endmenu diff --git a/drivers/reset/Makefile b/drivers/reset/Makefile index ad08be4c8c..698d15a0e0 100644 --- a/drivers/reset/Makefile +++ b/drivers/reset/Makefile @@ -15,3 +15,4 @@ obj-$(CONFIG_AST2500_RESET) += ast2500-reset.o obj-$(CONFIG_RESET_ROCKCHIP) += reset-rockchip.o obj-$(CONFIG_RESET_MESON) += reset-meson.o obj-$(CONFIG_RESET_SOCFPGA) += reset-socfpga.o +obj-$(CONFIG_RESET_SUNXI) += reset-sunxi.o diff --git a/drivers/reset/reset-sunxi.c b/drivers/reset/reset-sunxi.c new file mode 100644 index 0000000000..c0abe41bec --- /dev/null +++ b/drivers/reset/reset-sunxi.c @@ -0,0 +1,124 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +struct sunxi_reset_priv { + void *base; + ulong count; + const struct ccu_desc *desc; +}; + +static int sunxi_reset_request(struct reset_ctl *reset_ctl) +{ + struct sunxi_reset_priv *priv = dev_get_priv(reset_ctl->dev); + + debug("%s (RST#%ld)\n", __func__, reset_ctl->id); + + /* check dt-bindings/reset/sun8i-h3-ccu.h for max id */ + if (reset_ctl->id >= priv->count) + return -EINVAL; + + return 0; +} + +static int sunxi_reset_free(struct reset_ctl *reset_ctl) +{ + debug("%s (RST#%ld)\n", __func__, reset_ctl->id); + + return 0; +} + +static int sunxi_reset_assert(struct reset_ctl *reset_ctl) +{ + struct sunxi_reset_priv *priv = dev_get_priv(reset_ctl->dev); + struct ccu_reset_map *map = &priv->desc->resets[reset_ctl->id]; + u32 reg; + + if (!map->off || !map->bit) { + debug("%s (RST#%ld) unhandled\n", __func__, reset_ctl->id); + return 0; + } + + debug("%s(#%ld) off#0x%x, BIT(%d)\n", __func__, + reset_ctl->id, map->off, ilog2(map->bit)); + + reg = readl(priv->base + map->off); + writel(reg & ~map->bit, priv->base + map->off); + + return 0; +} + +static int sunxi_reset_deassert(struct reset_ctl *reset_ctl) +{ + struct sunxi_reset_priv *priv = dev_get_priv(reset_ctl->dev); + struct ccu_reset_map *map = &priv->desc->resets[reset_ctl->id]; + u32 reg; + + if (!map->off || !map->bit) { + debug("%s (RST#%ld) unhandled\n", __func__, reset_ctl->id); + return 0; + } + + debug("%s(#%ld) off#0x%x, BIT(%d)\n", __func__, + reset_ctl->id, map->off, ilog2(map->bit)); + + reg = readl(priv->base + map->off); + writel(reg | map->bit, priv->base + map->off); + + return 0; +} + +struct reset_ops sunxi_reset_ops = { + .request = sunxi_reset_request, + .free = sunxi_reset_free, + .rst_assert = sunxi_reset_assert, + .rst_deassert = sunxi_reset_deassert, +}; + +static int sunxi_reset_probe(struct udevice *dev) +{ + struct sunxi_reset_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + + return 0; +} + +int sunxi_reset_bind(struct udevice *dev, ulong count) +{ + struct udevice *rst_dev; + struct sunxi_reset_priv *priv; + int ret; + + ret = device_bind_driver_to_node(dev, "sunxi_reset", "reset", + dev_ofnode(dev), &rst_dev); + if (ret) { + debug("Warning: failed to bind sunxi_reset driver: ret=%d\n", ret); + return ret; + } + priv = malloc(sizeof(struct sunxi_reset_priv)); + priv->count = count; + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + rst_dev->priv = priv; + + return 0; +} + +U_BOOT_DRIVER(reset_sun8i_h3) = { + .name = "sunxi_reset", + .id = UCLASS_RESET, + .ops = &sunxi_reset_ops, + .probe = sunxi_reset_probe, + .priv_auto_alloc_size = sizeof(struct sunxi_reset_priv), +}; From patchwork Sun Aug 19 13:56:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959327 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="N5nwLctb"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tdr25Kmgz9s4c for ; Mon, 20 Aug 2018 00:00:34 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 6DE01C21E85; Sun, 19 Aug 2018 13:59:17 +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 9C072C21E5B; Sun, 19 Aug 2018 13:58:04 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 816E5C21E08; Sun, 19 Aug 2018 13:57:56 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) by lists.denx.de (Postfix) with ESMTPS id BD80DC21E3B for ; Sun, 19 Aug 2018 13:57:48 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id g23-v6so2850114plq.9 for ; Sun, 19 Aug 2018 06:57:48 -0700 (PDT) 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=MQ9cOWLRk61C/+pkE+U5Mckc0YDNuSopqMYtBYYOw80=; b=N5nwLctb3J4jO43bfTD6tHKPj54+Axseyf98zgMUxe3OSRAv3z+NumoO7w0RbjG2wH RniHudxw3XvVkrk48IoZ4YOpvOk6ZlFZfHdIx5ElQXrwyIlqa8V1lMPO+0emltUlNnLS Zv8n0RB6T6yTuwUNo7BLXkkuEXuxBz5kVd1dI= 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=MQ9cOWLRk61C/+pkE+U5Mckc0YDNuSopqMYtBYYOw80=; b=cWDUi92xDbromO8vGJ5tUADEPDstpUr3pt6vAl2RQ98LvJf7y5ge2PvtDdUndhALKF /+waou/Du59krEzKqBDdPmSdbKFwq8bjhZPVTTDk/B+dOI3umUdrJECc+/obK3rtTa81 Vw4Qvs9ybU/tU2fCmo1mkUdVOMgERgS0qqm+jM0iXfi0DTTg2UiDjpy5dxeL3/d0w/SL b+NrLSpIoWzoKAJAL0hwGCED9L+15SZR8mk8AOR2xHHazi12GNLeONhtJdFg2oXHvXgK XTscAPwqSx858di39+MvbnpX+Ih5l5mmHobX//xqahDWOdAQGCA2cke4a/pu/bkdBs/8 0Bzg== X-Gm-Message-State: AOUpUlFyu4zmyxkV6/fxVy8wSu9LdkZpR6mTeGZEdwytRnEQZfTxjWgh qNOvXKOBNsMmVSVFjELCMN2d+Q== X-Google-Smtp-Source: AA+uWPyBejOW5ogxKs5iyMXXNp+4H2ohV/XqKfPoRr9kYZRRlr4Rk7SgqT6d8D8FruH2AdEbBmY/YA== X-Received: by 2002:a17:902:6b44:: with SMTP id g4-v6mr41450116plt.50.1534687067324; Sun, 19 Aug 2018 06:57:47 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.57.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:57:46 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:21 +0530 Message-Id: <20180819135715.15799-5-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 04/58] clk: sunxi: Add Allwinner H3/H5 CLK driver 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" Add initial clock driver for Allwinner H3/H5. - Implement USB bus and USB clocks via ccu_clk_map descriptor for H3/H5, so it can accessed in common clk enable and disable functions from clk_sunxi.c - Implement USB bus and USB resets via ccu_reset_map descriptor for H3/H5, so it can accessed in common reset deassert and assert functions from reset-sunxi.c Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 7 +++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk_h3.c | 97 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+) create mode 100644 drivers/clk/sunxi/clk_h3.c diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index 041d711e58..c3713bbac2 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -9,6 +9,13 @@ config CLK_SUNXI if CLK_SUNXI +config CLK_SUN8I_H3 + bool "Clock driver for Allwinner H3/H5" + default MACH_SUNXI_H3_H5 + help + This enables common clock driver support for platforms based + on Allwinner H3/H5 SoC. + config CLK_SUN50I_A64 bool "Clock driver for Allwinner A64" default MACH_SUN50I diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile index fb20d28333..dec49f27a1 100644 --- a/drivers/clk/sunxi/Makefile +++ b/drivers/clk/sunxi/Makefile @@ -6,4 +6,5 @@ obj-$(CONFIG_CLK_SUNXI) += clk_sunxi.o +obj-$(CONFIG_CLK_SUN8I_H3) += clk_h3.o obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c new file mode 100644 index 0000000000..0b7f4947dd --- /dev/null +++ b/drivers/clk/sunxi/clk_h3.c @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map h3_clks[] = { + [CLK_BUS_OTG] = { 0x060, BIT(23), NULL }, + [CLK_BUS_EHCI0] = { 0x060, BIT(24), NULL }, + [CLK_BUS_EHCI1] = { 0x060, BIT(25), NULL }, + [CLK_BUS_EHCI2] = { 0x060, BIT(26), NULL }, + [CLK_BUS_EHCI3] = { 0x060, BIT(27), NULL }, + [CLK_BUS_OHCI0] = { 0x060, BIT(28), NULL }, + [CLK_BUS_OHCI1] = { 0x060, BIT(29), NULL }, + [CLK_BUS_OHCI2] = { 0x060, BIT(30), NULL }, + [CLK_BUS_OHCI3] = { 0x060, BIT(31), NULL }, + + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, + [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, + [CLK_USB_PHY2] = { 0x0cc, BIT(10), NULL }, + [CLK_USB_PHY3] = { 0x0cc, BIT(11), NULL }, + [CLK_USB_OHCI0] = { 0x0cc, BIT(16), NULL }, + [CLK_USB_OHCI1] = { 0x0cc, BIT(17), NULL }, + [CLK_USB_OHCI2] = { 0x0cc, BIT(18), NULL }, + [CLK_USB_OHCI3] = { 0x0cc, BIT(19), NULL }, +}; + +static struct ccu_reset_map h3_resets[] = { + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + [RST_USB_PHY1] = { 0x0cc, BIT(1) }, + [RST_USB_PHY2] = { 0x0cc, BIT(2) }, + [RST_USB_PHY3] = { 0x0cc, BIT(3) }, + + [RST_BUS_OTG] = { 0x2c0, BIT(23) }, + [RST_BUS_EHCI0] = { 0x2c0, BIT(24) }, + [RST_BUS_EHCI1] = { 0x2c0, BIT(25) }, + [RST_BUS_EHCI2] = { 0x2c0, BIT(26) }, + [RST_BUS_EHCI3] = { 0x2c0, BIT(27) }, + [RST_BUS_OHCI0] = { 0x2c0, BIT(28) }, + [RST_BUS_OHCI1] = { 0x2c0, BIT(29) }, + [RST_BUS_OHCI2] = { 0x2c0, BIT(30) }, + [RST_BUS_OHCI3] = { 0x2c0, BIT(31) }, +}; + +static const struct ccu_desc sun8i_h3_ccu_desc = { + .clks = h3_clks, + .num_clks = ARRAY_SIZE(h3_clks), + + .resets = h3_resets, + .num_resets = ARRAY_SIZE(h3_resets), +}; + +static int h3_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static int h3_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 53); +} + +static const struct udevice_id h3_clk_ids[] = { + { .compatible = "allwinner,sun8i-h3-ccu", + .data = (ulong)&sun8i_h3_ccu_desc }, + { .compatible = "allwinner,sun50i-h5-ccu", + .data = (ulong)&sun8i_h3_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun8i_h3) = { + .name = "sun8i_h3_ccu", + .id = UCLASS_CLK, + .of_match = h3_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = h3_clk_probe, + .bind = h3_clk_bind, +}; From patchwork Sun Aug 19 13:56:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959337 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="DKhMGltR"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tf1Y0VkKz9s4c for ; Mon, 20 Aug 2018 00:08:48 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 98382C21DEC; Sun, 19 Aug 2018 13:59: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=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 A4B26C21E0D; Sun, 19 Aug 2018 13:58:23 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id CA972C21D74; Sun, 19 Aug 2018 13:57:58 +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 B9402C21D74 for ; Sun, 19 Aug 2018 13:57:52 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id k8-v6so1498628pgq.5 for ; Sun, 19 Aug 2018 06:57:52 -0700 (PDT) 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=nZCmLp32o3TsTADnkpy7PWxeD0jPS9u7VB+m5/OgbnY=; b=DKhMGltRhNQme6Cmam0z69gb1O6ikjMclc/3fo050FYRSltsbE/WxxkmfQfzf2U2db yvVSt0AJVX7/R0Cth9mtiyPXcD8NHOelx5QrZF0fwBP9Ap+XNbXOrI1YEg7BhqooCOoG G8fqieaEe8A7Gta0Ds4yRerDMjR9vDh2V6wNI= 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=nZCmLp32o3TsTADnkpy7PWxeD0jPS9u7VB+m5/OgbnY=; b=YJ+Ng0RFRB3Y354AhJeuQNHCIJzTgvDZ2DvT3KC/I5LwtUfHVc3E/EH2C5fuYU94L6 r1+t0xrvHqrNzU98D4xK6fAWeY44kDnP9Tx6echiqQMiFLBpD+/c8stszxEpNaQuG07T LpWoiyF4Jv50LVxMvHZjBaaHadqMajqtkwFFbyFRxRkIyAO0cM3ctDoSRULRBrq0OSOT Cto0tdh5dIcmr55mgZUr+RmIpRSZwDTZBu6LaJ0OeA5qz+US5ohmrUCb5Ch4x2lJ8t03 HtqDeYvZj5PSwDKZacr7oMrMbrl5pbpsIwnXW72hXwvhBI3GpdcmsX9i0wHGSaAvjo9e QX5Q== X-Gm-Message-State: AOUpUlEEOU31AC5tOuF6Z0489q/RVUy1n5KCAf3SWdJnO835Z7rb4+XI wBOOPUYybVsiKMaS+nAR90EGlg== X-Google-Smtp-Source: AA+uWPyoIfsUHzLQp6AP6tFlLiavdpgSyMlhNFK9iYZIOgocsOZAO/p84mkL44YU2zvCbcsU+SdBrg== X-Received: by 2002:a63:7e1c:: with SMTP id z28-v6mr7944576pgc.246.1534687071245; Sun, 19 Aug 2018 06:57:51 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.57.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:57:50 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:22 +0530 Message-Id: <20180819135715.15799-6-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 05/58] clk: sunxi: Add Allwinner A10/A20 CLK driver 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" Add initial clock driver for Allwinner A10/A20. - Implement USB ahb and USB clocks via ccu_clk_map descriptor for A10/A20, so it can accessed in common clk enable and disable functions from clk_sunxi.c - Implement USB resets via ccu_reset_map descriptor for A10/A20, so it can accessed in common reset deassert and assert functions from reset-sunxi.c Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 7 ++++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk_a10.c | 77 +++++++++++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 drivers/clk/sunxi/clk_a10.c diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index c3713bbac2..fbbf94ef55 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -9,6 +9,13 @@ config CLK_SUNXI if CLK_SUNXI +config CLK_SUN4I_A10 + bool "Clock driver for Allwinner A10/A20" + default MACH_SUN4I || MACH_SUN7I + help + This enables common clock driver support for platforms based + on Allwinner A10/A20 SoC. + config CLK_SUN8I_H3 bool "Clock driver for Allwinner H3/H5" default MACH_SUNXI_H3_H5 diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile index dec49f27a1..bba830922f 100644 --- a/drivers/clk/sunxi/Makefile +++ b/drivers/clk/sunxi/Makefile @@ -6,5 +6,6 @@ obj-$(CONFIG_CLK_SUNXI) += clk_sunxi.o +obj-$(CONFIG_CLK_SUN4I_A10) += clk_a10.o obj-$(CONFIG_CLK_SUN8I_H3) += clk_h3.o obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o diff --git a/drivers/clk/sunxi/clk_a10.c b/drivers/clk/sunxi/clk_a10.c new file mode 100644 index 0000000000..7492e1367a --- /dev/null +++ b/drivers/clk/sunxi/clk_a10.c @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map a10_clks[] = { + [CLK_AHB_OTG] = { 0x060, BIT(0), NULL }, + [CLK_AHB_EHCI0] = { 0x060, BIT(1), NULL }, + [CLK_AHB_OHCI0] = { 0x060, BIT(2), NULL }, + [CLK_AHB_EHCI1] = { 0x060, BIT(3), NULL }, + [CLK_AHB_OHCI1] = { 0x060, BIT(4), NULL }, + + [CLK_USB_OHCI0] = { 0x0cc, BIT(6), NULL }, + [CLK_USB_OHCI1] = { 0x0cc, BIT(7), NULL }, + [CLK_USB_PHY] = { 0x0cc, BIT(8), NULL }, +}; + +static struct ccu_reset_map a10_resets[] = { + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + [RST_USB_PHY1] = { 0x0cc, BIT(1) }, + [RST_USB_PHY2] = { 0x0cc, BIT(2) }, +}; + +static const struct ccu_desc sun4i_a10_ccu_desc = { + .clks = a10_clks, + .num_clks = ARRAY_SIZE(a10_clks), + + .resets = a10_resets, + .num_resets = ARRAY_SIZE(a10_resets), +}; + +static int a10_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static int a10_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 22); +} + +static const struct udevice_id a10_clk_ids[] = { + { .compatible = "allwinner,sun4i-a10-ccu", + .data = (ulong)&sun4i_a10_ccu_desc }, + { .compatible = "allwinner,sun7i-a20-ccu", + .data = (ulong)&sun4i_a10_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun4i_a10) = { + .name = "sun4i_a10_ccu", + .id = UCLASS_CLK, + .of_match = a10_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = a10_clk_probe, + .bind = a10_clk_bind, +}; From patchwork Sun Aug 19 13:56:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959342 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="TxCHb+5O"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tf7n5WSmz9ryn for ; Mon, 20 Aug 2018 00:14:13 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 3464BC21E77; Sun, 19 Aug 2018 14:00:26 +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 3FED8C21E39; Sun, 19 Aug 2018 13:58:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B71B7C21E18; Sun, 19 Aug 2018 13:58:03 +0000 (UTC) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by lists.denx.de (Postfix) with ESMTPS id 0966AC21E08 for ; Sun, 19 Aug 2018 13:57:57 +0000 (UTC) Received: by mail-pf1-f193.google.com with SMTP id e13-v6so5486457pff.7 for ; Sun, 19 Aug 2018 06:57:56 -0700 (PDT) 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=JrL4PwIQVEfNFs3AO0c2riZBEr9cr5sGFUQsrs8VDZY=; b=TxCHb+5OkJ2y1NxfpdYIBtgzNjwXecUPgg3cpfgbzEiw8QwhxRS8t7cXiT91zncct6 oqeOIYvjcR9uPswCNzy34AEMaSWHl7tBfvCI1lIbuUiVEBJmljREWkKSNnqV2a/MfO3g RFNEaXjrhSazr6NUIcfKmwPgVFDOvQyRk2LlQ= 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=JrL4PwIQVEfNFs3AO0c2riZBEr9cr5sGFUQsrs8VDZY=; b=bDtqx2Vzt5xbvZ3V9qYnvRUJHNI2akf5unOIFQ9d+JLWlmZWWX7j4BgRwEY1YUMuF1 wfhf3Jsn7dX0Pl3FmPhWreFN5z9ymLkpX+sllRoZC07x9YHzUr5wB+56eOTX1hG5BdBW f0pFdw3YqfRxHIzXa3ZaBu/DBJzdV7Wi5We2oAxMIF1SgL7S5z1qM99YX8zgpwNTbQmz 5E9WRWpV7k2d14sF9Yy2OLtXZVAFyfBsH5DC5G8/4pgvDVcvKWPUknuiWURcQwyEoVE6 49B1hJezYF3UozD81abfdrz/62e0x+8tT1u0pst4y/rdIZCnQ2N6zEM7sg/NWuKQnzVa 90Hg== X-Gm-Message-State: AOUpUlHR9QUu+ZW96DOwoa4L1FohU7i6sPaBMCz7E25iR1wWLxcr/3ka 0HNuLyEBvaO+tnXWn/KST9KHag== X-Google-Smtp-Source: AA+uWPzdl8y0uMy4JaQngqbDXAZScHmCxH0OtuGfkZSxYrNiS613rB4Z5VP3YRZ6qu5L7G+HWKm1XQ== X-Received: by 2002:a63:1948:: with SMTP id 8-v6mr2951882pgz.192.1534687075593; Sun, 19 Aug 2018 06:57:55 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.57.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:57:55 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:23 +0530 Message-Id: <20180819135715.15799-7-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 06/58] clk: sunxi: Add Allwinner A10s/A13 CLK driver 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" Add initial clock driver for Allwinner A10s/A13. - Implement USB ahb and USB clocks via ccu_clk_map descriptor for A10s/A13, so it can accessed in common clk enable and disable functions from clk_sunxi.c - Implement USB resets via ccu_reset_map descriptor for A10s/A13, so it can accessed in common reset deassert and assert functions from reset-sunxi.c Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 7 ++++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk_a10s.c | 74 ++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 drivers/clk/sunxi/clk_a10s.c diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index fbbf94ef55..b228c2fa3a 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -16,6 +16,13 @@ config CLK_SUN4I_A10 This enables common clock driver support for platforms based on Allwinner A10/A20 SoC. +config CLK_SUN5I_A10S + bool "Clock driver for Allwinner A10s/A13" + default MACH_SUN5I + help + This enables common clock driver support for platforms based + on Allwinner A10s/A13 SoC. + config CLK_SUN8I_H3 bool "Clock driver for Allwinner H3/H5" default MACH_SUNXI_H3_H5 diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile index bba830922f..466d4b79d6 100644 --- a/drivers/clk/sunxi/Makefile +++ b/drivers/clk/sunxi/Makefile @@ -7,5 +7,6 @@ obj-$(CONFIG_CLK_SUNXI) += clk_sunxi.o obj-$(CONFIG_CLK_SUN4I_A10) += clk_a10.o +obj-$(CONFIG_CLK_SUN5I_A10S) += clk_a10s.o obj-$(CONFIG_CLK_SUN8I_H3) += clk_h3.o obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o diff --git a/drivers/clk/sunxi/clk_a10s.c b/drivers/clk/sunxi/clk_a10s.c new file mode 100644 index 0000000000..976595201f --- /dev/null +++ b/drivers/clk/sunxi/clk_a10s.c @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map a10s_clks[] = { + [CLK_AHB_OTG] = { 0x060, BIT(0), NULL }, + [CLK_AHB_EHCI] = { 0x060, BIT(1), NULL }, + [CLK_AHB_OHCI] = { 0x060, BIT(2), NULL }, + + [CLK_USB_OHCI] = { 0x0cc, BIT(6), NULL }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, + [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, +}; + +static struct ccu_reset_map a10s_resets[] = { + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + [RST_USB_PHY1] = { 0x0cc, BIT(1) }, +}; + +static const struct ccu_desc sun5i_a10s_ccu_desc = { + .clks = a10s_clks, + .num_clks = ARRAY_SIZE(a10s_clks), + + .resets = a10s_resets, + .num_resets = ARRAY_SIZE(a10s_resets), +}; + +static int a10s_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static int a10s_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 10); +} + +static const struct udevice_id a10s_clk_ids[] = { + { .compatible = "allwinner,sun5i-a10s-ccu", + .data = (ulong)&sun5i_a10s_ccu_desc }, + { .compatible = "allwinner,sun5i-a13-ccu", + .data = (ulong)&sun5i_a10s_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun5i_a10s) = { + .name = "sun5i_a10s_ccu", + .id = UCLASS_CLK, + .of_match = a10s_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = a10s_clk_probe, + .bind = a10s_clk_bind, +}; From patchwork Sun Aug 19 13:56:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959328 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="IwVvEeXs"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tdrs1tsTz9s4c for ; Mon, 20 Aug 2018 00:01:17 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id E3FF7C21E7E; Sun, 19 Aug 2018 13:59:59 +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 C8A39C21E1B; Sun, 19 Aug 2018 13:58:26 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B36F3C21C27; Sun, 19 Aug 2018 13:58:08 +0000 (UTC) Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by lists.denx.de (Postfix) with ESMTPS id CA387C21E16 for ; Sun, 19 Aug 2018 13:58:00 +0000 (UTC) Received: by mail-pf1-f194.google.com with SMTP id b11-v6so5499678pfo.3 for ; Sun, 19 Aug 2018 06:58:00 -0700 (PDT) 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=76l7F6L0KbLYey+J6r77eY6hUn6UJscCIapdLC6z3dw=; b=IwVvEeXssZ/7dLm+ODJ8POCeSGVnTnEbMS/ziJ6f04W5jkveee1s0mmNqU67NhqgXs UI5QIHbW5KZ0fpOu4TXfFB18z5ONOB4vX05HdTqykAueCJ2epsJoB+gAMFXKsFv6KwnG 9QjXvvQe2dtsDt3Xcj+Z20TE5LwYzJlCWsUys= 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=76l7F6L0KbLYey+J6r77eY6hUn6UJscCIapdLC6z3dw=; b=k/aouzNDJMGDI+Gn29AVEJDih8V2IB8RHXQ6JZZM5JFKMf3k7QccBu5NrNsp8y0xr3 TVsP8guEbudXVKuQBXepQdu6CX/dkvQF8gZGCbY32o5uULoPRdwfLwFw6fbCLxoccmuz BQ7hDWLZHsmlNjBzbm55RA4xdpTjRKdY9JkVpVy+FoZPjSH92XIQmhHi/bqI8ZXPpUnk AJCCwcbJujgvmzFEZbQb5S5Xn4wyAiKbP2SR65vCT/DTl0y3/un61mp4b5pS6uqJ9L2f DZTMqCI4/aSMxvRGTyAvzqBIWog7VyFTVfH0j0FHAkIK7zEwMPGiQunH6f66ui9+hRyb hAsw== X-Gm-Message-State: AOUpUlHih9XCdZLEuUMBjZHEw6mw9lh5b1iwoLsOMj5Kgi5so4WxELyl f/euAkG75XutRMwaBmTfZeAc7Q== X-Google-Smtp-Source: AA+uWPxvW0xqMQ7kMvRGm3NZTRWWt5sU8CmVqI0efhJ8iox/Tq0m5D7sm/I4494ccryhf669/mraCw== X-Received: by 2002:a63:f50a:: with SMTP id w10-v6mr40033949pgh.23.1534687079374; Sun, 19 Aug 2018 06:57:59 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.57.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:57:58 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:24 +0530 Message-Id: <20180819135715.15799-8-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 07/58] clk: sunxi: Add Allwinner A31 CLK driver 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" Add initial clock driver for Allwinner A31. - Implement USB ahb1 and USB clocks via ccu_clk_map descriptor for A31, so it can accessed in common clk enable and disable functions from clk_sunxi.c - Implement USB ahb1 and USB resets via ccu_reset_map descriptor for A31, so it can accessed in common reset deassert and assert functions from reset-sunxi.c Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 7 +++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk_a31.c | 86 +++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 drivers/clk/sunxi/clk_a31.c diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index b228c2fa3a..535b0dc02c 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -23,6 +23,13 @@ config CLK_SUN5I_A10S This enables common clock driver support for platforms based on Allwinner A10s/A13 SoC. +config CLK_SUN6I_A31 + bool "Clock driver for Allwinner A31/A31s" + default MACH_SUN6I + help + This enables common clock driver support for platforms based + on Allwinner A31/A31s SoC. + config CLK_SUN8I_H3 bool "Clock driver for Allwinner H3/H5" default MACH_SUNXI_H3_H5 diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile index 466d4b79d6..3cf0071b0c 100644 --- a/drivers/clk/sunxi/Makefile +++ b/drivers/clk/sunxi/Makefile @@ -8,5 +8,6 @@ obj-$(CONFIG_CLK_SUNXI) += clk_sunxi.o obj-$(CONFIG_CLK_SUN4I_A10) += clk_a10.o obj-$(CONFIG_CLK_SUN5I_A10S) += clk_a10s.o +obj-$(CONFIG_CLK_SUN6I_A31) += clk_a31.o obj-$(CONFIG_CLK_SUN8I_H3) += clk_h3.o obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c new file mode 100644 index 0000000000..c6d82be120 --- /dev/null +++ b/drivers/clk/sunxi/clk_a31.c @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions B.V. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map a31_clks[] = { + [CLK_AHB1_OTG] = { 0x060, BIT(24), NULL }, + [CLK_AHB1_EHCI0] = { 0x060, BIT(26), NULL }, + [CLK_AHB1_EHCI1] = { 0x060, BIT(27), NULL }, + [CLK_AHB1_OHCI0] = { 0x060, BIT(29), NULL }, + [CLK_AHB1_OHCI1] = { 0x060, BIT(30), NULL }, + [CLK_AHB1_OHCI2] = { 0x060, BIT(31), NULL }, + + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, + [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, + [CLK_USB_PHY2] = { 0x0cc, BIT(10), NULL }, + [CLK_USB_OHCI0] = { 0x0cc, BIT(16), NULL }, + [CLK_USB_OHCI1] = { 0x0cc, BIT(17), NULL }, + [CLK_USB_OHCI2] = { 0x0cc, BIT(18), NULL }, +}; + +static struct ccu_reset_map a31_resets[] = { + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + [RST_USB_PHY1] = { 0x0cc, BIT(1) }, + [RST_USB_PHY2] = { 0x0cc, BIT(2) }, + + [RST_AHB1_OTG] = { 0x2c0, BIT(24) }, + [RST_AHB1_EHCI0] = { 0x2c0, BIT(26) }, + [RST_AHB1_EHCI1] = { 0x2c0, BIT(27) }, + [RST_AHB1_OHCI0] = { 0x2c0, BIT(29) }, + [RST_AHB1_OHCI1] = { 0x2c0, BIT(30) }, + [RST_AHB1_OHCI2] = { 0x2c0, BIT(31) }, +}; + +static const struct ccu_desc sun6i_a31_ccu_desc = { + .clks = a31_clks, + .num_clks = ARRAY_SIZE(a31_clks), + + .resets = a31_resets, + .num_resets = ARRAY_SIZE(a31_resets), +}; + +static int a31_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static int a31_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 56); +} + +static const struct udevice_id a31_clk_ids[] = { + { .compatible = "allwinner,sun6i-a31-ccu", + .data = (ulong)&sun6i_a31_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun6i_a31) = { + .name = "sun6i_a31_ccu", + .id = UCLASS_CLK, + .of_match = a31_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = a31_clk_probe, + .bind = a31_clk_bind, +}; From patchwork Sun Aug 19 13:56:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959332 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="LF/Cy5xS"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tdxL4xQTz9s5c for ; Mon, 20 Aug 2018 00:05:10 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id D13E7C21D83; Sun, 19 Aug 2018 14:01: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=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 9B0CAC21E34; Sun, 19 Aug 2018 13:58:47 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id F352FC21E1D; Sun, 19 Aug 2018 13:58:10 +0000 (UTC) Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by lists.denx.de (Postfix) with ESMTPS id D5EC0C21E68 for ; Sun, 19 Aug 2018 13:58:04 +0000 (UTC) Received: by mail-pf1-f194.google.com with SMTP id x17-v6so5488781pfh.5 for ; Sun, 19 Aug 2018 06:58:04 -0700 (PDT) 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=9wvqCeJsySkFwT9JnG4imAySwUvxMDIcj3EHOt6zMk8=; b=LF/Cy5xSi/8f9goqYnxQks4ybDfx/d8N4Jy6btQge8v02x+ycwXd420j/LKUFRjD6C vwJmTBiCEptiQOXZAICh8EtLes8BSys+sHpXArRpjc3LmAJbkpBjm6PF9AeTt3DWMVjX X0hglFZFGSiL7S3LNfjcsPVZQcIDn3yD5eqxw= 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=9wvqCeJsySkFwT9JnG4imAySwUvxMDIcj3EHOt6zMk8=; b=RgtbtrN7Zo8BUIZEXH/3SS994i+U0WbSyx00BnJvPe4jp5dgGhwciDNnKg/Z2xzo4B L8WSBkatBnYABl5hziIfICy9rizWiBABMTlwD6Xvhsax9o2F3aybQv0E89O0ZhRDUnAC /Xw63MzVjXZYi5sVoiVdXATHCcBGO4w4k4vvZBe8/WFBUzEviOv/F6Gd3zUyWXO+fTC0 hTT/x762eksAAWpIQ3vqLkSkIIEDCwsMT9joRdHdmWS5KJfbJ5VPKErXJrexsZqhbOpP G96TArK6VVFSnYMAvb+F6+b+LUuzuOclUrPRSB4BibD3DzWJLrC2Or2p3e9Q7UlU2qwm QWyw== X-Gm-Message-State: AOUpUlGcItQxf2AfFDzLzRhl/3/lxmGbffFJkygJuw6M1j6EAf0cZoKT lbc44IWrsbW/v8MWmjY+VCUqOA== X-Google-Smtp-Source: AA+uWPxX2z6oWrEOb34u53RzkTySv152PRk+RIq2p1cGaF2jI8pqM2aUwB7T5FL/E3I4egQyRP3t3Q== X-Received: by 2002:a63:9b19:: with SMTP id r25-v6mr39761017pgd.44.1534687083446; Sun, 19 Aug 2018 06:58:03 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.57.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:03 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:25 +0530 Message-Id: <20180819135715.15799-9-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 08/58] clk: sunxi: Add Allwinner A23 CLK driver 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" Add initial clock driver for Allwinner A23. - Implement USB bus and USB clocks via ccu_clk_map descriptor for A23, so it can accessed in common clk enable and disable functions from clk_sunxi.c - Implement USB bus and USB resets via ccu_reset_map descriptor for A23, so it can accessed in common reset deassert and assert functions from reset-sunxi.c Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 7 ++++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk_a23.c | 79 +++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 drivers/clk/sunxi/clk_a23.c diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index 535b0dc02c..54600e8e1f 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -30,6 +30,13 @@ config CLK_SUN6I_A31 This enables common clock driver support for platforms based on Allwinner A31/A31s SoC. +config CLK_SUN8I_A23 + bool "Clock driver for Allwinner A23" + default MACH_SUN8I_A23 + help + This enables common clock driver support for platforms based + on Allwinner A23 SoC. + config CLK_SUN8I_H3 bool "Clock driver for Allwinner H3/H5" default MACH_SUNXI_H3_H5 diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile index 3cf0071b0c..6924897036 100644 --- a/drivers/clk/sunxi/Makefile +++ b/drivers/clk/sunxi/Makefile @@ -9,5 +9,6 @@ obj-$(CONFIG_CLK_SUNXI) += clk_sunxi.o obj-$(CONFIG_CLK_SUN4I_A10) += clk_a10.o obj-$(CONFIG_CLK_SUN5I_A10S) += clk_a10s.o obj-$(CONFIG_CLK_SUN6I_A31) += clk_a31.o +obj-$(CONFIG_CLK_SUN8I_A23) += clk_a23.o obj-$(CONFIG_CLK_SUN8I_H3) += clk_h3.o obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o diff --git a/drivers/clk/sunxi/clk_a23.c b/drivers/clk/sunxi/clk_a23.c new file mode 100644 index 0000000000..799c8ac0aa --- /dev/null +++ b/drivers/clk/sunxi/clk_a23.c @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions B.V. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map a23_clks[] = { + [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, + [CLK_BUS_EHCI] = { 0x060, BIT(26), NULL }, + [CLK_BUS_OHCI] = { 0x060, BIT(29), NULL }, + + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, + [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, + [CLK_USB_HSIC] = { 0x0cc, BIT(10), NULL }, + [CLK_USB_HSIC_12M] = { 0x0cc, BIT(11), NULL }, + [CLK_USB_OHCI] = { 0x0cc, BIT(16), NULL }, +}; + +static struct ccu_reset_map a23_resets[] = { + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + [RST_USB_PHY1] = { 0x0cc, BIT(1) }, + [RST_USB_HSIC] = { 0x0cc, BIT(2) }, + + [RST_BUS_OTG] = { 0x2c0, BIT(24) }, + [RST_BUS_EHCI] = { 0x2c0, BIT(26) }, + [RST_BUS_OHCI] = { 0x2c0, BIT(29) }, +}; + +static const struct ccu_desc sun8i_a23_ccu_desc = { + .clks = a23_clks, + .num_clks = ARRAY_SIZE(a23_clks), + + .resets = a23_resets, + .num_resets = ARRAY_SIZE(a23_resets), +}; + +static int a23_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static int a23_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 39); +} + +static const struct udevice_id a23_clk_ids[] = { + { .compatible = "allwinner,sun8i-a23-ccu", + .data = (ulong)&sun8i_a23_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun8i_a23) = { + .name = "sun8i_a23_ccu", + .id = UCLASS_CLK, + .of_match = a23_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = a23_clk_probe, + .bind = a23_clk_bind, +}; From patchwork Sun Aug 19 13:56:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959331 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="G+6HJa4H"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tdwl4WHgz9s4c for ; Mon, 20 Aug 2018 00:04:39 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 09C74C21ECF; Sun, 19 Aug 2018 14:02:09 +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 C55E6C21E0F; Sun, 19 Aug 2018 13:59:20 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 1CC70C21E26; Sun, 19 Aug 2018 13:58:13 +0000 (UTC) Received: from mail-pf1-f195.google.com (mail-pf1-f195.google.com [209.85.210.195]) by lists.denx.de (Postfix) with ESMTPS id 8C815C21DEC for ; Sun, 19 Aug 2018 13:58:08 +0000 (UTC) Received: by mail-pf1-f195.google.com with SMTP id j26-v6so5482307pfi.10 for ; Sun, 19 Aug 2018 06:58:08 -0700 (PDT) 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=nB5GPcBPkrK4gT/prdBDHvXKUg/RfN+EQ82pSZEARkQ=; b=G+6HJa4HJdDyeYDd90s1e2LCXXgoxyAkAMVnjnHZDTf0Jpp97H3SUpdzOd63ZjSn5S Rury/BcDkx3qrvDincXzMVSjbYtZsjqTzqSXzE9QYdk0FMszgC2i6meqVIK9HKPhZpms dl4SzLWEi29EyPfjxsDymyTMjDwOO5j0Rxcl0= 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=nB5GPcBPkrK4gT/prdBDHvXKUg/RfN+EQ82pSZEARkQ=; b=Dc8euKfMCcF1e2xTO99rcG4tCZVnILQ/RsP8tGYotpaNqyhvbBfXE6AyorE68RMcss /mfEoCTU3JNHitZGm7Kuk+2VhR9qFlfwhsR0/4rJcQAUnYVhveGXXbJp9OXayAXSXoFg egOt/pTI8kdHD/VjYr9q4LntI4bMYRgHm6y5MbmMx5nbeqWRpoOXUU9DqzK24EQqcTy2 qmoxHTCsskA/h2oCBwBAKCW5C9Y06B4L7zve3dzhx32PhxRPYaw9Tn+mKGMN2NOZ5Ge1 THRJtoz8tvru9ukgynkGmw1ebRZ9/OC8w0b4dJSzD1LoM07WDVlAMg54HePQdI9mS1mI hcIg== X-Gm-Message-State: AOUpUlGl6ud6h71X41DmZ65zXyJmEZIA/z6f0veoboBtmMHlH+DoUULx aGPuYs9571Ev0aemm3g4p3uu7g== X-Google-Smtp-Source: AA+uWPyuL9KAewo7wQi5wYxi8HjjRzxjaAHUbVDhatRwOne4h00+TzB2uX1f5MxcyQdcuFVTsw4PFw== X-Received: by 2002:a63:ed07:: with SMTP id d7-v6mr40212157pgi.429.1534687087182; Sun, 19 Aug 2018 06:58:07 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:06 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:26 +0530 Message-Id: <20180819135715.15799-10-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 09/58] clk: sunxi: a23: Add CLK support for A33 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" A33 has separate clock driver in Linux because of few clock differences wrt to A23 like audio etc,. these may not useful for U-Boot so added a33 ccu compatible on existing a23 clock driver. Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 6 +++--- drivers/clk/sunxi/clk_a23.c | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index 54600e8e1f..38ff99d345 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -31,11 +31,11 @@ config CLK_SUN6I_A31 on Allwinner A31/A31s SoC. config CLK_SUN8I_A23 - bool "Clock driver for Allwinner A23" - default MACH_SUN8I_A23 + bool "Clock driver for Allwinner A23/A33" + default MACH_SUN8I_A23 || MACH_SUN8I_A33 help This enables common clock driver support for platforms based - on Allwinner A23 SoC. + on Allwinner A23/A33 SoC. config CLK_SUN8I_H3 bool "Clock driver for Allwinner H3/H5" diff --git a/drivers/clk/sunxi/clk_a23.c b/drivers/clk/sunxi/clk_a23.c index 799c8ac0aa..ec9834e1a8 100644 --- a/drivers/clk/sunxi/clk_a23.c +++ b/drivers/clk/sunxi/clk_a23.c @@ -65,6 +65,8 @@ static int a23_clk_bind(struct udevice *dev) static const struct udevice_id a23_clk_ids[] = { { .compatible = "allwinner,sun8i-a23-ccu", .data = (ulong)&sun8i_a23_ccu_desc }, + { .compatible = "allwinner,sun8i-a33-ccu", + .data = (ulong)&sun8i_a23_ccu_desc }, { } }; From patchwork Sun Aug 19 13:56:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959330 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="nB1mvJWR"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tdsQ1t1Yz9s4c for ; Mon, 20 Aug 2018 00:01:46 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id DE2BDC21E35; Sun, 19 Aug 2018 14:00:50 +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 8C130C21E44; Sun, 19 Aug 2018 13:58:44 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6740CC21E26; Sun, 19 Aug 2018 13:58:20 +0000 (UTC) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by lists.denx.de (Postfix) with ESMTPS id 869D5C21E2B for ; Sun, 19 Aug 2018 13:58:12 +0000 (UTC) Received: by mail-pf1-f193.google.com with SMTP id j26-v6so5482346pfi.10 for ; Sun, 19 Aug 2018 06:58:12 -0700 (PDT) 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=8wS59+F4GARO5lNB6+UbAJ9dYW85UkuLHn3WTm+uBDU=; b=nB1mvJWRc5TyyS/oYgrESx7Pc726rfaivPDy/Kezb2TM2124TMG6JY0VKGiotjY2zK 508D8xZ0NPrjTBQo1BNKml7qJkPi09lRolbFtBxCfQm1cOMvfz56iB3/tq1ZQpc+UYEb Fe/w8qutXYQqH7TwWJIlC4wYoz7qjT9fRasTw= 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=8wS59+F4GARO5lNB6+UbAJ9dYW85UkuLHn3WTm+uBDU=; b=tmtr6BGfFUIKX3isIe+WNA+1k7APakYHnufZfAPWe0eeQakA6Nrf+2RTHaHI2ctNvV NxmPGA14j+6kpTP3GeERI7EC98izSSOFO6bDhnnmQmXWCceRTwLFdAwYa+J9AYhOrwm8 5ccugggzoYKA/HyAzd1N4RNsWW53PQxwzXDmnDWh6N/Pzr9owkPyJzsOfM8VtFAzIeBb QErLv9gyFF6xNlF6Ytw9sSZpBi8EjJOVcGg/M6WbnfZXbm/4n1iGsoAKg5JUHL7Vyx1V QMuLeuwPX8UqreRG1nSgCD1DU+WKyjaFa4ev5xhGX6aAWXzWhRUJeQdZR/G8niPz/eCJ vHRQ== X-Gm-Message-State: AOUpUlEEiO0WKNxGjogvTa6xRbJkFp+HS/F/dwjYClXThs9GSBoY4wLW 5LR78LbLhPbsoNi264B8e1Ilk9vGtWI= X-Google-Smtp-Source: AA+uWPzbYCDdK14UOUKHUwFM5jkWI750qKY7AF7MdY5xJYV5fYEbkTr0veg9uN/+lsEX0Ra19ZGxeg== X-Received: by 2002:a62:571b:: with SMTP id l27-v6mr44295201pfb.29.1534687091139; Sun, 19 Aug 2018 06:58:11 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:10 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:27 +0530 Message-Id: <20180819135715.15799-11-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 10/58] clk: sunxi: Add Allwinner A83T CLK driver 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" Add initial clock driver for Allwinner A83T. - Implement USB bus and USB clocks via ccu_clk_map descriptor for A83T, so it can accessed in common clk enable and disable functions from clk_sunxi.c - Implement USB bus and USB resets via ccu_reset_map descriptor for A83T, so it can accessed in common reset deassert and assert functions from reset-sunxi.c Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 7 ++++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk_a83t.c | 81 ++++++++++++++++++++++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 drivers/clk/sunxi/clk_a83t.c diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index 38ff99d345..90af70d171 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -37,6 +37,13 @@ config CLK_SUN8I_A23 This enables common clock driver support for platforms based on Allwinner A23/A33 SoC. +config CLK_SUN8I_A83T + bool "Clock driver for Allwinner A83T" + default MACH_SUN8I_A83T + help + This enables common clock driver support for platforms based + on Allwinner A83T SoC. + config CLK_SUN8I_H3 bool "Clock driver for Allwinner H3/H5" default MACH_SUNXI_H3_H5 diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile index 6924897036..4a254c8671 100644 --- a/drivers/clk/sunxi/Makefile +++ b/drivers/clk/sunxi/Makefile @@ -10,5 +10,6 @@ obj-$(CONFIG_CLK_SUN4I_A10) += clk_a10.o obj-$(CONFIG_CLK_SUN5I_A10S) += clk_a10s.o obj-$(CONFIG_CLK_SUN6I_A31) += clk_a31.o obj-$(CONFIG_CLK_SUN8I_A23) += clk_a23.o +obj-$(CONFIG_CLK_SUN8I_A83T) += clk_a83t.o obj-$(CONFIG_CLK_SUN8I_H3) += clk_h3.o obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o diff --git a/drivers/clk/sunxi/clk_a83t.c b/drivers/clk/sunxi/clk_a83t.c new file mode 100644 index 0000000000..58d28eb6ad --- /dev/null +++ b/drivers/clk/sunxi/clk_a83t.c @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map a83t_clks[] = { + [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, + [CLK_BUS_EHCI0] = { 0x060, BIT(26), NULL }, + [CLK_BUS_EHCI1] = { 0x060, BIT(27), NULL }, + [CLK_BUS_OHCI0] = { 0x060, BIT(29), NULL }, + + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, + [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, + [CLK_USB_HSIC] = { 0x0cc, BIT(10), NULL }, + [CLK_USB_HSIC_12M] = { 0x0cc, BIT(11), NULL }, + [CLK_USB_OHCI0] = { 0x0cc, BIT(16), NULL }, +}; + +static struct ccu_reset_map a83t_resets[] = { + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + [RST_USB_PHY1] = { 0x0cc, BIT(1) }, + [RST_USB_HSIC] = { 0x0cc, BIT(2) }, + + [RST_BUS_OTG] = { 0x2c0, BIT(24) }, + [RST_BUS_EHCI0] = { 0x2c0, BIT(26) }, + [RST_BUS_EHCI1] = { 0x2c0, BIT(27) }, + [RST_BUS_OHCI0] = { 0x2c0, BIT(29) }, +}; + +static const struct ccu_desc sun8i_a83t_ccu_desc = { + .clks = a83t_clks, + .num_clks = ARRAY_SIZE(a83t_clks), + + .resets = a83t_resets, + .num_resets = ARRAY_SIZE(a83t_resets), +}; + +static int a83t_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static int a83t_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 44); +} + +static const struct udevice_id a83t_clk_ids[] = { + { .compatible = "allwinner,sun8i-a83t-ccu", + .data = (ulong)&sun8i_a83t_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun8i_a83t) = { + .name = "sun8i_a83t_ccu", + .id = UCLASS_CLK, + .of_match = a83t_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = a83t_clk_probe, + .bind = a83t_clk_bind, +}; From patchwork Sun Aug 19 13:56:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959346 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="ZoXGbgOm"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfFq2tTVz9ryn for ; Mon, 20 Aug 2018 00:19:27 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 1C1BEC21E07; Sun, 19 Aug 2018 14:01:30 +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 844DFC21E60; Sun, 19 Aug 2018 13:58:49 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E8E2EC21C8B; Sun, 19 Aug 2018 13:58:21 +0000 (UTC) Received: from mail-pl0-f68.google.com (mail-pl0-f68.google.com [209.85.160.68]) by lists.denx.de (Postfix) with ESMTPS id 92043C21E0F for ; Sun, 19 Aug 2018 13:58:16 +0000 (UTC) Received: by mail-pl0-f68.google.com with SMTP id p4-v6so2260377pll.8 for ; Sun, 19 Aug 2018 06:58:16 -0700 (PDT) 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=kEZQ1CAb8/6tBeEVsT0BIB5fZYqyfOgWiOADLKVtIAM=; b=ZoXGbgOmZOMAnixYAqWHfZ5i5jqiocclAvuOmQ3CNNV0VTRWMa+UgziIvx3WCqDejE BsGvs2Qi7TlHrA8lsFh01M5sHUwZvNPtiH/+BrZmqnAYiJqHGIN4Qc3G8sn++mYRZ453 ip5SE8pul5ysept7j5FZDxaAA3wLhzckoc1oo= 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=kEZQ1CAb8/6tBeEVsT0BIB5fZYqyfOgWiOADLKVtIAM=; b=gh3t3ldSLzr8RlnhFOCuA8Hjy7l83s1lhuNTNg6G3f4qwY2Ktiu/mAArWKb7WlO8Od iWNYxrnV+lt8xaMwAKf8RFhSDfrOnQtCsBI4aiMKAjrsrC4my5jZThavKKjm1Yrs0coz DhD/HggHMPtX+bcYX6DD79uHcWrh/Cwe4HW4Hp3LCKeehyNwq0F88KLtTbvMc0IJIJQo eqtbyF+8qSXVSYXO2tPVfPOBr39WFpOpUJmz7GL2s+IR+6oN6vhwevBEiu7xCGZvPY0u R2S639Z6sGOgyuJAMMLAhpiRKRLCiQxD1rEuOzgDaiQw2R+9PQaY9Z2iO5IMAnNgV6L9 /dCQ== X-Gm-Message-State: AOUpUlEYYiuHqrkkThZbTJp8tmgrDi38o6wZxCBka6rHtnnXxejkCWA7 I+6sybYXpbZ3rzRCpORe0sgs/g== X-Google-Smtp-Source: AA+uWPwxCj76gAtrJvA2wLbFJDQjjLvAso5SOdC+gDnNUmorccIEn5mBwFCePxFuJy1arfQ7FR3MKg== X-Received: by 2002:a17:902:a716:: with SMTP id w22-v6mr41636655plq.334.1534687095177; Sun, 19 Aug 2018 06:58:15 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:14 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:28 +0530 Message-Id: <20180819135715.15799-12-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 11/58] clk: sunxi: Add Allwinner R40 CLK driver 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" Add initial clock driver for Allwinner R40. - Implement USB bus and USB clocks via ccu_clk_map descriptor for R40, so it can accessed in common clk enable and disable functions from clk_sunxi.c - Implement USB bus and USB resets via ccu_reset_map descriptor for R40, so it can accessed in common reset deassert and assert functions from reset-sunxi.c Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 7 +++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk_r40.c | 89 +++++++++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 drivers/clk/sunxi/clk_r40.c diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index 90af70d171..c45a4ba378 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -44,6 +44,13 @@ config CLK_SUN8I_A83T This enables common clock driver support for platforms based on Allwinner A83T SoC. +config CLK_SUN8I_R40 + bool "Clock driver for Allwinner R40" + default MACH_SUN8I_R40 + help + This enables common clock driver support for platforms based + on Allwinner R40 SoC. + config CLK_SUN8I_H3 bool "Clock driver for Allwinner H3/H5" default MACH_SUNXI_H3_H5 diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile index 4a254c8671..61f8b87396 100644 --- a/drivers/clk/sunxi/Makefile +++ b/drivers/clk/sunxi/Makefile @@ -11,5 +11,6 @@ obj-$(CONFIG_CLK_SUN5I_A10S) += clk_a10s.o obj-$(CONFIG_CLK_SUN6I_A31) += clk_a31.o obj-$(CONFIG_CLK_SUN8I_A23) += clk_a23.o obj-$(CONFIG_CLK_SUN8I_A83T) += clk_a83t.o +obj-$(CONFIG_CLK_SUN8I_R40) += clk_r40.o obj-$(CONFIG_CLK_SUN8I_H3) += clk_h3.o obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o diff --git a/drivers/clk/sunxi/clk_r40.c b/drivers/clk/sunxi/clk_r40.c new file mode 100644 index 0000000000..746d6734b2 --- /dev/null +++ b/drivers/clk/sunxi/clk_r40.c @@ -0,0 +1,89 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map r40_clks[] = { + [CLK_BUS_OTG] = { 0x060, BIT(25), NULL }, + [CLK_BUS_EHCI0] = { 0x060, BIT(26), NULL }, + [CLK_BUS_EHCI1] = { 0x060, BIT(27), NULL }, + [CLK_BUS_EHCI2] = { 0x060, BIT(28), NULL }, + [CLK_BUS_OHCI0] = { 0x060, BIT(29), NULL }, + [CLK_BUS_OHCI1] = { 0x060, BIT(30), NULL }, + [CLK_BUS_OHCI2] = { 0x060, BIT(31), NULL }, + + + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, + [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, + [CLK_USB_PHY2] = { 0x0cc, BIT(10), NULL }, + [CLK_USB_OHCI0] = { 0x0cc, BIT(16), NULL }, + [CLK_USB_OHCI1] = { 0x0cc, BIT(17), NULL }, + [CLK_USB_OHCI2] = { 0x0cc, BIT(18), NULL }, +}; + +static struct ccu_reset_map r40_resets[] = { + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + [RST_USB_PHY1] = { 0x0cc, BIT(1) }, + [RST_USB_PHY2] = { 0x0cc, BIT(2) }, + + [RST_BUS_OTG] = { 0x2c0, BIT(25) }, + [RST_BUS_EHCI0] = { 0x2c0, BIT(26) }, + [RST_BUS_EHCI1] = { 0x2c0, BIT(27) }, + [RST_BUS_EHCI2] = { 0x2c0, BIT(28) }, + [RST_BUS_OHCI0] = { 0x2c0, BIT(29) }, + [RST_BUS_OHCI1] = { 0x2c0, BIT(30) }, + [RST_BUS_OHCI2] = { 0x2c0, BIT(31) }, +}; + +static const struct ccu_desc sun8i_r40_ccu_desc = { + .clks = r40_clks, + .num_clks = ARRAY_SIZE(r40_clks), + + .resets = r40_resets, + .num_resets = ARRAY_SIZE(r40_resets), +}; + +static int r40_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static int r40_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 80); +} + +static const struct udevice_id r40_clk_ids[] = { + { .compatible = "allwinner,sun8i-r40-ccu", + .data = (ulong)&sun8i_r40_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun8i_r40) = { + .name = "sun8i_r40_ccu", + .id = UCLASS_CLK, + .of_match = r40_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = r40_clk_probe, + .bind = r40_clk_bind, +}; From patchwork Sun Aug 19 13:56:29 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959335 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="oWJ1eEbr"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tf0B5k02z9s4c for ; Mon, 20 Aug 2018 00:07:38 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 0B36BC21E3E; Sun, 19 Aug 2018 14:02:28 +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 3E134C21E49; Sun, 19 Aug 2018 13:59:22 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 3FF46C21DEC; Sun, 19 Aug 2018 13:58:28 +0000 (UTC) Received: from mail-pl0-f68.google.com (mail-pl0-f68.google.com [209.85.160.68]) by lists.denx.de (Postfix) with ESMTPS id 0BB2BC21E26 for ; Sun, 19 Aug 2018 13:58:21 +0000 (UTC) Received: by mail-pl0-f68.google.com with SMTP id b90-v6so5826207plb.0 for ; Sun, 19 Aug 2018 06:58:20 -0700 (PDT) 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=xoboTHWxrWVE/Ru5B9MiTlNb3R5lTgebduxv6lrQDmA=; b=oWJ1eEbrGi0DWtbXRbbCvYB34cJQaALGn8llZmsQXNk6U0VHoRzO1IAx7+WKSpi7a7 0Jq+rEbBXk/i33NwczNK0Z1gQVN+Kt+EDcAXHmkdfcZcJf6+8PslIEbJRGZYLAg7MCK8 jSgDzbJfGIbtO/TSC0D6d43CqGkXesPdhUgWE= 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=xoboTHWxrWVE/Ru5B9MiTlNb3R5lTgebduxv6lrQDmA=; b=RuP9MyFg8cZSj/qRQpOC7TQsEzQ2RlVBNumRf5lDnEirpBTZ7BOX5NOQAeu7wPEnl+ /gAry/cvNa5FkdpJ1rgRLbTBZdnz2n4toj6Gnrah6C3Ztzhrnz3jpXtYb8gDruCmWK5a /dI4tok7Yih2XjG5/gz3VcpQYbMqIUygVfzu+dYUQzNq497lr/aYOOD1ZV9AEu4yY3+A UUaPiCR9GMdrdbcmacasNk2IkSMoWs1c6xAFY3i3uxJQoTe+fluKI3wrwjeIH/ljqggH PvjDdoU41hDlGoAHHzr0fci1gksZPwTQXOQLJzjsSvuw7FQS1cGhk9aBzG1g5oWG4AR3 9CAA== X-Gm-Message-State: AOUpUlHglOsDVL5w8Wh4oNCKEKJJ+2yMGFQQEHuApqwvNI9h5JP5BoG6 FEczpDp0DVjREWOGqZzS5ozT5w== X-Google-Smtp-Source: AA+uWPxPFv4iipzwMuxWa0EmJoR85NRkNsuHj0nUIusN1DohYR6soGAm5IQFvLqMQnpsy/vhbVIm5A== X-Received: by 2002:a17:902:9a8a:: with SMTP id w10-v6mr41227494plp.14.1534687099650; Sun, 19 Aug 2018 06:58:19 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:19 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:29 +0530 Message-Id: <20180819135715.15799-13-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 12/58] clk: sunxi: Add Allwinner V3S CLK driver 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" Add initial clock driver for Allwinner V3S. - Implement USB bus and USB clocks via ccu_clk_map descriptor for V3S, so it can accessed in common clk enable and disable functions from clk_sunxi.c - Implement USB bus and USB resets via ccu_reset_map descriptor for V3S, so it can accessed in common reset deassert and assert functions from reset-sunxi.c Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 7 ++++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk_v3s.c | 69 +++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 drivers/clk/sunxi/clk_v3s.c diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index c45a4ba378..a6f84e9e56 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -51,6 +51,13 @@ config CLK_SUN8I_R40 This enables common clock driver support for platforms based on Allwinner R40 SoC. +config CLK_SUN8I_V3S + bool "Clock driver for Allwinner V3S" + default MACH_SUN8I_V3S + help + This enables common clock driver support for platforms based + on Allwinner V3S SoC. + config CLK_SUN8I_H3 bool "Clock driver for Allwinner H3/H5" default MACH_SUNXI_H3_H5 diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile index 61f8b87396..fbd43527a6 100644 --- a/drivers/clk/sunxi/Makefile +++ b/drivers/clk/sunxi/Makefile @@ -12,5 +12,6 @@ obj-$(CONFIG_CLK_SUN6I_A31) += clk_a31.o obj-$(CONFIG_CLK_SUN8I_A23) += clk_a23.o obj-$(CONFIG_CLK_SUN8I_A83T) += clk_a83t.o obj-$(CONFIG_CLK_SUN8I_R40) += clk_r40.o +obj-$(CONFIG_CLK_SUN8I_V3S) += clk_v3s.o obj-$(CONFIG_CLK_SUN8I_H3) += clk_h3.o obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o diff --git a/drivers/clk/sunxi/clk_v3s.c b/drivers/clk/sunxi/clk_v3s.c new file mode 100644 index 0000000000..2494518798 --- /dev/null +++ b/drivers/clk/sunxi/clk_v3s.c @@ -0,0 +1,69 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map v3s_clks[] = { + [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, + + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, +}; + +static struct ccu_reset_map v3s_resets[] = { + [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + + [RST_BUS_OTG] = { 0x2c0, BIT(24) }, +}; + +static const struct ccu_desc sun8i_v3s_ccu_desc = { + .clks = v3s_clks, + .num_clks = ARRAY_SIZE(v3s_clks), + + .resets = v3s_resets, + .num_resets = ARRAY_SIZE(v3s_resets), +}; + +static int v3s_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static int v3s_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 53); +} + +static const struct udevice_id v3s_clk_ids[] = { + { .compatible = "allwinner,sun8i-v3s-ccu", + .data = (ulong)&sun8i_v3s_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun8i_v3s) = { + .name = "sun8i_v3s_ccu", + .id = UCLASS_CLK, + .of_match = v3s_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = v3s_clk_probe, + .bind = v3s_clk_bind, +}; From patchwork Sun Aug 19 13:56:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959350 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="U55KcnKA"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfHk70Nhz9ryn for ; Mon, 20 Aug 2018 00:21:06 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 91729C21E42; Sun, 19 Aug 2018 14:01:50 +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 A3F3AC21C27; Sun, 19 Aug 2018 13:59:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C7A6CC21DB5; Sun, 19 Aug 2018 13:58:31 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id 99B1FC21E34 for ; Sun, 19 Aug 2018 13:58:25 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id y10-v6so5481760pfn.8 for ; Sun, 19 Aug 2018 06:58:25 -0700 (PDT) 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=5jZa1y1J/hHCjyJZyoCNtbrSz3ra1pzX3uuGe/rUQ7Q=; b=U55KcnKAvQxHg4RWKiTRbFF8y0LDT8nEFnlYOEuWpzfvX3jfbtyfIE4f9fYYXDVuz4 2HB3uAyBaGjew9+geP5aQs8edjGp8J3yTbuC4SAPBErr4pl6ZS7M1jNd0897iuazXvOk PDJUAugi8ayHfqdnrKq2MawoJ6Kj+5eftyHks= 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=5jZa1y1J/hHCjyJZyoCNtbrSz3ra1pzX3uuGe/rUQ7Q=; b=kFVmhVlHtkaUOysY5TLoyxom47DaIoF5oOVNYN3FM/4DtN032wPRn4m99JPmegfDr5 yA491qloA4su6+z6tnPrGNpdJiwq+f9C9sC8IHko15Ok6jIktlzNUWO2I+cbn8mVlgmd LuW767cHmlLFmO8AcxcL/A2tDkBbODQdDDo2MB+FMLr/c+9Stb/3vyOJY6radILy1efX wbt709djDaeO6cMFqWxPNG9k7tbRGHLeGUh8B/3vQLm8weCYknOSzZeGcxvwpCljkuqo TqU9SOpkYCkxS5WbIxwyDbgJlou0SqC6XhyoEa2RNuZUr1MtVFmCAjjbjAAqQMQC2fxm Ykvw== X-Gm-Message-State: AOUpUlHFUiD1/6eo5cUBydEAXd0ytepdiDSyNVyvTpQC29DN4CAWi6dV 8Isy27e/xl9NEapwBViIv95Ueg== X-Google-Smtp-Source: AA+uWPyofb+YfJlREsFyS0sDRGNaGvRJqf3WAHrCtLvKZZTIuqxlKXTKKliL5TYBZeRnQKkcY/khXA== X-Received: by 2002:a63:9802:: with SMTP id q2-v6mr39393324pgd.70.1534687104180; Sun, 19 Aug 2018 06:58:24 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:23 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:30 +0530 Message-Id: <20180819135715.15799-14-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 13/58] sunxi: Enable CLK 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" CLK and DM_RESET drivers are now available for most of the Allwinner platforms, so enable in mach-sunxi/Kconfig Enabling CLK will select DM_RESET by default. Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index 558363b52d..dce81b7d53 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -132,6 +132,7 @@ endif config MACH_SUNXI_H3_H5 bool + select CLK select DM_I2C select PHY_SUN4I_USB select SUNXI_DE2 @@ -147,6 +148,7 @@ choice config MACH_SUN4I bool "sun4i (Allwinner A10)" select CPU_V7A + select CLK select ARM_CORTEX_CPU_IS_UP select DM_MMC if MMC select DM_SCSI if SCSI @@ -158,6 +160,7 @@ config MACH_SUN4I config MACH_SUN5I bool "sun5i (Allwinner A13)" select CPU_V7A + select CLK select ARM_CORTEX_CPU_IS_UP select DRAM_SUN4I select PHY_SUN4I_USB @@ -171,6 +174,7 @@ config MACH_SUN6I select CPU_V7_HAS_NONSEC select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI + select CLK select DRAM_SUN6I select PHY_SUN4I_USB select SUN6I_P2WI @@ -185,6 +189,7 @@ config MACH_SUN7I select CPU_V7_HAS_NONSEC select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI + select CLK select DRAM_SUN4I select PHY_SUN4I_USB select SUNXI_GEN_SUN4I @@ -197,6 +202,7 @@ config MACH_SUN8I_A23 select CPU_V7_HAS_NONSEC select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI + select CLK select DRAM_SUN8I_A23 select PHY_SUN4I_USB select SUNXI_GEN_SUN6I @@ -210,6 +216,7 @@ config MACH_SUN8I_A33 select CPU_V7_HAS_NONSEC select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI + select CLK select DRAM_SUN8I_A33 select PHY_SUN4I_USB select SUNXI_GEN_SUN6I @@ -220,6 +227,7 @@ config MACH_SUN8I_A33 config MACH_SUN8I_A83T bool "sun8i (Allwinner A83T)" select CPU_V7A + select CLK select DRAM_SUN8I_A83T select PHY_SUN4I_USB select SUNXI_GEN_SUN6I @@ -231,6 +239,7 @@ config MACH_SUN8I_H3 select CPU_V7A select CPU_V7_HAS_NONSEC select CPU_V7_HAS_VIRT + select CLK select ARCH_SUPPORT_PSCI select MACH_SUNXI_H3_H5 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT @@ -241,6 +250,7 @@ config MACH_SUN8I_R40 select CPU_V7_HAS_NONSEC select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI + select CLK select SUNXI_GEN_SUN6I select SUPPORT_SPL select SUNXI_DRAM_DW @@ -252,6 +262,7 @@ config MACH_SUN8I_V3S select CPU_V7_HAS_NONSEC select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI + select CLK select SUNXI_GEN_SUN6I select SUNXI_DRAM_DW select SUNXI_DRAM_DW_16BIT @@ -270,6 +281,7 @@ config MACH_SUN9I config MACH_SUN50I bool "sun50i (Allwinner A64)" select ARM64 + select CLK select DM_I2C select PHY_SUN4I_USB select SUNXI_DE2 From patchwork Sun Aug 19 13:56:31 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959334 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="Kye/kBJM"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tdzl6C70z9s4c for ; Mon, 20 Aug 2018 00:07:15 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 5A4DCC21E2C; Sun, 19 Aug 2018 14:04:38 +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 B52F0C21E02; Sun, 19 Aug 2018 14:00:24 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 5E3C1C21D74; Sun, 19 Aug 2018 13:58:36 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) by lists.denx.de (Postfix) with ESMTPS id F190AC21E4F for ; Sun, 19 Aug 2018 13:58:29 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id u11-v6so5818770plq.5 for ; Sun, 19 Aug 2018 06:58:29 -0700 (PDT) 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=BVCFOji7gHqub8o/VdQ16BYMIMKk7AZtaDxPR2oBiXg=; b=Kye/kBJMv39zUnaXC4gvbNkr9Ep9J8o1B9WARd6cvTJqAmY++Pat6Jai/A6cd1ymSW 38/Q96qg9KZTe2m3HRXVNKQwf0zv/mWRZjyI2/hp7XVMYcRjH/7to2qumZVXIKlKvRhY IhXSsDWiUqnlAdXeZWAkgWDpeE6Ni5NeP0dA4= 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=BVCFOji7gHqub8o/VdQ16BYMIMKk7AZtaDxPR2oBiXg=; b=k+YLgt/48Y9VKEKPTYJXRWcbA0CQkSKEA+Vm/4yW4wyqvfcbwjfYffQCUoQXKqmE96 ZVCYdDkfpmC5vQiR81G2IhhcRS3OLHqjrfib7Sj1THffXIHE9WV4QviT1C0P6eA7u0Ew 1E7Jp7GrBQq9PAyGs2q2LBlnl2yogFYyGLTkBKBo1KbbD1dlQWwyFhCFCTT7gnjwuEjP pmErlRG8ffi+1okOpULchJNL11kTRsqAZ9phxyWCSSHp7aeuiyx2p1f0hx1AqzLv+RJK WlnP89kBEKFRd2jSwvjiF9cG1n/GOgxn9X8ocXtYrv1doZ2ywDfZvfkg6TtTAVtWPvZG rKBg== X-Gm-Message-State: AOUpUlFD+ZH/R92GlgB/F6TdEP2JimQ9v1FsO3ZTBPCGD91kTYlH9lsv ZcBOhvPO+fQ2yCMfvJRMp14dlA== X-Google-Smtp-Source: AA+uWPyijk4AnH2/J/dNogaTUN22lpvsTnlOvTHk1L4Er6EkwzXBL4xREEA3ubMfva2fExr4MXq8+w== X-Received: by 2002:a17:902:7084:: with SMTP id z4-v6mr2678926plk.147.1534687108598; Sun, 19 Aug 2018 06:58:28 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:28 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:31 +0530 Message-Id: <20180819135715.15799-15-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 14/58] musb-new: sunxi: Use CLK and RESET support 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" Now clock and reset drivers are available for respective SoC's so use clk and reset ops on musb driver. Signed-off-by: Jagan Teki --- drivers/usb/musb-new/sunxi.c | 82 +++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 29 deletions(-) diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index 9f71b84fd1..440be83f4e 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -16,9 +16,11 @@ * This file is part of the Inventra Controller Driver for Linux. */ #include +#include #include #include #include +#include #include #include #include @@ -78,16 +80,15 @@ struct sunxi_musb_config { struct musb_hdrc_config *config; - u8 rst_bit; - u8 clkgate_bit; }; struct sunxi_glue { struct musb_host_data mdata; - struct sunxi_ccm_reg *ccm; struct sunxi_musb_config *cfg; struct device dev; struct phy phy; + struct clk clocks; + struct reset_ctl resets; }; #define to_sunxi_glue(d) container_of(d, struct sunxi_glue, dev) @@ -291,6 +292,18 @@ static int sunxi_musb_init(struct musb *musb) pr_debug("%s():\n", __func__); + ret = clk_enable(&glue->clocks); + if (ret) { + dev_err(dev, "failed to enable clock\n"); + return ret; + } + + ret = reset_deassert(&glue->resets); + if (ret) { + dev_err(dev, "failed to deassert reset\n"); + return ret; + } + ret = generic_phy_init(&glue->phy); if (ret) { pr_err("failed to init USB PHY\n"); @@ -299,17 +312,6 @@ static int sunxi_musb_init(struct musb *musb) musb->isr = sunxi_musb_interrupt; - setbits_le32(&glue->ccm->ahb_gate0, BIT(AHB_GATE_OFFSET_USB0)); - if (glue->cfg->clkgate_bit) - setbits_le32(&glue->ccm->ahb_gate0, - BIT(glue->cfg->clkgate_bit)); -#ifdef CONFIG_SUNXI_GEN_SUN6I - setbits_le32(&glue->ccm->ahb_reset0_cfg, BIT(AHB_GATE_OFFSET_USB0)); - if (glue->cfg->rst_bit) - setbits_le32(&glue->ccm->ahb_reset0_cfg, - BIT(glue->cfg->rst_bit)); -#endif - USBC_ConfigFIFO_Base(); USBC_EnableDpDmPullUp(musb->mregs); USBC_EnableIdPullUp(musb->mregs); @@ -339,16 +341,17 @@ static int sunxi_musb_exit(struct musb *musb) } } -#ifdef CONFIG_SUNXI_GEN_SUN6I - clrbits_le32(&glue->ccm->ahb_reset0_cfg, BIT(AHB_GATE_OFFSET_USB0)); - if (glue->cfg->rst_bit) - clrbits_le32(&glue->ccm->ahb_reset0_cfg, - BIT(glue->cfg->rst_bit)); -#endif - clrbits_le32(&glue->ccm->ahb_gate0, BIT(AHB_GATE_OFFSET_USB0)); - if (glue->cfg->clkgate_bit) - clrbits_le32(&glue->ccm->ahb_gate0, - BIT(glue->cfg->clkgate_bit)); + ret = reset_assert(&glue->resets); + if (ret) { + dev_err(dev, "failed to deassert reset\n"); + return ret; + } + + ret = clk_disable(&glue->clocks); + if (ret) { + dev_err(dev, "failed to enable clock\n"); + return ret; + } return 0; } @@ -433,6 +436,7 @@ static int musb_usb_probe(struct udevice *dev) struct usb_bus_priv *priv = dev_get_uclass_priv(dev); struct musb_hdrc_platform_data pdata; void *base = dev_read_addr_ptr(dev); + int clock_nb, reset_nb; int ret; if (!base) @@ -442,9 +446,31 @@ static int musb_usb_probe(struct udevice *dev) if (!glue->cfg) return -EINVAL; - glue->ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; - if (IS_ERR(glue->ccm)) - return PTR_ERR(glue->ccm); + clock_nb = ofnode_count_phandle_with_args(dev_ofnode(dev), "clocks", + "#clock-cells"); + if (clock_nb < 0) { + dev_err(dev, "failed to get clock phandle(%d)\n", clock_nb); + return clock_nb; + } + + ret = clk_get_by_index(dev, 0, &glue->clocks); + if (ret) { + dev_err(dev, "failed to get clock 0\n"); + clk_free(&glue->clocks); + } + + reset_nb = ofnode_count_phandle_with_args(dev_ofnode(dev), "resets", + "#reset-cells"); + if (reset_nb < 0) { + dev_err(dev, "failed to get reset phandle(%d)\n", clock_nb); + return reset_nb; + } + + ret = reset_get_by_index(dev, 0, &glue->resets); + if (ret) { + dev_err(dev, "failed to get reset 0\n"); + reset_free(&glue->resets); + } ret = generic_phy_get_by_name(dev, "usb", &glue->phy); if (ret) { @@ -499,8 +525,6 @@ static const struct sunxi_musb_config sun4i_a10_cfg = { static const struct sunxi_musb_config sun8i_h3_cfg = { .config = &musb_config_h3, - .rst_bit = 23, - .clkgate_bit = 23, }; static const struct udevice_id sunxi_musb_ids[] = { From patchwork Sun Aug 19 13:56:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959345 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="Ylefr6RR"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfDD4WCFz9ryn for ; Mon, 20 Aug 2018 00:18:04 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 150ECC21E1A; Sun, 19 Aug 2018 14:04:14 +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 DAC92C21E52; Sun, 19 Aug 2018 14:00:02 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C7425C21E02; Sun, 19 Aug 2018 13:58:39 +0000 (UTC) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by lists.denx.de (Postfix) with ESMTPS id 3E46BC21E34 for ; Sun, 19 Aug 2018 13:58:34 +0000 (UTC) Received: by mail-pf1-f193.google.com with SMTP id x17-v6so5489044pfh.5 for ; Sun, 19 Aug 2018 06:58:34 -0700 (PDT) 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=vE9WmEIiyHbsdC5w72COwECnW7iiMB1eNDJEk+MLI6M=; b=Ylefr6RRk/Kkorqd6Js0y3U91fhGAH0MgK4a1aJumlRZSFgVu+1MKBMfM9inOEqXWY OQmjSFOk3YOmvwV2+ZQmhnblBiI8WneXJrzJu1umaHqrlHWZeYyRzvZRTdqvkiYlX5J2 64HKR9Z3NOu/K+oYfbk8mtw8bxbcLxBt3xNJM= 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=vE9WmEIiyHbsdC5w72COwECnW7iiMB1eNDJEk+MLI6M=; b=aUUhm/iJCOcJ5flNpxKTzwfudNE7o59zf89N9UNnuzuvPxI9SW785NOFaDB6eAEYhD +i9N7vgPQc6/F0aGNSzDay5KWCIID0kU4dCrwi8hzaCCfE+i1bEEESagNaIGCGYtSx6K mgVThNgK80j9ljXpRm4bC/T3BrQFl6hquI5HSF0bi552f9CMjdFM87x4m1cBu7Ed6B5g Taw0Ewu4q2NpmpyxdOGfn73l4+OTTE8Ufa2po6KBtwWjDBfw432MZ39ZCygtkpdJaKXw qEkA71Ihv5KOfYt6jNuFfB8U/YPgMpEl9zHryXZhBM5ch5XnNbfLqN+9/MBHY2oxXFLU /9Yw== X-Gm-Message-State: AOUpUlGR1JRdpxtrKOX1+Ea3xK/7wBOm6vdn0t7AsGdKxLINJYMK7AFa QH+28M+iWVkpLoDXon/3K0zDXQ== X-Google-Smtp-Source: AA+uWPx7JVJ0XSgH4Dlx4ko8/vfdCVxk0O5PiOR/uf8hacXnLoLkEb3SXRSS80ey1oGuoNCtBRxhVw== X-Received: by 2002:a63:e45:: with SMTP id 5-v6mr6777234pgo.438.1534687112797; Sun, 19 Aug 2018 06:58:32 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:32 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:32 +0530 Message-Id: <20180819135715.15799-16-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 15/58] phy: sun4i-usb: Use CLK and RESET support 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" Now clock and reset drivers are available for respective SoC's so use clk and reset ops on phy driver. Signed-off-by: Jagan Teki --- drivers/phy/allwinner/phy-sun4i-usb.c | 77 ++++++++++++++++++++------- 1 file changed, 57 insertions(+), 20 deletions(-) diff --git a/drivers/phy/allwinner/phy-sun4i-usb.c b/drivers/phy/allwinner/phy-sun4i-usb.c index a7d7e3f044..f206fa3f5d 100644 --- a/drivers/phy/allwinner/phy-sun4i-usb.c +++ b/drivers/phy/allwinner/phy-sun4i-usb.c @@ -11,10 +11,12 @@ */ #include +#include #include #include #include #include +#include #include #include #include @@ -80,6 +82,7 @@ struct sun4i_usb_phy_cfg { enum sun4i_usb_phy_type type; u32 disc_thresh; u8 phyctl_offset; + bool dedicated_clocks; bool enable_pmu_unk1; bool phy0_dual_route; }; @@ -88,30 +91,21 @@ struct sun4i_usb_phy_info { const char *gpio_vbus; const char *gpio_vbus_det; const char *gpio_id_det; - int rst_mask; } phy_info[] = { { .gpio_vbus = CONFIG_USB0_VBUS_PIN, .gpio_vbus_det = CONFIG_USB0_VBUS_DET, .gpio_id_det = CONFIG_USB0_ID_DET, - .rst_mask = (CCM_USB_CTRL_PHY0_RST | CCM_USB_CTRL_PHY0_CLK), }, { .gpio_vbus = CONFIG_USB1_VBUS_PIN, .gpio_vbus_det = NULL, .gpio_id_det = NULL, - .rst_mask = (CCM_USB_CTRL_PHY1_RST | CCM_USB_CTRL_PHY1_CLK), }, { .gpio_vbus = CONFIG_USB2_VBUS_PIN, .gpio_vbus_det = NULL, .gpio_id_det = NULL, -#ifdef CONFIG_MACH_SUN8I_A83T - .rst_mask = (CCM_USB_CTRL_HSIC_RST | CCM_USB_CTRL_HSIC_CLK | - CCM_USB_CTRL_12M_CLK), -#else - .rst_mask = (CCM_USB_CTRL_PHY2_RST | CCM_USB_CTRL_PHY2_CLK), -#endif }, { .gpio_vbus = CONFIG_USB3_VBUS_PIN, @@ -126,13 +120,13 @@ struct sun4i_usb_phy_plat { int gpio_vbus; int gpio_vbus_det; int gpio_id_det; - int rst_mask; + struct clk clocks; + struct reset_ctl resets; int id; }; struct sun4i_usb_phy_data { void __iomem *base; - struct sunxi_ccm_reg *ccm; const struct sun4i_usb_phy_cfg *cfg; struct sun4i_usb_phy_plat *usb_phy; }; @@ -266,8 +260,19 @@ static int sun4i_usb_phy_init(struct phy *phy) struct sun4i_usb_phy_data *data = dev_get_priv(phy->dev); struct sun4i_usb_phy_plat *usb_phy = &data->usb_phy[phy->id]; u32 val; + int ret; - setbits_le32(&data->ccm->usb_clk_cfg, usb_phy->rst_mask); + ret = clk_enable(&usb_phy->clocks); + if (ret) { + dev_err(dev, "failed to enable usb_%ldphy clock\n", phy->id); + return ret; + } + + ret = reset_deassert(&usb_phy->resets); + if (ret) { + dev_err(dev, "failed to deassert usb_%ldreset reset\n", phy->id); + return ret; + } if (data->cfg->type == sun8i_a83t_phy) { if (phy->id == 0) { @@ -308,6 +313,7 @@ static int sun4i_usb_phy_exit(struct phy *phy) { struct sun4i_usb_phy_data *data = dev_get_priv(phy->dev); struct sun4i_usb_phy_plat *usb_phy = &data->usb_phy[phy->id]; + int ret; if (phy->id == 0) { if (data->cfg->type == sun8i_a83t_phy) { @@ -320,7 +326,17 @@ static int sun4i_usb_phy_exit(struct phy *phy) sun4i_usb_phy_passby(phy, false); - clrbits_le32(&data->ccm->usb_clk_cfg, usb_phy->rst_mask); + ret = clk_disable(&usb_phy->clocks); + if (ret) { + dev_err(dev, "failed to disable usb_%ldphy clock\n", phy->id); + return ret; + } + + ret = reset_assert(&usb_phy->resets); + if (ret) { + dev_err(dev, "failed to assert usb_%ldreset reset\n", phy->id); + return ret; + } return 0; } @@ -407,10 +423,6 @@ static int sun4i_usb_phy_probe(struct udevice *dev) if (IS_ERR(data->base)) return PTR_ERR(data->base); - data->ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; - if (IS_ERR(data->ccm)) - return PTR_ERR(data->ccm); - data->usb_phy = plat; for (i = 0; i < data->cfg->num_phys; i++) { struct sun4i_usb_phy_plat *phy = &plat[i]; @@ -448,6 +460,24 @@ static int sun4i_usb_phy_probe(struct udevice *dev) sunxi_gpio_set_pull(phy->gpio_id_det, SUNXI_GPIO_PULL_UP); } + if (data->cfg->dedicated_clocks) + snprintf(name, sizeof(name), "usb%d_phy", i); + else + strlcpy(name, "usb_phy", sizeof(name)); + + ret = clk_get_by_name(dev, name, &phy->clocks); + if (ret) { + dev_err(dev, "failed to get usb%d_phy clock phandle\n", i); + return ret; + } + + snprintf(name, sizeof(name), "usb%d_reset", i); + ret = reset_get_by_name(dev, name, &phy->resets); + if (ret) { + dev_err(dev, "failed to get usb%d_reset reset phandle\n", i); + return ret; + } + if (i || data->cfg->phy0_dual_route) { snprintf(name, sizeof(name), "pmu%d", i); phy->pmu = (void __iomem *)devfdt_get_addr_name(dev, name); @@ -456,9 +486,6 @@ static int sun4i_usb_phy_probe(struct udevice *dev) } phy->id = i; - phy->rst_mask = info->rst_mask; - if ((data->cfg->type == sun8i_h3_phy) && (phy->id == 3)) - phy->rst_mask = (BIT(3) | BIT(11)); }; debug("Allwinner Sun4I USB PHY driver loaded\n"); @@ -470,6 +497,7 @@ static const struct sun4i_usb_phy_cfg sun4i_a10_cfg = { .type = sun4i_a10_phy, .disc_thresh = 3, .phyctl_offset = REG_PHYCTL_A10, + .dedicated_clocks = false, .enable_pmu_unk1 = false, }; @@ -478,6 +506,7 @@ static const struct sun4i_usb_phy_cfg sun5i_a13_cfg = { .type = sun4i_a10_phy, .disc_thresh = 2, .phyctl_offset = REG_PHYCTL_A10, + .dedicated_clocks = false, .enable_pmu_unk1 = false, }; @@ -486,6 +515,7 @@ static const struct sun4i_usb_phy_cfg sun6i_a31_cfg = { .type = sun6i_a31_phy, .disc_thresh = 3, .phyctl_offset = REG_PHYCTL_A10, + .dedicated_clocks = true, .enable_pmu_unk1 = false, }; @@ -494,6 +524,7 @@ static const struct sun4i_usb_phy_cfg sun7i_a20_cfg = { .type = sun4i_a10_phy, .disc_thresh = 2, .phyctl_offset = REG_PHYCTL_A10, + .dedicated_clocks = false, .enable_pmu_unk1 = false, }; @@ -502,6 +533,7 @@ static const struct sun4i_usb_phy_cfg sun8i_a23_cfg = { .type = sun4i_a10_phy, .disc_thresh = 3, .phyctl_offset = REG_PHYCTL_A10, + .dedicated_clocks = true, .enable_pmu_unk1 = false, }; @@ -510,6 +542,7 @@ static const struct sun4i_usb_phy_cfg sun8i_a33_cfg = { .type = sun8i_a33_phy, .disc_thresh = 3, .phyctl_offset = REG_PHYCTL_A33, + .dedicated_clocks = true, .enable_pmu_unk1 = false, }; @@ -517,6 +550,7 @@ static const struct sun4i_usb_phy_cfg sun8i_a83t_cfg = { .num_phys = 3, .type = sun8i_a83t_phy, .phyctl_offset = REG_PHYCTL_A33, + .dedicated_clocks = true, }; static const struct sun4i_usb_phy_cfg sun8i_h3_cfg = { @@ -524,6 +558,7 @@ static const struct sun4i_usb_phy_cfg sun8i_h3_cfg = { .type = sun8i_h3_phy, .disc_thresh = 3, .phyctl_offset = REG_PHYCTL_A33, + .dedicated_clocks = true, .enable_pmu_unk1 = true, .phy0_dual_route = true, }; @@ -533,6 +568,7 @@ static const struct sun4i_usb_phy_cfg sun8i_v3s_cfg = { .type = sun8i_v3s_phy, .disc_thresh = 3, .phyctl_offset = REG_PHYCTL_A33, + .dedicated_clocks = true, .enable_pmu_unk1 = true, .phy0_dual_route = true, }; @@ -542,6 +578,7 @@ static const struct sun4i_usb_phy_cfg sun50i_a64_cfg = { .type = sun50i_a64_phy, .disc_thresh = 3, .phyctl_offset = REG_PHYCTL_A33, + .dedicated_clocks = true, .enable_pmu_unk1 = true, .phy0_dual_route = true, }; From patchwork Sun Aug 19 13:56:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959333 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="dtaPnI2m"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tdy9550Wz9s4c for ; Mon, 20 Aug 2018 00:05:53 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 6DCA4C21DE8; Sun, 19 Aug 2018 14:02:58 +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 BCECDC21E4F; Sun, 19 Aug 2018 13:59:49 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 25212C21E6C; Sun, 19 Aug 2018 13:58:47 +0000 (UTC) Received: from mail-pg1-f193.google.com (mail-pg1-f193.google.com [209.85.215.193]) by lists.denx.de (Postfix) with ESMTPS id E49C5C21E02 for ; Sun, 19 Aug 2018 13:58:39 +0000 (UTC) Received: by mail-pg1-f193.google.com with SMTP id s15-v6so2774040pgv.8 for ; Sun, 19 Aug 2018 06:58:39 -0700 (PDT) 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=ea37fPCR4nGReWue73VYc3Ra7IameZB1kzuGkiSc1w0=; b=dtaPnI2mOJEj9XI4NU3hE7MyLCjNVL/bXFX8X/zWZPz5wLcu1vfzaEiHzgP/GNtn1P 8jP5md8C6m4AoxMnyQ9YMhMm5qy3qup4qdVBb5f1UTwIRedJEUzHkdmUatRKG5fmfnLy u7kz3y01BnHV/tRYR4coq5ht/YUGyP1bEGcWo= 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=ea37fPCR4nGReWue73VYc3Ra7IameZB1kzuGkiSc1w0=; b=O4ielFeM4Q0+2Zmx0Yuk5kC2kV4b2LdkVG3BWbISOrQTrJApfvBxczwcRtR5UpRX79 tcltrQemHCoLuFIW5r6XgpIJ0dl7NPu1UihTh+s/BGGJGBcBNJIJS/WPa+BaFy4KzlGa TipSk/FTqG/HfCktgcXFCNQCfWbyk9swH+IcR3LVZk9e37D5lAzu96jPIRRmcjNJTaaY 8cY14rIKZBWwmAzme0LhzyD2mUjYTinT/qVeVCxMAiupOdLCQ31MwCgNzh/SCJ/AFJQj LGBr5PMWZFx/lFeTOJZFia2Bq1j3cUtLsfaZdj9AIrm3ofGSZs35qyVtRDlKGYivKeq+ 6VmQ== X-Gm-Message-State: AOUpUlFG96WEsGxS3zzfp2/bUGJJi/zVBmsuDHZXSK4D4ob3V9RUhymT a2oZLrLcG3BzbXgdqkhoBOQ/Ww== X-Google-Smtp-Source: AA+uWPx3g6KhDAj2Pmc0MpDz7wxup5DqEvGKV0FI7fWyVcpmzD5b0JT7cmVqEisXb9bGPv8BrgeRBQ== X-Received: by 2002:a63:ff1f:: with SMTP id k31-v6mr1032167pgi.346.1534687117916; Sun, 19 Aug 2018 06:58:37 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:37 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:33 +0530 Message-Id: <20180819135715.15799-17-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 16/58] sunxi: usb: Switch to Generic host controllers 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" Once of key blocker for using USB Generic host controller drivers in Allwinner are CLK and RESET drivers, now these available for USB usage. So switch to use EHCI and OHCI Generic controllers. Enabling USB is wisely a board choise, so Enable USB_OHCI_HCD where it already have USB_EHCI_HCD Signed-off-by: Jagan Teki --- configs/A10-OLinuXino-Lime_defconfig | 1 + configs/A10s-OLinuXino-M_defconfig | 1 + configs/A13-OLinuXinoM_defconfig | 1 + configs/A13-OLinuXino_defconfig | 1 + configs/A20-OLinuXino-Lime2-eMMC_defconfig | 1 + configs/A20-OLinuXino-Lime2_defconfig | 1 + configs/A20-OLinuXino-Lime_defconfig | 1 + configs/A20-Olimex-SOM204-EVB_defconfig | 2 ++ configs/Auxtek-T003_defconfig | 1 + configs/Auxtek-T004_defconfig | 1 + configs/Bananapi_defconfig | 1 + configs/Bananapi_m2m_defconfig | 1 + configs/Bananapro_defconfig | 1 + configs/CHIP_defconfig | 1 + configs/CHIP_pro_defconfig | 1 + configs/CSQ_CS908_defconfig | 1 + configs/Colombus_defconfig | 1 + configs/Cubieboard2_defconfig | 1 + configs/Cubieboard_defconfig | 1 + configs/Cubietruck_plus_defconfig | 1 + configs/Hummingbird_A31_defconfig | 1 + configs/Itead_Ibox_A20_defconfig | 1 + configs/Linksprite_pcDuino3_Nano_defconfig | 1 + configs/Linksprite_pcDuino3_defconfig | 1 + configs/Linksprite_pcDuino_defconfig | 1 + configs/MK808C_defconfig | 1 + configs/Marsboard_A10_defconfig | 1 + configs/Mele_A1000G_quad_defconfig | 1 + configs/Mele_A1000_defconfig | 1 + configs/Mele_I7_defconfig | 1 + configs/Mele_M3_defconfig | 1 + configs/Mele_M5_defconfig | 1 + configs/Mele_M9_defconfig | 1 + configs/Mini-X_defconfig | 1 + configs/Orangepi_defconfig | 1 + configs/Orangepi_mini_defconfig | 1 + configs/Sinlinx_SinA31s_defconfig | 1 + configs/Sinlinx_SinA33_defconfig | 1 + configs/Sinovoip_BPI_M2_Plus_defconfig | 1 + configs/Sinovoip_BPI_M2_defconfig | 1 + configs/Sinovoip_BPI_M3_defconfig | 1 + configs/Wexler_TAB7200_defconfig | 1 + configs/Wobo_i5_defconfig | 1 + configs/a64-olinuxino_defconfig | 1 + configs/ba10_tv_box_defconfig | 1 + configs/bananapi_m1_plus_defconfig | 1 + configs/bananapi_m64_defconfig | 1 + configs/ga10h_v1_1_defconfig | 1 + configs/h8_homlet_v2_defconfig | 1 + configs/i12-tvbox_defconfig | 1 + configs/icnova-a20-swac_defconfig | 1 + configs/inet1_defconfig | 1 + configs/inet_q972_defconfig | 1 + configs/jesurun_q5_defconfig | 1 + configs/libretech_all_h3_cc_h2_plus_defconfig | 1 + configs/libretech_all_h3_cc_h3_defconfig | 1 + configs/libretech_all_h3_cc_h5_defconfig | 1 + configs/mixtile_loftq_defconfig | 1 + configs/mk802_a10s_defconfig | 1 + configs/mk802_defconfig | 1 + configs/mk802ii_defconfig | 1 + configs/nanopi_a64_defconfig | 1 + configs/nanopi_m1_defconfig | 1 + configs/nanopi_m1_plus_defconfig | 1 + configs/nanopi_neo2_defconfig | 1 + configs/nanopi_neo_air_defconfig | 1 + configs/nanopi_neo_defconfig | 1 + configs/nanopi_neo_plus2_defconfig | 1 + configs/orangepi_2_defconfig | 1 + configs/orangepi_lite_defconfig | 1 + configs/orangepi_one_defconfig | 1 + configs/orangepi_pc2_defconfig | 1 + configs/orangepi_pc_defconfig | 1 + configs/orangepi_pc_plus_defconfig | 1 + configs/orangepi_plus2e_defconfig | 1 + configs/orangepi_plus_defconfig | 1 + configs/orangepi_prime_defconfig | 1 + configs/orangepi_r1_defconfig | 1 + configs/orangepi_win_defconfig | 1 + configs/orangepi_zero_defconfig | 1 + configs/orangepi_zero_plus2_defconfig | 1 + configs/orangepi_zero_plus_defconfig | 1 + configs/parrot_r16_defconfig | 1 + configs/pine64_plus_defconfig | 1 + configs/r7-tv-dongle_defconfig | 1 + configs/sopine_baseboard_defconfig | 1 + configs/sun8i_a23_evb_defconfig | 1 + configs/sunxi_Gemei_G9_defconfig | 1 + configs/tbs_a711_defconfig | 1 + drivers/usb/host/Kconfig | 2 ++ include/configs/sun4i.h | 4 ---- include/configs/sun50i.h | 5 ----- include/configs/sun5i.h | 4 ---- include/configs/sun6i.h | 4 ---- include/configs/sun7i.h | 4 ---- include/configs/sun8i.h | 4 ---- include/configs/sunxi-common.h | 1 - 97 files changed, 92 insertions(+), 26 deletions(-) diff --git a/configs/A10-OLinuXino-Lime_defconfig b/configs/A10-OLinuXino-Lime_defconfig index feb1173c0b..e8fecbe15f 100644 --- a/configs/A10-OLinuXino-Lime_defconfig +++ b/configs/A10-OLinuXino-Lime_defconfig @@ -20,5 +20,6 @@ CONFIG_SUN4I_EMAC=y CONFIG_AXP_ALDO3_VOLT=2800 CONFIG_AXP_ALDO4_VOLT=2800 CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/A10s-OLinuXino-M_defconfig b/configs/A10s-OLinuXino-M_defconfig index 9498a6d752..bee913cb0b 100644 --- a/configs/A10s-OLinuXino-M_defconfig +++ b/configs/A10s-OLinuXino-M_defconfig @@ -16,5 +16,6 @@ CONFIG_SPL_I2C_SUPPORT=y CONFIG_SUN4I_EMAC=y CONFIG_AXP152_POWER=y CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/A13-OLinuXinoM_defconfig b/configs/A13-OLinuXinoM_defconfig index ed507cdf0b..dd5c25ca9f 100644 --- a/configs/A13-OLinuXinoM_defconfig +++ b/configs/A13-OLinuXinoM_defconfig @@ -18,5 +18,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino-micro" # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUNXI_NO_PMIC=y CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/A13-OLinuXino_defconfig b/configs/A13-OLinuXino_defconfig index b8ec1e54db..04682dcac4 100644 --- a/configs/A13-OLinuXino_defconfig +++ b/configs/A13-OLinuXino_defconfig @@ -25,6 +25,7 @@ CONFIG_DFU_RAM=y CONFIG_FASTBOOT_CMD_OEM_FORMAT=y CONFIG_AXP_ALDO3_VOLT=3300 CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/A20-OLinuXino-Lime2-eMMC_defconfig b/configs/A20-OLinuXino-Lime2-eMMC_defconfig index 5657fc2594..2851a461e8 100644 --- a/configs/A20-OLinuXino-Lime2-eMMC_defconfig +++ b/configs/A20-OLinuXino-Lime2-eMMC_defconfig @@ -27,6 +27,7 @@ CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO3_VOLT=2800 CONFIG_AXP_ALDO4_VOLT=2800 CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/A20-OLinuXino-Lime2_defconfig b/configs/A20-OLinuXino-Lime2_defconfig index 134d1d3fef..99987a8683 100644 --- a/configs/A20-OLinuXino-Lime2_defconfig +++ b/configs/A20-OLinuXino-Lime2_defconfig @@ -26,6 +26,7 @@ CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO3_VOLT=2800 CONFIG_AXP_ALDO4_VOLT=2800 CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/A20-OLinuXino-Lime_defconfig b/configs/A20-OLinuXino-Lime_defconfig index b7c13a6932..1b59174120 100644 --- a/configs/A20-OLinuXino-Lime_defconfig +++ b/configs/A20-OLinuXino-Lime_defconfig @@ -19,5 +19,6 @@ CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO3_VOLT=2800 CONFIG_AXP_ALDO4_VOLT=2800 CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/A20-Olimex-SOM204-EVB_defconfig b/configs/A20-Olimex-SOM204-EVB_defconfig index cfb7ffa556..0537378ba1 100644 --- a/configs/A20-Olimex-SOM204-EVB_defconfig +++ b/configs/A20-Olimex-SOM204-EVB_defconfig @@ -1,4 +1,5 @@ CONFIG_ARM=y +CONFIG_USB_OHCI_HCD=y CONFIG_ARCH_SUNXI=y CONFIG_SPL=y CONFIG_MACH_SUN7I=y @@ -27,6 +28,7 @@ CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO3_VOLT=2800 CONFIG_AXP_ALDO4_VOLT=2800 CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Auxtek-T003_defconfig b/configs/Auxtek-T003_defconfig index ce4806cf5e..a2bf5037ed 100644 --- a/configs/Auxtek-T003_defconfig +++ b/configs/Auxtek-T003_defconfig @@ -14,5 +14,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_AXP152_POWER=y CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Auxtek-T004_defconfig b/configs/Auxtek-T004_defconfig index 5faf45c3d7..4c1117e4bb 100644 --- a/configs/Auxtek-T004_defconfig +++ b/configs/Auxtek-T004_defconfig @@ -12,5 +12,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_AXP152_POWER=y CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Bananapi_defconfig b/configs/Bananapi_defconfig index 7a9b5fe0e5..53752b2e12 100644 --- a/configs/Bananapi_defconfig +++ b/configs/Bananapi_defconfig @@ -19,5 +19,6 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_RGMII=y CONFIG_SUN7I_GMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Bananapi_m2m_defconfig b/configs/Bananapi_m2m_defconfig index 2316437c94..a21796fa67 100644 --- a/configs/Bananapi_m2m_defconfig +++ b/configs/Bananapi_m2m_defconfig @@ -14,6 +14,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-r16-bananapi-m2m" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_PARTITION_UUIDS is not set CONFIG_FASTBOOT_CMD_OEM_FORMAT=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_FUNCTION_MASS_STORAGE=y diff --git a/configs/Bananapro_defconfig b/configs/Bananapro_defconfig index 5a8ded0493..ad4ce1f662 100644 --- a/configs/Bananapro_defconfig +++ b/configs/Bananapro_defconfig @@ -22,5 +22,6 @@ CONFIG_RGMII=y CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO4_VOLT=2500 CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/CHIP_defconfig b/configs/CHIP_defconfig index c122944881..2dfa5237bc 100644 --- a/configs/CHIP_defconfig +++ b/configs/CHIP_defconfig @@ -16,6 +16,7 @@ CONFIG_DFU_RAM=y CONFIG_AXP_ALDO3_VOLT=3300 CONFIG_AXP_ALDO4_VOLT=3300 CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/CHIP_pro_defconfig b/configs/CHIP_pro_defconfig index 5d63fadef5..1333877957 100644 --- a/configs/CHIP_pro_defconfig +++ b/configs/CHIP_pro_defconfig @@ -20,6 +20,7 @@ CONFIG_SYS_NAND_OOBSIZE=0x100 CONFIG_AXP_ALDO3_VOLT=3300 CONFIG_AXP_ALDO4_VOLT=3300 CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/CSQ_CS908_defconfig b/configs/CSQ_CS908_defconfig index b103e7e00d..7612cc8989 100644 --- a/configs/CSQ_CS908_defconfig +++ b/configs/CSQ_CS908_defconfig @@ -14,6 +14,7 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO1_VOLT=3300 CONFIG_AXP_DLDO1_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Colombus_defconfig b/configs/Colombus_defconfig index c85e47cb11..6310420c29 100644 --- a/configs/Colombus_defconfig +++ b/configs/Colombus_defconfig @@ -24,5 +24,6 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_RGMII=y CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO1_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Cubieboard2_defconfig b/configs/Cubieboard2_defconfig index 418da63ba8..6e883155b9 100644 --- a/configs/Cubieboard2_defconfig +++ b/configs/Cubieboard2_defconfig @@ -16,5 +16,6 @@ CONFIG_SCSI_AHCI=y CONFIG_ETH_DESIGNWARE=y CONFIG_SUN7I_GMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Cubieboard_defconfig b/configs/Cubieboard_defconfig index 27223d201e..dbeda7370d 100644 --- a/configs/Cubieboard_defconfig +++ b/configs/Cubieboard_defconfig @@ -15,5 +15,6 @@ CONFIG_SPL_I2C_SUPPORT=y CONFIG_SCSI_AHCI=y CONFIG_SUN4I_EMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Cubietruck_plus_defconfig b/configs/Cubietruck_plus_defconfig index d76bc6748b..6a0e4c5836 100644 --- a/configs/Cubietruck_plus_defconfig +++ b/configs/Cubietruck_plus_defconfig @@ -22,6 +22,7 @@ CONFIG_CONSOLE_MUX=y CONFIG_AXP_DLDO3_VOLT=2500 CONFIG_AXP_DLDO4_VOLT=3300 CONFIG_AXP_FLDO1_VOLT=1200 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Hummingbird_A31_defconfig b/configs/Hummingbird_A31_defconfig index 24126fde28..81eb59ebd1 100644 --- a/configs/Hummingbird_A31_defconfig +++ b/configs/Hummingbird_A31_defconfig @@ -16,5 +16,6 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_RGMII=y CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO1_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Itead_Ibox_A20_defconfig b/configs/Itead_Ibox_A20_defconfig index dfef071476..93c89890a7 100644 --- a/configs/Itead_Ibox_A20_defconfig +++ b/configs/Itead_Ibox_A20_defconfig @@ -16,5 +16,6 @@ CONFIG_SCSI_AHCI=y CONFIG_ETH_DESIGNWARE=y CONFIG_SUN7I_GMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Linksprite_pcDuino3_Nano_defconfig b/configs/Linksprite_pcDuino3_Nano_defconfig index 2df6761455..8487263fd8 100644 --- a/configs/Linksprite_pcDuino3_Nano_defconfig +++ b/configs/Linksprite_pcDuino3_Nano_defconfig @@ -19,5 +19,6 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_RGMII=y CONFIG_SUN7I_GMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Linksprite_pcDuino3_defconfig b/configs/Linksprite_pcDuino3_defconfig index d7e9c26cbf..7a1fc26434 100644 --- a/configs/Linksprite_pcDuino3_defconfig +++ b/configs/Linksprite_pcDuino3_defconfig @@ -18,5 +18,6 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_SUN7I_GMAC=y CONFIG_SCSI=y CONFIG_DM_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Linksprite_pcDuino_defconfig b/configs/Linksprite_pcDuino_defconfig index 500f885599..b18b02307f 100644 --- a/configs/Linksprite_pcDuino_defconfig +++ b/configs/Linksprite_pcDuino_defconfig @@ -11,5 +11,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN4I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/MK808C_defconfig b/configs/MK808C_defconfig index 62768b8656..c3d914efe3 100644 --- a/configs/MK808C_defconfig +++ b/configs/MK808C_defconfig @@ -9,5 +9,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Marsboard_A10_defconfig b/configs/Marsboard_A10_defconfig index 55c27b8435..37bdeb0c37 100644 --- a/configs/Marsboard_A10_defconfig +++ b/configs/Marsboard_A10_defconfig @@ -12,5 +12,6 @@ CONFIG_SCSI_AHCI=y CONFIG_SUN4I_EMAC=y CONFIG_SUNXI_NO_PMIC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Mele_A1000G_quad_defconfig b/configs/Mele_A1000G_quad_defconfig index e084454293..b3a05f2c0d 100644 --- a/configs/Mele_A1000G_quad_defconfig +++ b/configs/Mele_A1000G_quad_defconfig @@ -17,6 +17,7 @@ CONFIG_AXP_DCDC1_VOLT=3300 CONFIG_AXP_ALDO1_VOLT=3300 CONFIG_AXP_DLDO1_VOLT=3300 CONFIG_AXP_DLDO4_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Mele_A1000_defconfig b/configs/Mele_A1000_defconfig index 367f2aaf7a..021753c221 100644 --- a/configs/Mele_A1000_defconfig +++ b/configs/Mele_A1000_defconfig @@ -15,5 +15,6 @@ CONFIG_SPL_I2C_SUPPORT=y CONFIG_SCSI_AHCI=y CONFIG_SUN4I_EMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Mele_I7_defconfig b/configs/Mele_I7_defconfig index 4fa61d311f..c9398676e2 100644 --- a/configs/Mele_I7_defconfig +++ b/configs/Mele_I7_defconfig @@ -16,5 +16,6 @@ CONFIG_AXP_DCDC1_VOLT=3300 CONFIG_AXP_ALDO1_VOLT=3300 CONFIG_AXP_DLDO1_VOLT=3300 CONFIG_AXP_DLDO4_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Mele_M3_defconfig b/configs/Mele_M3_defconfig index 9f48bd91e0..22497aaeb4 100644 --- a/configs/Mele_M3_defconfig +++ b/configs/Mele_M3_defconfig @@ -15,5 +15,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_ETH_DESIGNWARE=y CONFIG_SUN7I_GMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Mele_M5_defconfig b/configs/Mele_M5_defconfig index 6b198be6f6..37e90e1eaf 100644 --- a/configs/Mele_M5_defconfig +++ b/configs/Mele_M5_defconfig @@ -17,5 +17,6 @@ CONFIG_SCSI_AHCI=y CONFIG_ETH_DESIGNWARE=y CONFIG_SUN7I_GMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Mele_M9_defconfig b/configs/Mele_M9_defconfig index af89c50ee1..94190499bf 100644 --- a/configs/Mele_M9_defconfig +++ b/configs/Mele_M9_defconfig @@ -16,5 +16,6 @@ CONFIG_AXP_DCDC1_VOLT=3300 CONFIG_AXP_ALDO1_VOLT=3300 CONFIG_AXP_DLDO1_VOLT=3300 CONFIG_AXP_DLDO4_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Mini-X_defconfig b/configs/Mini-X_defconfig index e32935e132..dfaa649e95 100644 --- a/configs/Mini-X_defconfig +++ b/configs/Mini-X_defconfig @@ -10,6 +10,7 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Orangepi_defconfig b/configs/Orangepi_defconfig index 88e55495d5..c347e32927 100644 --- a/configs/Orangepi_defconfig +++ b/configs/Orangepi_defconfig @@ -21,5 +21,6 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_RGMII=y CONFIG_SUN7I_GMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Orangepi_mini_defconfig b/configs/Orangepi_mini_defconfig index 46f27be254..7eeae25010 100644 --- a/configs/Orangepi_mini_defconfig +++ b/configs/Orangepi_mini_defconfig @@ -23,5 +23,6 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_RGMII=y CONFIG_SUN7I_GMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Sinlinx_SinA31s_defconfig b/configs/Sinlinx_SinA31s_defconfig index 9744aef096..0aa02d687c 100644 --- a/configs/Sinlinx_SinA31s_defconfig +++ b/configs/Sinlinx_SinA31s_defconfig @@ -17,5 +17,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-sina31s" CONFIG_ETH_DESIGNWARE=y CONFIG_SUN7I_GMAC=y CONFIG_AXP_DLDO1_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Sinlinx_SinA33_defconfig b/configs/Sinlinx_SinA33_defconfig index 394534b8b5..7f5aaab5fb 100644 --- a/configs/Sinlinx_SinA33_defconfig +++ b/configs/Sinlinx_SinA33_defconfig @@ -19,6 +19,7 @@ CONFIG_CMD_DFU=y # CONFIG_SPL_PARTITION_UUIDS is not set CONFIG_DFU_RAM=y CONFIG_FASTBOOT_CMD_OEM_FORMAT=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Sinovoip_BPI_M2_Plus_defconfig b/configs/Sinovoip_BPI_M2_Plus_defconfig index a325e9f806..b01aa560d2 100644 --- a/configs/Sinovoip_BPI_M2_Plus_defconfig +++ b/configs/Sinovoip_BPI_M2_Plus_defconfig @@ -13,6 +13,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-bananapi-m2-plus" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Sinovoip_BPI_M2_defconfig b/configs/Sinovoip_BPI_M2_defconfig index 65d81a5284..fa42670355 100644 --- a/configs/Sinovoip_BPI_M2_defconfig +++ b/configs/Sinovoip_BPI_M2_defconfig @@ -16,5 +16,6 @@ CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO1_VOLT=3300 CONFIG_AXP_ALDO2_VOLT=1800 CONFIG_AXP_DLDO1_VOLT=3000 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Sinovoip_BPI_M3_defconfig b/configs/Sinovoip_BPI_M3_defconfig index 479dd05dfb..91a3621d77 100644 --- a/configs/Sinovoip_BPI_M3_defconfig +++ b/configs/Sinovoip_BPI_M3_defconfig @@ -23,6 +23,7 @@ CONFIG_CONSOLE_MUX=y CONFIG_AXP_DCDC5_VOLT=1200 CONFIG_AXP_DLDO3_VOLT=2500 CONFIG_AXP_SW_ON=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Wexler_TAB7200_defconfig b/configs/Wexler_TAB7200_defconfig index 9a431ee4cd..d031b05f1a 100644 --- a/configs/Wexler_TAB7200_defconfig +++ b/configs/Wexler_TAB7200_defconfig @@ -17,6 +17,7 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Wobo_i5_defconfig b/configs/Wobo_i5_defconfig index 88ccfd406e..8ae00abcff 100644 --- a/configs/Wobo_i5_defconfig +++ b/configs/Wobo_i5_defconfig @@ -14,5 +14,6 @@ CONFIG_SPL_I2C_SUPPORT=y CONFIG_AXP_ALDO3_VOLT=3300 CONFIG_AXP_ALDO4_VOLT=3300 CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/a64-olinuxino_defconfig b/configs/a64-olinuxino_defconfig index b32df990a0..54f6a98472 100644 --- a/configs/a64-olinuxino_defconfig +++ b/configs/a64-olinuxino_defconfig @@ -10,5 +10,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-olinuxino" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/ba10_tv_box_defconfig b/configs/ba10_tv_box_defconfig index 88199c8e78..b6776e3cb9 100644 --- a/configs/ba10_tv_box_defconfig +++ b/configs/ba10_tv_box_defconfig @@ -14,6 +14,7 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN4I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/bananapi_m1_plus_defconfig b/configs/bananapi_m1_plus_defconfig index 539ed73495..dde7b17229 100644 --- a/configs/bananapi_m1_plus_defconfig +++ b/configs/bananapi_m1_plus_defconfig @@ -19,4 +19,5 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_RGMII=y CONFIG_SUN7I_GMAC=y CONFIG_SCSI=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y diff --git a/configs/bananapi_m64_defconfig b/configs/bananapi_m64_defconfig index 40c1c18aca..df0bbb4db5 100644 --- a/configs/bananapi_m64_defconfig +++ b/configs/bananapi_m64_defconfig @@ -11,6 +11,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-bananapi-m64" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/ga10h_v1_1_defconfig b/configs/ga10h_v1_1_defconfig index 02cc9677aa..4196ad6863 100644 --- a/configs/ga10h_v1_1_defconfig +++ b/configs/ga10h_v1_1_defconfig @@ -22,6 +22,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-a33-ga10h-v1.1" # CONFIG_SPL_EFI_PARTITION is not set CONFIG_AXP_DLDO1_VOLT=3300 CONFIG_CONS_INDEX=5 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/h8_homlet_v2_defconfig b/configs/h8_homlet_v2_defconfig index 80bdb20e8a..380949b1c2 100644 --- a/configs/h8_homlet_v2_defconfig +++ b/configs/h8_homlet_v2_defconfig @@ -15,6 +15,7 @@ CONFIG_CONSOLE_MUX=y # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_AXP_DLDO4_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/i12-tvbox_defconfig b/configs/i12-tvbox_defconfig index a3c4b0e76c..983627afbb 100644 --- a/configs/i12-tvbox_defconfig +++ b/configs/i12-tvbox_defconfig @@ -13,5 +13,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_ETH_DESIGNWARE=y CONFIG_SUN7I_GMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/icnova-a20-swac_defconfig b/configs/icnova-a20-swac_defconfig index 8fca6e81ed..6d6792553e 100644 --- a/configs/icnova-a20-swac_defconfig +++ b/configs/icnova-a20-swac_defconfig @@ -20,5 +20,6 @@ CONFIG_CMD_UNZIP=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_ETH_DESIGNWARE=y CONFIG_SUN7I_GMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/inet1_defconfig b/configs/inet1_defconfig index 100d075960..46f8f3c095 100644 --- a/configs/inet1_defconfig +++ b/configs/inet1_defconfig @@ -18,6 +18,7 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/inet_q972_defconfig b/configs/inet_q972_defconfig index b928622813..9a22499b23 100644 --- a/configs/inet_q972_defconfig +++ b/configs/inet_q972_defconfig @@ -19,6 +19,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-inet-q972" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_AXP_DLDO1_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/jesurun_q5_defconfig b/configs/jesurun_q5_defconfig index 00bb745be2..c0c46a1d4e 100644 --- a/configs/jesurun_q5_defconfig +++ b/configs/jesurun_q5_defconfig @@ -13,6 +13,7 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN4I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_HOST=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/libretech_all_h3_cc_h2_plus_defconfig b/configs/libretech_all_h3_cc_h2_plus_defconfig index 071be93697..ccf0b73ffd 100644 --- a/configs/libretech_all_h3_cc_h2_plus_defconfig +++ b/configs/libretech_all_h3_cc_h2_plus_defconfig @@ -12,5 +12,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-libretech-all-h3-cc" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/libretech_all_h3_cc_h3_defconfig b/configs/libretech_all_h3_cc_h3_defconfig index c20ad9f3a2..159b00ea91 100644 --- a/configs/libretech_all_h3_cc_h3_defconfig +++ b/configs/libretech_all_h3_cc_h3_defconfig @@ -12,5 +12,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-libretech-all-h3-cc" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/libretech_all_h3_cc_h5_defconfig b/configs/libretech_all_h3_cc_h5_defconfig index 5db8dfcd4f..003e2dc0f3 100644 --- a/configs/libretech_all_h3_cc_h5_defconfig +++ b/configs/libretech_all_h3_cc_h5_defconfig @@ -12,5 +12,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-libretech-all-h3-cc" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/mixtile_loftq_defconfig b/configs/mixtile_loftq_defconfig index 79d984ba7b..59321b108d 100644 --- a/configs/mixtile_loftq_defconfig +++ b/configs/mixtile_loftq_defconfig @@ -16,5 +16,6 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_RGMII=y CONFIG_SUN7I_GMAC=y CONFIG_AXP_ALDO1_VOLT=3300 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/mk802_a10s_defconfig b/configs/mk802_a10s_defconfig index 5129b49506..233925ee6e 100644 --- a/configs/mk802_a10s_defconfig +++ b/configs/mk802_a10s_defconfig @@ -13,5 +13,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_AXP152_POWER=y CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/mk802_defconfig b/configs/mk802_defconfig index 81d121fb84..454339a7cf 100644 --- a/configs/mk802_defconfig +++ b/configs/mk802_defconfig @@ -9,5 +9,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-mk802" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUNXI_NO_PMIC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/mk802ii_defconfig b/configs/mk802ii_defconfig index 84ae234fdc..2ce58ca64d 100644 --- a/configs/mk802ii_defconfig +++ b/configs/mk802ii_defconfig @@ -8,5 +8,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/nanopi_a64_defconfig b/configs/nanopi_a64_defconfig index 0a04911c81..091f395db3 100644 --- a/configs/nanopi_a64_defconfig +++ b/configs/nanopi_a64_defconfig @@ -9,5 +9,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-nanopi-a64" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/nanopi_m1_defconfig b/configs/nanopi_m1_defconfig index e0ae3c7c60..8440bd28c9 100644 --- a/configs/nanopi_m1_defconfig +++ b/configs/nanopi_m1_defconfig @@ -10,5 +10,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-m1" # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/nanopi_m1_plus_defconfig b/configs/nanopi_m1_plus_defconfig index ee22364760..3918b7e21e 100644 --- a/configs/nanopi_m1_plus_defconfig +++ b/configs/nanopi_m1_plus_defconfig @@ -12,5 +12,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-nanopi-m1-plus" # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/nanopi_neo2_defconfig b/configs/nanopi_neo2_defconfig index 35058186f5..100f144ed0 100644 --- a/configs/nanopi_neo2_defconfig +++ b/configs/nanopi_neo2_defconfig @@ -10,5 +10,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-nanopi-neo2" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/nanopi_neo_air_defconfig b/configs/nanopi_neo_air_defconfig index f953b71f03..c2659627bc 100644 --- a/configs/nanopi_neo_air_defconfig +++ b/configs/nanopi_neo_air_defconfig @@ -12,5 +12,6 @@ CONFIG_CONSOLE_MUX=y # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/nanopi_neo_defconfig b/configs/nanopi_neo_defconfig index 66919e5a2b..44cd1036dd 100644 --- a/configs/nanopi_neo_defconfig +++ b/configs/nanopi_neo_defconfig @@ -13,5 +13,6 @@ CONFIG_CONSOLE_MUX=y # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/nanopi_neo_plus2_defconfig b/configs/nanopi_neo_plus2_defconfig index 70798a8e9f..bcaf2e5068 100644 --- a/configs/nanopi_neo_plus2_defconfig +++ b/configs/nanopi_neo_plus2_defconfig @@ -12,4 +12,5 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-nanopi-neo-plus2" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y diff --git a/configs/orangepi_2_defconfig b/configs/orangepi_2_defconfig index 577a32255b..e88615c8c6 100644 --- a/configs/orangepi_2_defconfig +++ b/configs/orangepi_2_defconfig @@ -15,5 +15,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y CONFIG_SY8106A_POWER=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_lite_defconfig b/configs/orangepi_lite_defconfig index f3fd864a6d..21b05daf45 100644 --- a/configs/orangepi_lite_defconfig +++ b/configs/orangepi_lite_defconfig @@ -10,5 +10,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-lite" # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_one_defconfig b/configs/orangepi_one_defconfig index 23f4973e5b..4c7f6027ac 100644 --- a/configs/orangepi_one_defconfig +++ b/configs/orangepi_one_defconfig @@ -11,5 +11,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-one" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_pc2_defconfig b/configs/orangepi_pc2_defconfig index ca1e586e89..3dabfeb300 100644 --- a/configs/orangepi_pc2_defconfig +++ b/configs/orangepi_pc2_defconfig @@ -12,6 +12,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-pc2" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_pc_defconfig b/configs/orangepi_pc_defconfig index 134db79e72..083e0eba9b 100644 --- a/configs/orangepi_pc_defconfig +++ b/configs/orangepi_pc_defconfig @@ -13,5 +13,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y CONFIG_SY8106A_POWER=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_pc_plus_defconfig b/configs/orangepi_pc_plus_defconfig index 01c1cd7736..4068afb20e 100644 --- a/configs/orangepi_pc_plus_defconfig +++ b/configs/orangepi_pc_plus_defconfig @@ -14,5 +14,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y CONFIG_SY8106A_POWER=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_plus2e_defconfig b/configs/orangepi_plus2e_defconfig index a6e61a5065..f049d3f8b9 100644 --- a/configs/orangepi_plus2e_defconfig +++ b/configs/orangepi_plus2e_defconfig @@ -15,5 +15,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y CONFIG_SY8106A_POWER=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_plus_defconfig b/configs/orangepi_plus_defconfig index 8e32b0af32..4c1d609760 100644 --- a/configs/orangepi_plus_defconfig +++ b/configs/orangepi_plus_defconfig @@ -17,5 +17,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y CONFIG_SY8106A_POWER=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_prime_defconfig b/configs/orangepi_prime_defconfig index 6161863258..b20835b0d7 100644 --- a/configs/orangepi_prime_defconfig +++ b/configs/orangepi_prime_defconfig @@ -10,6 +10,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-prime" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_r1_defconfig b/configs/orangepi_r1_defconfig index 8e6ee7b2db..289f8d7650 100644 --- a/configs/orangepi_r1_defconfig +++ b/configs/orangepi_r1_defconfig @@ -12,5 +12,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-orangepi-r1" CONFIG_CONSOLE_MUX=y # CONFIG_CMD_FLASH is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_win_defconfig b/configs/orangepi_win_defconfig index d7211b5823..e14faacfaf 100644 --- a/configs/orangepi_win_defconfig +++ b/configs/orangepi_win_defconfig @@ -10,5 +10,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-orangepi-win" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_zero_defconfig b/configs/orangepi_zero_defconfig index 6afd4a3bfa..6f2a64002f 100644 --- a/configs/orangepi_zero_defconfig +++ b/configs/orangepi_zero_defconfig @@ -12,5 +12,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-orangepi-zero" CONFIG_CONSOLE_MUX=y # CONFIG_CMD_FLASH is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_zero_plus2_defconfig b/configs/orangepi_zero_plus2_defconfig index fdb6bb4ed9..95c3d29b85 100644 --- a/configs/orangepi_zero_plus2_defconfig +++ b/configs/orangepi_zero_plus2_defconfig @@ -12,5 +12,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-zero-plus2" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/orangepi_zero_plus_defconfig b/configs/orangepi_zero_plus_defconfig index fc656ce733..cd61b17cd4 100644 --- a/configs/orangepi_zero_plus_defconfig +++ b/configs/orangepi_zero_plus_defconfig @@ -12,5 +12,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-h5-orangepi-zero-plus" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/parrot_r16_defconfig b/configs/parrot_r16_defconfig index 553a8d6572..936f08185f 100644 --- a/configs/parrot_r16_defconfig +++ b/configs/parrot_r16_defconfig @@ -17,6 +17,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-r16-parrot" # CONFIG_SPL_PARTITION_UUIDS is not set CONFIG_FASTBOOT_CMD_OEM_FORMAT=y CONFIG_CONS_INDEX=5 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/pine64_plus_defconfig b/configs/pine64_plus_defconfig index 21ce06f370..c632d24456 100644 --- a/configs/pine64_plus_defconfig +++ b/configs/pine64_plus_defconfig @@ -12,5 +12,6 @@ CONFIG_OF_LIST="sun50i-a64-pine64 sun50i-a64-pine64-plus" CONFIG_PHY_REALTEK=y CONFIG_RTL8211E_PINE64_GIGABIT_FIX=y CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/r7-tv-dongle_defconfig b/configs/r7-tv-dongle_defconfig index 9a66ee90f9..eaf7f4816a 100644 --- a/configs/r7-tv-dongle_defconfig +++ b/configs/r7-tv-dongle_defconfig @@ -12,5 +12,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_SPL_EFI_PARTITION is not set CONFIG_AXP152_POWER=y CONFIG_CONS_INDEX=2 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/sopine_baseboard_defconfig b/configs/sopine_baseboard_defconfig index c79c111b5d..0da899c155 100644 --- a/configs/sopine_baseboard_defconfig +++ b/configs/sopine_baseboard_defconfig @@ -16,5 +16,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-sopine-baseboard" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_SUN8I_EMAC=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/sun8i_a23_evb_defconfig b/configs/sun8i_a23_evb_defconfig index 4cb2798ce7..c32f024cd2 100644 --- a/configs/sun8i_a23_evb_defconfig +++ b/configs/sun8i_a23_evb_defconfig @@ -13,5 +13,6 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-a23-evb" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_CONS_INDEX=5 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/sunxi_Gemei_G9_defconfig b/configs/sunxi_Gemei_G9_defconfig index d88dd4ebad..c42074c0d8 100644 --- a/configs/sunxi_Gemei_G9_defconfig +++ b/configs/sunxi_Gemei_G9_defconfig @@ -15,5 +15,6 @@ CONFIG_SPL_I2C_SUPPORT=y # CONFIG_CMD_FLASH is not set # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/tbs_a711_defconfig b/configs/tbs_a711_defconfig index 5d58f5ceb4..d7d99c4dba 100644 --- a/configs/tbs_a711_defconfig +++ b/configs/tbs_a711_defconfig @@ -18,6 +18,7 @@ CONFIG_DEFAULT_DEVICE_TREE="sun8i-a83t-tbs-a711" # CONFIG_SPL_EFI_PARTITION is not set CONFIG_FASTBOOT_CMD_OEM_FORMAT=y CONFIG_AXP_DCDC5_VOLT=1200 +CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_FUNCTION_MASS_STORAGE=y diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index b4dd005651..60a152704a 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig @@ -191,6 +191,7 @@ config USB_EHCI_GENERIC bool "Support for generic EHCI USB controller" depends on OF_CONTROL depends on DM_USB + default ARCH_SUNXI default n ---help--- Enables support for generic EHCI controller. @@ -221,6 +222,7 @@ config USB_OHCI_GENERIC bool "Support for generic OHCI USB controller" depends on OF_CONTROL depends on DM_USB + default ARCH_SUNXI select USB_HOST ---help--- Enables support for generic OHCI controller. diff --git a/include/configs/sun4i.h b/include/configs/sun4i.h index af079a71ee..6033760583 100644 --- a/include/configs/sun4i.h +++ b/include/configs/sun4i.h @@ -11,10 +11,6 @@ * A10 specific configuration */ -#ifdef CONFIG_USB_EHCI_HCD -#define CONFIG_USB_EHCI_SUNXI -#endif - /* * Include common sunxi configuration where most the settings are */ diff --git a/include/configs/sun50i.h b/include/configs/sun50i.h index 2d73c75b8c..e050a5299f 100644 --- a/include/configs/sun50i.h +++ b/include/configs/sun50i.h @@ -10,11 +10,6 @@ * A64 specific configuration */ -#ifdef CONFIG_USB_EHCI_HCD -#define CONFIG_USB_EHCI_SUNXI -#define CONFIG_USB_MAX_CONTROLLER_COUNT 1 -#endif - #ifndef CONFIG_MACH_SUN50I_H6 #define GICD_BASE 0x1c81000 #define GICC_BASE 0x1c82000 diff --git a/include/configs/sun5i.h b/include/configs/sun5i.h index c3692caa73..ee42af80d4 100644 --- a/include/configs/sun5i.h +++ b/include/configs/sun5i.h @@ -11,10 +11,6 @@ * High Level Configuration Options */ -#ifdef CONFIG_USB_EHCI_HCD -#define CONFIG_USB_EHCI_SUNXI -#endif - /* * Include common sunxi configuration where most the settings are */ diff --git a/include/configs/sun6i.h b/include/configs/sun6i.h index 1523684fad..1e490daac1 100644 --- a/include/configs/sun6i.h +++ b/include/configs/sun6i.h @@ -14,10 +14,6 @@ * A31 specific configuration */ -#ifdef CONFIG_USB_EHCI_HCD -#define CONFIG_USB_EHCI_SUNXI -#endif - #define CONFIG_ARMV7_SECURE_BASE SUNXI_SRAM_B_BASE #define CONFIG_ARMV7_SECURE_MAX_SIZE (64 * 1024) /* 64 KB */ diff --git a/include/configs/sun7i.h b/include/configs/sun7i.h index bb8f217b25..d2fd586672 100644 --- a/include/configs/sun7i.h +++ b/include/configs/sun7i.h @@ -12,10 +12,6 @@ * A20 specific configuration */ -#ifdef CONFIG_USB_EHCI_HCD -#define CONFIG_USB_EHCI_SUNXI -#endif - #define CONFIG_ARMV7_SECURE_BASE SUNXI_SRAM_B_BASE #define CONFIG_ARMV7_SECURE_MAX_SIZE (64 * 1024) /* 64 KB */ diff --git a/include/configs/sun8i.h b/include/configs/sun8i.h index 7dc8693b76..9b4675e4c3 100644 --- a/include/configs/sun8i.h +++ b/include/configs/sun8i.h @@ -12,10 +12,6 @@ * A23 specific configuration */ -#ifdef CONFIG_USB_EHCI_HCD -#define CONFIG_USB_EHCI_SUNXI -#endif - /* * Include common sunxi configuration where most the settings are */ diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h index 93690481a1..f1578d3754 100644 --- a/include/configs/sunxi-common.h +++ b/include/configs/sunxi-common.h @@ -302,7 +302,6 @@ extern int soft_i2c_gpio_scl; #ifdef CONFIG_USB_EHCI_HCD #define CONFIG_USB_OHCI_NEW -#define CONFIG_USB_OHCI_SUNXI #define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 1 #endif From patchwork Sun Aug 19 13:56:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959370 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="V0kGFAG6"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfWk6l8Wz9rvt for ; Mon, 20 Aug 2018 00:31:30 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 846D9C21E16; Sun, 19 Aug 2018 14:05:35 +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 0C2B0C21E44; Sun, 19 Aug 2018 14:01:00 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D45EFC21DFF; Sun, 19 Aug 2018 13:58:50 +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 B3BF0C21E26 for ; Sun, 19 Aug 2018 13:58:43 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id r64-v6so4364082pgr.0 for ; Sun, 19 Aug 2018 06:58:43 -0700 (PDT) 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=vg0rG9SKHwVS6S0duoYkFa44WQkPQ6hAm5gvCEYzfCg=; b=V0kGFAG6T5Thy1J/mqnfW7Kwr6ZIuOzBfh0fBiMETNk4G6Mw293V08fIf6mhUqnIPf 2nXcnQKIQFBgEYYKbUvfQMBptN0FK4uBJ07IIClHe3GMjoq1oKu1+Br2I1V0SiYmMuBT gyr0Gja9Rm18T4O4mnMIwQQadI+owA8s2uDJY= 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=vg0rG9SKHwVS6S0duoYkFa44WQkPQ6hAm5gvCEYzfCg=; b=pq6t5aShmICcCxjUadqjpnl5JVAHFscMTcVMfJkzLewEgJTs8wLvvcPxBeVWFmpCf8 HpwG3r3R9Epx1nsROR0332Eqn4MFi9Yzy3HUsVHJYScmywfnfNkHIr5N/ptg6K0JglEE i3NytmXgQOLK/p4FEj19ohbzxvv0HJDGKcf5b1CrgFja3uA19MrFfkylcuiEkqIsErg4 BhoLeoIJuGYmt9guuQhB5nWHoxS2Gz8XEL5P8p67ONOlLBXL7tQ57CXyMtxZzH2jxvLT 1/Q+xxg/WRDXZnldBWPAl+Sr3XQBkTfO1MfhTm0zS6KI/9xblH11NuYCEmtnORjjEU8i Tx9w== X-Gm-Message-State: AOUpUlGVAt0rsY12aR5b/B26xg2vjyHE1fdx1bOFMWqWSJ2tDAKPqiiL fpgcr/qIWpj7Xot0YsYJ5ZT38WaIVmw= X-Google-Smtp-Source: AA+uWPw2c0T4qOTL+62ezYyH34MtmUF/04aPbVLIJMOoLzRWdj2Eq83Ezy7XVwVnYSCjiZjLuYGmzA== X-Received: by 2002:a62:f587:: with SMTP id b7-v6mr44388463pfm.158.1534687122112; Sun, 19 Aug 2018 06:58:42 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:41 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:34 +0530 Message-Id: <20180819135715.15799-18-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 17/58] usb: host: Drop [e-o]hci-sunxi drivers 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" Now Allwinner platform is all set to use Generic USB controller drivers, so remove the legacy sunxi drivers. Signed-off-by: Jagan Teki --- drivers/usb/host/Makefile | 2 - drivers/usb/host/ehci-sunxi.c | 204 ----------------------------- drivers/usb/host/ohci-sunxi.c | 233 ---------------------------------- scripts/config_whitelist.txt | 2 - 4 files changed, 441 deletions(-) delete mode 100644 drivers/usb/host/ehci-sunxi.c delete mode 100644 drivers/usb/host/ohci-sunxi.c diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile index cb8c315a15..b62fdbb1d2 100644 --- a/drivers/usb/host/Makefile +++ b/drivers/usb/host/Makefile @@ -15,7 +15,6 @@ obj-$(CONFIG_USB_OHCI_DA8XX) += ohci-da8xx.o obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o obj-$(CONFIG_USB_SL811HS) += sl811-hcd.o obj-$(CONFIG_USB_OHCI_EP93XX) += ohci-ep93xx.o -obj-$(CONFIG_USB_OHCI_SUNXI) += ohci-sunxi.o obj-$(CONFIG_USB_OHCI_LPC32XX) += ohci-lpc32xx.o obj-$(CONFIG_USB_OHCI_GENERIC) += ohci-generic.o @@ -37,7 +36,6 @@ obj-$(CONFIG_USB_EHCI_MARVELL) += ehci-marvell.o obj-$(CONFIG_USB_EHCI_MSM) += ehci-msm.o obj-$(CONFIG_USB_EHCI_PCI) += ehci-pci.o obj-$(CONFIG_USB_EHCI_SPEAR) += ehci-spear.o -obj-$(CONFIG_USB_EHCI_SUNXI) += ehci-sunxi.o obj-$(CONFIG_USB_EHCI_TEGRA) += ehci-tegra.o obj-$(CONFIG_USB_EHCI_VCT) += ehci-vct.o obj-$(CONFIG_USB_EHCI_VF) += ehci-vf.o diff --git a/drivers/usb/host/ehci-sunxi.c b/drivers/usb/host/ehci-sunxi.c deleted file mode 100644 index 7a79931a97..0000000000 --- a/drivers/usb/host/ehci-sunxi.c +++ /dev/null @@ -1,204 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * Sunxi ehci glue - * - * Copyright (C) 2015 Hans de Goede - * Copyright (C) 2014 Roman Byshko - * - * Based on code from - * Allwinner Technology Co., Ltd. - */ - -#include -#include -#include -#include -#include "ehci.h" -#include - -#ifdef CONFIG_SUNXI_GEN_SUN4I -#define BASE_DIST 0x8000 -#define AHB_CLK_DIST 2 -#else -#define BASE_DIST 0x1000 -#define AHB_CLK_DIST 1 -#endif - -#define SUN6I_AHB_RESET0_CFG_OFFSET 0x2c0 -#define SUN9I_AHB_RESET0_CFG_OFFSET 0x5a0 - -struct ehci_sunxi_cfg { - bool has_reset; - u32 extra_ahb_gate_mask; - u32 reset0_cfg_offset; -}; - -struct ehci_sunxi_priv { - struct ehci_ctrl ehci; - struct sunxi_ccm_reg *ccm; - u32 *reset0_cfg; - int ahb_gate_mask; /* Mask of ahb_gate0 clk gate bits for this hcd */ - struct phy phy; - const struct ehci_sunxi_cfg *cfg; -}; - -static int ehci_usb_probe(struct udevice *dev) -{ - struct usb_platdata *plat = dev_get_platdata(dev); - struct ehci_sunxi_priv *priv = dev_get_priv(dev); - struct ehci_hccr *hccr = (struct ehci_hccr *)devfdt_get_addr(dev); - struct ehci_hcor *hcor; - int extra_ahb_gate_mask = 0; - u8 reg_mask = 0; - int phys, ret; - - priv->cfg = (const struct ehci_sunxi_cfg *)dev_get_driver_data(dev); - priv->ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; - if (IS_ERR(priv->ccm)) - return PTR_ERR(priv->ccm); - - priv->reset0_cfg = (void *)priv->ccm + - priv->cfg->reset0_cfg_offset; - - phys = dev_count_phandle_with_args(dev, "phys", "#phy-cells"); - if (phys < 0) { - phys = 0; - goto no_phy; - } - - ret = generic_phy_get_by_name(dev, "usb", &priv->phy); - if (ret) { - pr_err("failed to get %s usb PHY\n", dev->name); - return ret; - } - - ret = generic_phy_init(&priv->phy); - if (ret) { - pr_err("failed to init %s USB PHY\n", dev->name); - return ret; - } - - ret = generic_phy_power_on(&priv->phy); - if (ret) { - pr_err("failed to power on %s USB PHY\n", dev->name); - return ret; - } - -no_phy: - /* - * This should go away once we've moved to the driver model for - * clocks resp. phys. - */ - reg_mask = ((uintptr_t)hccr - SUNXI_USB1_BASE) / BASE_DIST; - priv->ahb_gate_mask = 1 << AHB_GATE_OFFSET_USB_EHCI0; - extra_ahb_gate_mask = priv->cfg->extra_ahb_gate_mask; - priv->ahb_gate_mask <<= reg_mask * AHB_CLK_DIST; - extra_ahb_gate_mask <<= reg_mask * AHB_CLK_DIST; - - setbits_le32(&priv->ccm->ahb_gate0, - priv->ahb_gate_mask | extra_ahb_gate_mask); - if (priv->cfg->has_reset) - setbits_le32(priv->reset0_cfg, - priv->ahb_gate_mask | extra_ahb_gate_mask); - - hcor = (struct ehci_hcor *)((uintptr_t)hccr + - HC_LENGTH(ehci_readl(&hccr->cr_capbase))); - - return ehci_register(dev, hccr, hcor, NULL, 0, plat->init_type); -} - -static int ehci_usb_remove(struct udevice *dev) -{ - struct ehci_sunxi_priv *priv = dev_get_priv(dev); - int ret; - - if (generic_phy_valid(&priv->phy)) { - ret = generic_phy_exit(&priv->phy); - if (ret) { - pr_err("failed to exit %s USB PHY\n", dev->name); - return ret; - } - } - - ret = ehci_deregister(dev); - if (ret) - return ret; - - if (priv->cfg->has_reset) - clrbits_le32(priv->reset0_cfg, priv->ahb_gate_mask); - clrbits_le32(&priv->ccm->ahb_gate0, priv->ahb_gate_mask); - - return 0; -} - -static const struct ehci_sunxi_cfg sun4i_a10_cfg = { - .has_reset = false, -}; - -static const struct ehci_sunxi_cfg sun6i_a31_cfg = { - .has_reset = true, - .reset0_cfg_offset = SUN6I_AHB_RESET0_CFG_OFFSET, -}; - -static const struct ehci_sunxi_cfg sun8i_h3_cfg = { - .has_reset = true, - .extra_ahb_gate_mask = 1 << AHB_GATE_OFFSET_USB_OHCI0, - .reset0_cfg_offset = SUN6I_AHB_RESET0_CFG_OFFSET, -}; - -static const struct ehci_sunxi_cfg sun9i_a80_cfg = { - .has_reset = true, - .reset0_cfg_offset = SUN9I_AHB_RESET0_CFG_OFFSET, -}; - -static const struct udevice_id ehci_usb_ids[] = { - { - .compatible = "allwinner,sun4i-a10-ehci", - .data = (ulong)&sun4i_a10_cfg, - }, - { - .compatible = "allwinner,sun5i-a13-ehci", - .data = (ulong)&sun4i_a10_cfg, - }, - { - .compatible = "allwinner,sun6i-a31-ehci", - .data = (ulong)&sun6i_a31_cfg, - }, - { - .compatible = "allwinner,sun7i-a20-ehci", - .data = (ulong)&sun4i_a10_cfg, - }, - { - .compatible = "allwinner,sun8i-a23-ehci", - .data = (ulong)&sun6i_a31_cfg, - }, - { - .compatible = "allwinner,sun8i-a83t-ehci", - .data = (ulong)&sun6i_a31_cfg, - }, - { - .compatible = "allwinner,sun8i-h3-ehci", - .data = (ulong)&sun8i_h3_cfg, - }, - { - .compatible = "allwinner,sun9i-a80-ehci", - .data = (ulong)&sun9i_a80_cfg, - }, - { - .compatible = "allwinner,sun50i-a64-ehci", - .data = (ulong)&sun8i_h3_cfg, - }, - { /* sentinel */ } -}; - -U_BOOT_DRIVER(ehci_sunxi) = { - .name = "ehci_sunxi", - .id = UCLASS_USB, - .of_match = ehci_usb_ids, - .probe = ehci_usb_probe, - .remove = ehci_usb_remove, - .ops = &ehci_usb_ops, - .platdata_auto_alloc_size = sizeof(struct usb_platdata), - .priv_auto_alloc_size = sizeof(struct ehci_sunxi_priv), - .flags = DM_FLAG_ALLOC_PRIV_DMA, -}; diff --git a/drivers/usb/host/ohci-sunxi.c b/drivers/usb/host/ohci-sunxi.c deleted file mode 100644 index bb3c2475df..0000000000 --- a/drivers/usb/host/ohci-sunxi.c +++ /dev/null @@ -1,233 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * Sunxi ohci glue - * - * Copyright (C) 2015 Hans de Goede - * - * Based on code from - * Allwinner Technology Co., Ltd. - */ - -#include -#include -#include -#include -#include -#include "ohci.h" -#include - -#ifdef CONFIG_SUNXI_GEN_SUN4I -#define BASE_DIST 0x8000 -#define AHB_CLK_DIST 2 -#else -#define BASE_DIST 0x1000 -#define AHB_CLK_DIST 1 -#endif - -#define SUN6I_AHB_RESET0_CFG_OFFSET 0x2c0 -#define SUN9I_AHB_RESET0_CFG_OFFSET 0x5a0 - -struct ohci_sunxi_cfg { - bool has_reset; - u32 extra_ahb_gate_mask; - u32 extra_usb_gate_mask; - u32 reset0_cfg_offset; -}; - -struct ohci_sunxi_priv { - ohci_t ohci; - struct sunxi_ccm_reg *ccm; - u32 *reset0_cfg; - int ahb_gate_mask; /* Mask of ahb_gate0 clk gate bits for this hcd */ - int usb_gate_mask; /* Mask of usb_clk_cfg clk gate bits for this hcd */ - struct phy phy; - const struct ohci_sunxi_cfg *cfg; -}; - -static fdt_addr_t last_ohci_addr = 0; - -static int ohci_usb_probe(struct udevice *dev) -{ - struct usb_bus_priv *bus_priv = dev_get_uclass_priv(dev); - struct ohci_sunxi_priv *priv = dev_get_priv(dev); - struct ohci_regs *regs = (struct ohci_regs *)devfdt_get_addr(dev); - int extra_ahb_gate_mask = 0; - u8 reg_mask = 0; - int phys, ret; - - if ((fdt_addr_t)regs > last_ohci_addr) - last_ohci_addr = (fdt_addr_t)regs; - - priv->cfg = (const struct ohci_sunxi_cfg *)dev_get_driver_data(dev); - priv->ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; - if (IS_ERR(priv->ccm)) - return PTR_ERR(priv->ccm); - - priv->reset0_cfg = (void *)priv->ccm + - priv->cfg->reset0_cfg_offset; - - phys = dev_count_phandle_with_args(dev, "phys", "#phy-cells"); - if (phys < 0) { - phys = 0; - goto no_phy; - } - - ret = generic_phy_get_by_name(dev, "usb", &priv->phy); - if (ret) { - pr_err("failed to get %s usb PHY\n", dev->name); - return ret; - } - - ret = generic_phy_init(&priv->phy); - if (ret) { - pr_err("failed to init %s USB PHY\n", dev->name); - return ret; - } - - ret = generic_phy_power_on(&priv->phy); - if (ret) { - pr_err("failed to power on %s USB PHY\n", dev->name); - return ret; - } - -no_phy: - bus_priv->companion = true; - - /* - * This should go away once we've moved to the driver model for - * clocks resp. phys. - */ - reg_mask = ((uintptr_t)regs - (SUNXI_USB1_BASE + 0x400)) / BASE_DIST; - priv->ahb_gate_mask = 1 << AHB_GATE_OFFSET_USB_OHCI0; - extra_ahb_gate_mask = priv->cfg->extra_ahb_gate_mask; - priv->usb_gate_mask = CCM_USB_CTRL_OHCI0_CLK; - priv->ahb_gate_mask <<= reg_mask * AHB_CLK_DIST; - extra_ahb_gate_mask <<= reg_mask * AHB_CLK_DIST; - priv->usb_gate_mask <<= reg_mask; - - setbits_le32(&priv->ccm->ahb_gate0, - priv->ahb_gate_mask | extra_ahb_gate_mask); - setbits_le32(&priv->ccm->usb_clk_cfg, - priv->usb_gate_mask | priv->cfg->extra_usb_gate_mask); - if (priv->cfg->has_reset) - setbits_le32(priv->reset0_cfg, - priv->ahb_gate_mask | extra_ahb_gate_mask); - - return ohci_register(dev, regs); -} - -static int ohci_usb_remove(struct udevice *dev) -{ - struct ohci_sunxi_priv *priv = dev_get_priv(dev); - fdt_addr_t base_addr = devfdt_get_addr(dev); - int ret; - - if (generic_phy_valid(&priv->phy)) { - ret = generic_phy_exit(&priv->phy); - if (ret) { - pr_err("failed to exit %s USB PHY\n", dev->name); - return ret; - } - } - - ret = ohci_deregister(dev); - if (ret) - return ret; - - if (priv->cfg->has_reset) - clrbits_le32(priv->reset0_cfg, priv->ahb_gate_mask); - /* - * On the A64 CLK_USB_OHCI0 is the parent of CLK_USB_OHCI1, so - * we have to wait with bringing down any clock until the last - * OHCI controller is removed. - */ - if (!priv->cfg->extra_usb_gate_mask || base_addr == last_ohci_addr) { - u32 usb_gate_mask = priv->usb_gate_mask; - - usb_gate_mask |= priv->cfg->extra_usb_gate_mask; - clrbits_le32(&priv->ccm->usb_clk_cfg, usb_gate_mask); - } - - clrbits_le32(&priv->ccm->ahb_gate0, priv->ahb_gate_mask); - - return 0; -} - -static const struct ohci_sunxi_cfg sun4i_a10_cfg = { - .has_reset = false, -}; - -static const struct ohci_sunxi_cfg sun6i_a31_cfg = { - .has_reset = true, - .reset0_cfg_offset = SUN6I_AHB_RESET0_CFG_OFFSET, -}; - -static const struct ohci_sunxi_cfg sun8i_h3_cfg = { - .has_reset = true, - .extra_ahb_gate_mask = 1 << AHB_GATE_OFFSET_USB_EHCI0, - .reset0_cfg_offset = SUN6I_AHB_RESET0_CFG_OFFSET, -}; - -static const struct ohci_sunxi_cfg sun9i_a80_cfg = { - .has_reset = true, - .reset0_cfg_offset = SUN9I_AHB_RESET0_CFG_OFFSET, -}; - -static const struct ohci_sunxi_cfg sun50i_a64_cfg = { - .has_reset = true, - .extra_ahb_gate_mask = 1 << AHB_GATE_OFFSET_USB_EHCI0, - .extra_usb_gate_mask = CCM_USB_CTRL_OHCI0_CLK, - .reset0_cfg_offset = SUN6I_AHB_RESET0_CFG_OFFSET, -}; - -static const struct udevice_id ohci_usb_ids[] = { - { - .compatible = "allwinner,sun4i-a10-ohci", - .data = (ulong)&sun4i_a10_cfg, - }, - { - .compatible = "allwinner,sun5i-a13-ohci", - .data = (ulong)&sun4i_a10_cfg, - }, - { - .compatible = "allwinner,sun6i-a31-ohci", - .data = (ulong)&sun6i_a31_cfg, - }, - { - .compatible = "allwinner,sun7i-a20-ohci", - .data = (ulong)&sun4i_a10_cfg, - }, - { - .compatible = "allwinner,sun8i-a23-ohci", - .data = (ulong)&sun6i_a31_cfg, - }, - { - .compatible = "allwinner,sun8i-a83t-ohci", - .data = (ulong)&sun6i_a31_cfg, - }, - { - .compatible = "allwinner,sun8i-h3-ohci", - .data = (ulong)&sun8i_h3_cfg, - }, - { - .compatible = "allwinner,sun9i-a80-ohci", - .data = (ulong)&sun9i_a80_cfg, - }, - { - .compatible = "allwinner,sun50i-a64-ohci", - .data = (ulong)&sun50i_a64_cfg, - }, - { /* sentinel */ } -}; - -U_BOOT_DRIVER(usb_ohci) = { - .name = "ohci_sunxi", - .id = UCLASS_USB, - .of_match = ohci_usb_ids, - .probe = ohci_usb_probe, - .remove = ohci_usb_remove, - .ops = &ohci_usb_ops, - .platdata_auto_alloc_size = sizeof(struct usb_platdata), - .priv_auto_alloc_size = sizeof(struct ohci_sunxi_priv), - .flags = DM_FLAG_ALLOC_PRIV_DMA, -}; diff --git a/scripts/config_whitelist.txt b/scripts/config_whitelist.txt index 0d60da3f28..4cca3d1c73 100644 --- a/scripts/config_whitelist.txt +++ b/scripts/config_whitelist.txt @@ -4611,7 +4611,6 @@ CONFIG_USB_EHCI_MX5 CONFIG_USB_EHCI_MXC CONFIG_USB_EHCI_MXS CONFIG_USB_EHCI_SPEAR -CONFIG_USB_EHCI_SUNXI CONFIG_USB_EHCI_TEGRA CONFIG_USB_EHCI_TXFIFO_THRESH CONFIG_USB_EHCI_VCT @@ -4653,7 +4652,6 @@ CONFIG_USB_OHCI CONFIG_USB_OHCI_EP93XX CONFIG_USB_OHCI_LPC32XX CONFIG_USB_OHCI_NEW -CONFIG_USB_OHCI_SUNXI CONFIG_USB_OTG CONFIG_USB_OTG_BLACKLIST_HUB CONFIG_USB_PHY_CFG_BASE From patchwork Sun Aug 19 13:56:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959385 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="PEPI13wl"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfdY1ZkHz9s0n for ; Mon, 20 Aug 2018 00:36:33 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id D5188C21EB1; Sun, 19 Aug 2018 14:06:57 +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 9DB72C21E4E; Sun, 19 Aug 2018 14:01:20 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 239B5C21E9F; Sun, 19 Aug 2018 13:58:53 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) by lists.denx.de (Postfix) with ESMTPS id 33E39C21C8B for ; Sun, 19 Aug 2018 13:58:48 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id a4-v6so2318207plm.13 for ; Sun, 19 Aug 2018 06:58:48 -0700 (PDT) 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=cuEkYe5unbMN1Bmhz1F4HKzzGmRhG4Jpw3XsSkI4xPg=; b=PEPI13wlHm8svAz+voZjsi90wbLYXje6m4eD7VF4CL93RsEvGzovA3Irkcsu3hiTxY zF8l0lAhuv/fRHXg3h4B7Qnla4TweUA9MUoXWyRJud38lp1iv0kEDausT8kVoYSWQ0wv q2/nGgDLbOG0tEfBpfca/e1bhBZ0+FzLyNK0E= 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=cuEkYe5unbMN1Bmhz1F4HKzzGmRhG4Jpw3XsSkI4xPg=; b=I8TB5lmxGWISj7yoh1e0FdXIxqkvBP6CKsNPV6UCmD0hcvBCnG+S60odlAHiruolGs 6POgbhUFdFVi0xR/bEDGlpGMa/sjCgNS9il0VWnheAVwszDjO5ceQM4sGUQMSDIFT6yk LFY5JnV9p73Rj8eD479gxNxUeawTHs0vqW3zMMO8BZTScDQ67tIXWLYlJi4EmvfUZ8gr xGpsLJJvYp+4M4OYTTLC6RLtSSc8NEhXLZRdXm7uJ6LpduWMMNJfPm+kB7JWA3/gglJp F3aniL0zgHI8/8RbQjTFrRLkSy1ftSsLdGMQe8RBuAEHdX1bPF59RXfDSucL+de/41E9 vYJA== X-Gm-Message-State: AOUpUlE68CPun3rtAjm5+tqKuHr0BtDHZzAC+VebWKpkGM1D1QC35ryM Q/RjEvAwHnTxYtLcNrrlpJ50aw== X-Google-Smtp-Source: AA+uWPzFbtWet9vEH5HVtwd8hms2B7SS83jK/lhT89mxA1c8qqLS86McuPZPf1l9YPMjZjlO/pitXA== X-Received: by 2002:a17:902:6845:: with SMTP id f5-v6mr10904783pln.17.1534687126781; Sun, 19 Aug 2018 06:58:46 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:46 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:35 +0530 Message-Id: <20180819135715.15799-19-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 18/58] clk: sunxi: Implement AHB bus MMC clocks 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" Implement AHB bus MMC clocks for all Allwinner SoC clock drivers via clock map descriptor table. Cc: Jaehoon Chung Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_a10.c | 4 ++++ drivers/clk/sunxi/clk_a10s.c | 3 +++ drivers/clk/sunxi/clk_a23.c | 3 +++ drivers/clk/sunxi/clk_a31.c | 4 ++++ drivers/clk/sunxi/clk_a64.c | 3 +++ drivers/clk/sunxi/clk_a83t.c | 3 +++ drivers/clk/sunxi/clk_h3.c | 3 +++ drivers/clk/sunxi/clk_r40.c | 4 ++++ drivers/clk/sunxi/clk_v3s.c | 3 +++ 9 files changed, 30 insertions(+) diff --git a/drivers/clk/sunxi/clk_a10.c b/drivers/clk/sunxi/clk_a10.c index 7492e1367a..fb11231dd1 100644 --- a/drivers/clk/sunxi/clk_a10.c +++ b/drivers/clk/sunxi/clk_a10.c @@ -18,6 +18,10 @@ static struct ccu_clk_map a10_clks[] = { [CLK_AHB_OHCI0] = { 0x060, BIT(2), NULL }, [CLK_AHB_EHCI1] = { 0x060, BIT(3), NULL }, [CLK_AHB_OHCI1] = { 0x060, BIT(4), NULL }, + [CLK_AHB_MMC0] = { 0x060, BIT(8), NULL }, + [CLK_AHB_MMC1] = { 0x060, BIT(9), NULL }, + [CLK_AHB_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_AHB_MMC3] = { 0x060, BIT(11), NULL }, [CLK_USB_OHCI0] = { 0x0cc, BIT(6), NULL }, [CLK_USB_OHCI1] = { 0x0cc, BIT(7), NULL }, diff --git a/drivers/clk/sunxi/clk_a10s.c b/drivers/clk/sunxi/clk_a10s.c index 976595201f..bc4ae7352b 100644 --- a/drivers/clk/sunxi/clk_a10s.c +++ b/drivers/clk/sunxi/clk_a10s.c @@ -16,6 +16,9 @@ static struct ccu_clk_map a10s_clks[] = { [CLK_AHB_OTG] = { 0x060, BIT(0), NULL }, [CLK_AHB_EHCI] = { 0x060, BIT(1), NULL }, [CLK_AHB_OHCI] = { 0x060, BIT(2), NULL }, + [CLK_AHB_MMC0] = { 0x060, BIT(8), NULL }, + [CLK_AHB_MMC1] = { 0x060, BIT(9), NULL }, + [CLK_AHB_MMC2] = { 0x060, BIT(10), NULL }, [CLK_USB_OHCI] = { 0x0cc, BIT(6), NULL }, [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, diff --git a/drivers/clk/sunxi/clk_a23.c b/drivers/clk/sunxi/clk_a23.c index ec9834e1a8..62770a58fe 100644 --- a/drivers/clk/sunxi/clk_a23.c +++ b/drivers/clk/sunxi/clk_a23.c @@ -13,6 +13,9 @@ #include static struct ccu_clk_map a23_clks[] = { + [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, + [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, + [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, [CLK_BUS_EHCI] = { 0x060, BIT(26), NULL }, [CLK_BUS_OHCI] = { 0x060, BIT(29), NULL }, diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index c6d82be120..f314feff69 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -13,6 +13,10 @@ #include static struct ccu_clk_map a31_clks[] = { + [CLK_AHB1_MMC0] = { 0x060, BIT(8), NULL }, + [CLK_AHB1_MMC1] = { 0x060, BIT(9), NULL }, + [CLK_AHB1_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_AHB1_MMC3] = { 0x060, BIT(12), NULL }, [CLK_AHB1_OTG] = { 0x060, BIT(24), NULL }, [CLK_AHB1_EHCI0] = { 0x060, BIT(26), NULL }, [CLK_AHB1_EHCI1] = { 0x060, BIT(27), NULL }, diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index e5257b62c7..71f3510c74 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -13,6 +13,9 @@ #include static struct ccu_clk_map a64_clks[] = { + [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, + [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, + [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(23), NULL }, [CLK_BUS_EHCI0] = { 0x060, BIT(24), NULL }, [CLK_BUS_EHCI1] = { 0x060, BIT(25), NULL }, diff --git a/drivers/clk/sunxi/clk_a83t.c b/drivers/clk/sunxi/clk_a83t.c index 58d28eb6ad..cc18975a06 100644 --- a/drivers/clk/sunxi/clk_a83t.c +++ b/drivers/clk/sunxi/clk_a83t.c @@ -13,6 +13,9 @@ #include static struct ccu_clk_map a83t_clks[] = { + [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, + [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, + [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, [CLK_BUS_EHCI0] = { 0x060, BIT(26), NULL }, [CLK_BUS_EHCI1] = { 0x060, BIT(27), NULL }, diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index 0b7f4947dd..85dd06ee2d 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -13,6 +13,9 @@ #include static struct ccu_clk_map h3_clks[] = { + [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, + [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, + [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(23), NULL }, [CLK_BUS_EHCI0] = { 0x060, BIT(24), NULL }, [CLK_BUS_EHCI1] = { 0x060, BIT(25), NULL }, diff --git a/drivers/clk/sunxi/clk_r40.c b/drivers/clk/sunxi/clk_r40.c index 746d6734b2..006aa138b6 100644 --- a/drivers/clk/sunxi/clk_r40.c +++ b/drivers/clk/sunxi/clk_r40.c @@ -13,6 +13,10 @@ #include static struct ccu_clk_map r40_clks[] = { + [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, + [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, + [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_BUS_MMC3] = { 0x060, BIT(11), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(25), NULL }, [CLK_BUS_EHCI0] = { 0x060, BIT(26), NULL }, [CLK_BUS_EHCI1] = { 0x060, BIT(27), NULL }, diff --git a/drivers/clk/sunxi/clk_v3s.c b/drivers/clk/sunxi/clk_v3s.c index 2494518798..ab2cc45640 100644 --- a/drivers/clk/sunxi/clk_v3s.c +++ b/drivers/clk/sunxi/clk_v3s.c @@ -13,6 +13,9 @@ #include static struct ccu_clk_map v3s_clks[] = { + [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, + [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, + [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, From patchwork Sun Aug 19 13:56:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959381 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="emIkmpyz"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfbv3ddRz9s0n for ; Mon, 20 Aug 2018 00:35:07 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 073FBC21E7D; Sun, 19 Aug 2018 14:09:37 +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 C34BBC21ECA; Sun, 19 Aug 2018 14:03:00 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4A97DC21E0B; Sun, 19 Aug 2018 13:58:58 +0000 (UTC) Received: from mail-pl0-f67.google.com (mail-pl0-f67.google.com [209.85.160.67]) by lists.denx.de (Postfix) with ESMTPS id C11DFC21E6A for ; Sun, 19 Aug 2018 13:58:52 +0000 (UTC) Received: by mail-pl0-f67.google.com with SMTP id c6-v6so973427pls.4 for ; Sun, 19 Aug 2018 06:58:52 -0700 (PDT) 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=kckSnLt/DulTI9dx/LawiM76vXZHL4U3acQ+ZtO0KEU=; b=emIkmpyz+0AyM/kSscUpalq6+5+UVAE8A+AK2GA4U/knGSLclIlwl3dwLHPmSpuHKi LppM+1dBuQ+e6VozDy9CejZzRu4uxpC/W7W34bcELIHT5S2tSXkzKXICR7QKIl4wnl8m gKVl2mEUVsMemDBuv+2AKoIT5PJ9CLL3U9CJA= 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=kckSnLt/DulTI9dx/LawiM76vXZHL4U3acQ+ZtO0KEU=; b=SYjG6wkkmR24olNUCnW6cVgLvvTW4EE3if1NlreAsYiLfa5Q6yk4nu7H1Ygxapq1RY AXdkux8EuY3jqBlhxYCCMpvEqoreBAe6jZZ3AFbcXKa9ahUTuh/hhkJp701gNAOpOKT8 j8FSQXWbWcZo4TIweF+AwXEjqAPf7ZhMFsRGsdTeqUOwUV3L3/MBv1Wf/QwFsj0y1G9I MY8F8B5XalRAYIXTTGlXJyI2rTe/pouQBLtLQYL0dAAkZJUbRvY6GUZnJ2A/C9666JOJ z/whnmvVRV6rUb02nEcYhC7yZMVbTMlPi34RYAOIHLbpxLIGeLoGUPXfpY1b69+6eznF sUsw== X-Gm-Message-State: AOUpUlEoH7Ie/1MgHIUqaaj7u85MrmqIH6QAqSSK6N2hTSaKT/fWa5nb G2VVAXBD19p3O8ikvaHswLlllQ== X-Google-Smtp-Source: AA+uWPzEctHTJUjLL+afI8I+Iy8EFCTZLMqI9rO1HejZuWF8hb6uAtNuiPcRFZOJTvQgG92RJg+dgQ== X-Received: by 2002:a17:902:a58c:: with SMTP id az12-v6mr12481387plb.339.1534687131264; Sun, 19 Aug 2018 06:58:51 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:50 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:36 +0530 Message-Id: <20180819135715.15799-20-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 19/58] clk: sunxi: Implement direct MMC clocks 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" Implement direct MMC clocks for all Allwinner SoC clock drivers via clock map descriptor table. This includes adding ccu_clk_set_rate function pointer, which indeed support CLK set_rate API, so update clock handling in sunxi_mmc driver to support both no-dm and dm code. Cc: Jaehoon Chung Signed-off-by: Jagan Teki --- arch/arm/include/asm/arch-sunxi/ccu.h | 10 +++++ drivers/clk/sunxi/clk_a10.c | 5 +++ drivers/clk/sunxi/clk_a10s.c | 6 +++ drivers/clk/sunxi/clk_a23.c | 6 +++ drivers/clk/sunxi/clk_a31.c | 5 +++ drivers/clk/sunxi/clk_a64.c | 4 ++ drivers/clk/sunxi/clk_a83t.c | 4 ++ drivers/clk/sunxi/clk_h3.c | 4 ++ drivers/clk/sunxi/clk_r40.c | 4 ++ drivers/clk/sunxi/clk_sunxi.c | 19 +++++++++ drivers/clk/sunxi/clk_v3s.c | 4 ++ drivers/mmc/sunxi_mmc.c | 58 +++++++++++++++++---------- 12 files changed, 107 insertions(+), 22 deletions(-) diff --git a/arch/arm/include/asm/arch-sunxi/ccu.h b/arch/arm/include/asm/arch-sunxi/ccu.h index bacd052ef3..4e30ab330c 100644 --- a/arch/arm/include/asm/arch-sunxi/ccu.h +++ b/arch/arm/include/asm/arch-sunxi/ccu.h @@ -60,6 +60,16 @@ struct sunxi_clk_priv { extern struct clk_ops sunxi_clk_ops; +/** + * mmc_clk_set_rate - mmc clock set rate + * + * @base: clock register base address + * @bit: clock bit value + * @rate: clock input rate in Hz + * @return 0, or -ve error code. + */ +int mmc_clk_set_rate(void *base, u32 bit, ulong rate); + /** * sunxi_reset_bind() - reset binding * diff --git a/drivers/clk/sunxi/clk_a10.c b/drivers/clk/sunxi/clk_a10.c index fb11231dd1..55176bc174 100644 --- a/drivers/clk/sunxi/clk_a10.c +++ b/drivers/clk/sunxi/clk_a10.c @@ -23,6 +23,11 @@ static struct ccu_clk_map a10_clks[] = { [CLK_AHB_MMC2] = { 0x060, BIT(10), NULL }, [CLK_AHB_MMC3] = { 0x060, BIT(11), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC3] = { 0x094, BIT(31), &mmc_clk_set_rate }, + [CLK_USB_OHCI0] = { 0x0cc, BIT(6), NULL }, [CLK_USB_OHCI1] = { 0x0cc, BIT(7), NULL }, [CLK_USB_PHY] = { 0x0cc, BIT(8), NULL }, diff --git a/drivers/clk/sunxi/clk_a10s.c b/drivers/clk/sunxi/clk_a10s.c index bc4ae7352b..fbac0ad751 100644 --- a/drivers/clk/sunxi/clk_a10s.c +++ b/drivers/clk/sunxi/clk_a10s.c @@ -20,6 +20,12 @@ static struct ccu_clk_map a10s_clks[] = { [CLK_AHB_MMC1] = { 0x060, BIT(9), NULL }, [CLK_AHB_MMC2] = { 0x060, BIT(10), NULL }, +#ifdef CONFIG_MMC + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, +#endif + [CLK_USB_OHCI] = { 0x0cc, BIT(6), NULL }, [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, diff --git a/drivers/clk/sunxi/clk_a23.c b/drivers/clk/sunxi/clk_a23.c index 62770a58fe..0b5406c5b3 100644 --- a/drivers/clk/sunxi/clk_a23.c +++ b/drivers/clk/sunxi/clk_a23.c @@ -20,6 +20,12 @@ static struct ccu_clk_map a23_clks[] = { [CLK_BUS_EHCI] = { 0x060, BIT(26), NULL }, [CLK_BUS_OHCI] = { 0x060, BIT(29), NULL }, +#ifdef CONFIG_MMC + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, +#endif + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, [CLK_USB_HSIC] = { 0x0cc, BIT(10), NULL }, diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index f314feff69..3c807bde77 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -24,6 +24,11 @@ static struct ccu_clk_map a31_clks[] = { [CLK_AHB1_OHCI1] = { 0x060, BIT(30), NULL }, [CLK_AHB1_OHCI2] = { 0x060, BIT(31), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC3] = { 0x094, BIT(31), &mmc_clk_set_rate }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, [CLK_USB_PHY2] = { 0x0cc, BIT(10), NULL }, diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index 71f3510c74..62cd6d6464 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -22,6 +22,10 @@ static struct ccu_clk_map a64_clks[] = { [CLK_BUS_OHCI0] = { 0x060, BIT(28), NULL }, [CLK_BUS_OHCI1] = { 0x060, BIT(29), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, [CLK_USB_HSIC] = { 0x0cc, BIT(10), NULL }, diff --git a/drivers/clk/sunxi/clk_a83t.c b/drivers/clk/sunxi/clk_a83t.c index cc18975a06..a2e0ac7a26 100644 --- a/drivers/clk/sunxi/clk_a83t.c +++ b/drivers/clk/sunxi/clk_a83t.c @@ -21,6 +21,10 @@ static struct ccu_clk_map a83t_clks[] = { [CLK_BUS_EHCI1] = { 0x060, BIT(27), NULL }, [CLK_BUS_OHCI0] = { 0x060, BIT(29), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, [CLK_USB_HSIC] = { 0x0cc, BIT(10), NULL }, diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index 85dd06ee2d..f467187c01 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -26,6 +26,10 @@ static struct ccu_clk_map h3_clks[] = { [CLK_BUS_OHCI2] = { 0x060, BIT(30), NULL }, [CLK_BUS_OHCI3] = { 0x060, BIT(31), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, [CLK_USB_PHY2] = { 0x0cc, BIT(10), NULL }, diff --git a/drivers/clk/sunxi/clk_r40.c b/drivers/clk/sunxi/clk_r40.c index 006aa138b6..9273f3b7ea 100644 --- a/drivers/clk/sunxi/clk_r40.c +++ b/drivers/clk/sunxi/clk_r40.c @@ -25,6 +25,10 @@ static struct ccu_clk_map r40_clks[] = { [CLK_BUS_OHCI1] = { 0x060, BIT(30), NULL }, [CLK_BUS_OHCI2] = { 0x060, BIT(31), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC3] = { 0x094, BIT(31), &mmc_clk_set_rate }, [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, diff --git a/drivers/clk/sunxi/clk_sunxi.c b/drivers/clk/sunxi/clk_sunxi.c index 791b1ac7f2..ca147ec9cc 100644 --- a/drivers/clk/sunxi/clk_sunxi.c +++ b/drivers/clk/sunxi/clk_sunxi.c @@ -12,6 +12,24 @@ #include #include +static ulong sunxi_clk_set_rate(struct clk *clk, ulong rate) +{ + struct sunxi_clk_priv *priv = dev_get_priv(clk->dev); + struct ccu_clk_map *map = &priv->desc->clks[clk->id]; + u32 *base; + + if (!map->ccu_clk_set_rate) { + debug("%s (CLK#%ld) unhandled\n", __func__, clk->id); + return 0; + } + + debug("%s(#%ld) off#0x%x, BIT(%d)\n", __func__, + clk->id, map->off, ilog2(map->bit)); + + base = priv->base + map->off; + return map->ccu_clk_set_rate(base, map->bit, rate); +} + static int sunxi_clk_enable(struct clk *clk) { struct sunxi_clk_priv *priv = dev_get_priv(clk->dev); @@ -55,4 +73,5 @@ static int sunxi_clk_disable(struct clk *clk) struct clk_ops sunxi_clk_ops = { .enable = sunxi_clk_enable, .disable = sunxi_clk_disable, + .set_rate = sunxi_clk_set_rate, }; diff --git a/drivers/clk/sunxi/clk_v3s.c b/drivers/clk/sunxi/clk_v3s.c index ab2cc45640..e0d757debe 100644 --- a/drivers/clk/sunxi/clk_v3s.c +++ b/drivers/clk/sunxi/clk_v3s.c @@ -18,6 +18,10 @@ static struct ccu_clk_map v3s_clks[] = { [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, }; diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c index 39f15eb423..bf82014a64 100644 --- a/drivers/mmc/sunxi_mmc.c +++ b/drivers/mmc/sunxi_mmc.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -34,6 +35,8 @@ struct sunxi_mmc_priv { struct mmc_config cfg; }; +bool new_mode; + #if !CONFIG_IS_ENABLED(DM_MMC) /* support 4 mmc hosts */ struct sunxi_mmc_priv mmc_host[4]; @@ -95,23 +98,19 @@ static int mmc_resource_init(int sdc_no) } #endif -static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) +int mmc_clk_set_rate(void *base, u32 bit, ulong rate) { unsigned int pll, pll_hz, div, n, oclk_dly, sclk_dly; - bool new_mode = false; u32 val = 0; - if (IS_ENABLED(CONFIG_MMC_SUNXI_HAS_NEW_MODE) && (priv->mmc_no == 2)) - new_mode = true; - /* * The MMC clock has an extra /2 post-divider when operating in the new * mode. */ if (new_mode) - hz = hz * 2; + rate = rate * 2; - if (hz <= 24000000) { + if (rate <= 24000000) { pll = CCM_MMC_CTRL_OSCM24; pll_hz = 24000000; } else { @@ -127,8 +126,8 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) #endif } - div = pll_hz / hz; - if (pll_hz % hz) + div = pll_hz / rate; + if (pll_hz % rate) div++; n = 0; @@ -138,32 +137,31 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) } if (n > 3) { - printf("mmc %u error cannot set clock to %u\n", priv->mmc_no, - hz); + printf("mmc error cannot set clock to %ld\n", rate); return -1; } /* determine delays */ - if (hz <= 400000) { + if (rate <= 400000) { oclk_dly = 0; sclk_dly = 0; - } else if (hz <= 25000000) { + } else if (rate <= 25000000) { oclk_dly = 0; sclk_dly = 5; #ifdef CONFIG_MACH_SUN9I - } else if (hz <= 52000000) { + } else if (rate <= 52000000) { oclk_dly = 5; sclk_dly = 4; } else { - /* hz > 52000000 */ + /* rate > 52000000 */ oclk_dly = 2; sclk_dly = 4; #else - } else if (hz <= 52000000) { + } else if (rate <= 52000000) { oclk_dly = 3; sclk_dly = 4; } else { - /* hz > 52000000 */ + /* rate > 52000000 */ oclk_dly = 1; sclk_dly = 4; #endif @@ -172,22 +170,35 @@ static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) if (new_mode) { #ifdef CONFIG_MMC_SUNXI_HAS_NEW_MODE val = CCM_MMC_CTRL_MODE_SEL_NEW; - setbits_le32(&priv->reg->ntsr, SUNXI_MMC_NTSR_MODE_SEL_NEW); #endif } else { val = CCM_MMC_CTRL_OCLK_DLY(oclk_dly) | CCM_MMC_CTRL_SCLK_DLY(sclk_dly); } - writel(CCM_MMC_CTRL_ENABLE| pll | CCM_MMC_CTRL_N(n) | - CCM_MMC_CTRL_M(div) | val, priv->mclkreg); + writel(bit | pll | CCM_MMC_CTRL_N(n) | + CCM_MMC_CTRL_M(div) | val, base); - debug("mmc %u set mod-clk req %u parent %u n %u m %u rate %u\n", - priv->mmc_no, hz, pll_hz, 1u << n, div, pll_hz / (1u << n) / div); + debug("mmc set mod-clk req %ld parent %u n %u m %u rate %u\n", + rate, pll_hz, 1u << n, div, pll_hz / (1u << n) / div); return 0; } +static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) +{ +#if CONFIG_IS_ENABLED(DM_MMC) && CONFIG_IS_ENABLED(CLK) +#else + if (IS_ENABLED(CONFIG_MMC_SUNXI_HAS_NEW_MODE) && (priv->mmc_no == 2)) + new_mode = true; + + if (new_mode) + setbits_le32(&priv->reg->ntsr, SUNXI_MMC_NTSR_MODE_SEL_NEW); + + return mmc_clk_set_rate(priv->mclkreg, CCM_MMC_CTRL_ENABLE, hz); +#endif +} + static int mmc_update_clk(struct sunxi_mmc_priv *priv) { unsigned int cmd; @@ -599,6 +610,9 @@ static int sunxi_mmc_probe(struct udevice *dev) cfg->f_min = 400000; cfg->f_max = 52000000; + if (device_is_compatible(dev, "allwinner,sun8i-a83t-emmc")) + new_mode = true; + priv->reg = (void *)dev_read_addr(dev); /* We don't have a sunxi clock driver so find the clock address here */ From patchwork Sun Aug 19 13:56:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959344 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="EPv4NwrF"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfC55T6Rz9ryn for ; Mon, 20 Aug 2018 00:17:05 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 46C31C21DFF; Sun, 19 Aug 2018 14:07:52 +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 2439DC21E08; Sun, 19 Aug 2018 14:02:11 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6DDBDC21E16; Sun, 19 Aug 2018 13:59:00 +0000 (UTC) Received: from mail-pg1-f193.google.com (mail-pg1-f193.google.com [209.85.215.193]) by lists.denx.de (Postfix) with ESMTPS id 214FCC21E57 for ; Sun, 19 Aug 2018 13:58:57 +0000 (UTC) Received: by mail-pg1-f193.google.com with SMTP id v66-v6so4207393pgb.10 for ; Sun, 19 Aug 2018 06:58:57 -0700 (PDT) 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=0mmC8aHZkR73BJRdg16wU0WTbx1sb+ZP6DrLFKfuw6Q=; b=EPv4NwrFmLGuFKF/vPHJEvf9wRNLY/RqZf4cE1+2zjIGw2ChFDZGInPmZ2kFSRJR51 GXtkQhw/0/21nzg2ArvoTijf3flrbGG4egp1OZWDgRF7bWnEfbWVtKfPOrempea1z+2z TTUjQIdUcS/ClqJxtoVau0tXfvikFAbz1yd68= 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=0mmC8aHZkR73BJRdg16wU0WTbx1sb+ZP6DrLFKfuw6Q=; b=BDN5uJDcAy/+E0V79y2XEa6dCfyhQLSD6xx356yn/1AZq1K4lS0shLJeK1bx9RD29k mq0htduvN0he3Oue1qQExAFMvGXY8rozNbokZMxZRSu2W3Wv8dXL0aTqZc7y5dEsh2ei NU4isUxCLz1Z5Pc3Cbe4nBLEbdZNQUPCLb1aszewvwaBeNXzB7BctJ4oJw7U4q1LqT1+ JYadLTZHBNWNqMiVGtVhTSU3h6GR4lSKRWddrSh+ed5Zt4rVhO7SO8E9rCWDnrnHdWtR UUYNql7Yzdeem4Z0G9p/CyvC6mL3cRhngg5VKyNnkvwQ6qZI1zuRCG5kRLULeqrd/Y52 Kclw== X-Gm-Message-State: AOUpUlHQa2HxTowFe5CYifH/pNnhT7ccJHl9dFYmMAe071QukOs5aYiN lqY529fBn39M3hJMratlr6268w== X-Google-Smtp-Source: AA+uWPypGgBBWSeM+eYa1aP6BQtAOFag+HzFZIAfgXyb0Ikcq9hyReYK6w/kLoruvnQy4ZEu4SZRlA== X-Received: by 2002:a62:c90a:: with SMTP id k10-v6mr43610631pfg.180.1534687135714; Sun, 19 Aug 2018 06:58:55 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:55 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:37 +0530 Message-Id: <20180819135715.15799-21-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 20/58] clk: sunxi: Implement AHB bus MMC resets 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" Implement AHB bus MMC resets for all Allwinner SoC clock drivers via reset map descriptor table. Cc: Jaehoon Chung Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_a23.c | 3 +++ drivers/clk/sunxi/clk_a31.c | 4 ++++ drivers/clk/sunxi/clk_a64.c | 3 +++ drivers/clk/sunxi/clk_a83t.c | 3 +++ drivers/clk/sunxi/clk_h3.c | 3 +++ drivers/clk/sunxi/clk_r40.c | 4 ++++ drivers/clk/sunxi/clk_v3s.c | 3 +++ 7 files changed, 23 insertions(+) diff --git a/drivers/clk/sunxi/clk_a23.c b/drivers/clk/sunxi/clk_a23.c index 0b5406c5b3..183c6275f3 100644 --- a/drivers/clk/sunxi/clk_a23.c +++ b/drivers/clk/sunxi/clk_a23.c @@ -38,6 +38,9 @@ static struct ccu_reset_map a23_resets[] = { [RST_USB_PHY1] = { 0x0cc, BIT(1) }, [RST_USB_HSIC] = { 0x0cc, BIT(2) }, + [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, + [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, + [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, [RST_BUS_OTG] = { 0x2c0, BIT(24) }, [RST_BUS_EHCI] = { 0x2c0, BIT(26) }, [RST_BUS_OHCI] = { 0x2c0, BIT(29) }, diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index 3c807bde77..15076d0e72 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -42,6 +42,10 @@ static struct ccu_reset_map a31_resets[] = { [RST_USB_PHY1] = { 0x0cc, BIT(1) }, [RST_USB_PHY2] = { 0x0cc, BIT(2) }, + [RST_AHB1_MMC0] = { 0x2c0, BIT(8) }, + [RST_AHB1_MMC1] = { 0x2c0, BIT(9) }, + [RST_AHB1_MMC2] = { 0x2c0, BIT(10) }, + [RST_AHB1_MMC3] = { 0x2c0, BIT(11) }, [RST_AHB1_OTG] = { 0x2c0, BIT(24) }, [RST_AHB1_EHCI0] = { 0x2c0, BIT(26) }, [RST_AHB1_EHCI1] = { 0x2c0, BIT(27) }, diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index 62cd6d6464..9ef9b606d2 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -39,6 +39,9 @@ static struct ccu_reset_map a64_resets[] = { [RST_USB_PHY1] = { 0x0cc, BIT(1) }, [RST_USB_HSIC] = { 0x0cc, BIT(2) }, + [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, + [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, + [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, [RST_BUS_OTG] = { 0x2c0, BIT(23) }, [RST_BUS_EHCI0] = { 0x2c0, BIT(24) }, [RST_BUS_EHCI1] = { 0x2c0, BIT(25) }, diff --git a/drivers/clk/sunxi/clk_a83t.c b/drivers/clk/sunxi/clk_a83t.c index a2e0ac7a26..47b7672e7f 100644 --- a/drivers/clk/sunxi/clk_a83t.c +++ b/drivers/clk/sunxi/clk_a83t.c @@ -37,6 +37,9 @@ static struct ccu_reset_map a83t_resets[] = { [RST_USB_PHY1] = { 0x0cc, BIT(1) }, [RST_USB_HSIC] = { 0x0cc, BIT(2) }, + [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, + [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, + [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, [RST_BUS_OTG] = { 0x2c0, BIT(24) }, [RST_BUS_EHCI0] = { 0x2c0, BIT(26) }, [RST_BUS_EHCI1] = { 0x2c0, BIT(27) }, diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index f467187c01..ad15aaae67 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -46,6 +46,9 @@ static struct ccu_reset_map h3_resets[] = { [RST_USB_PHY2] = { 0x0cc, BIT(2) }, [RST_USB_PHY3] = { 0x0cc, BIT(3) }, + [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, + [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, + [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, [RST_BUS_OTG] = { 0x2c0, BIT(23) }, [RST_BUS_EHCI0] = { 0x2c0, BIT(24) }, [RST_BUS_EHCI1] = { 0x2c0, BIT(25) }, diff --git a/drivers/clk/sunxi/clk_r40.c b/drivers/clk/sunxi/clk_r40.c index 9273f3b7ea..24c26ad3be 100644 --- a/drivers/clk/sunxi/clk_r40.c +++ b/drivers/clk/sunxi/clk_r40.c @@ -43,6 +43,10 @@ static struct ccu_reset_map r40_resets[] = { [RST_USB_PHY1] = { 0x0cc, BIT(1) }, [RST_USB_PHY2] = { 0x0cc, BIT(2) }, + [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, + [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, + [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, + [RST_BUS_MMC3] = { 0x2c0, BIT(11) }, [RST_BUS_OTG] = { 0x2c0, BIT(25) }, [RST_BUS_EHCI0] = { 0x2c0, BIT(26) }, [RST_BUS_EHCI1] = { 0x2c0, BIT(27) }, diff --git a/drivers/clk/sunxi/clk_v3s.c b/drivers/clk/sunxi/clk_v3s.c index e0d757debe..6eeec201a2 100644 --- a/drivers/clk/sunxi/clk_v3s.c +++ b/drivers/clk/sunxi/clk_v3s.c @@ -28,6 +28,9 @@ static struct ccu_clk_map v3s_clks[] = { static struct ccu_reset_map v3s_resets[] = { [RST_USB_PHY0] = { 0x0cc, BIT(0) }, + [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, + [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, + [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, [RST_BUS_OTG] = { 0x2c0, BIT(24) }, }; From patchwork Sun Aug 19 13:56:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959343 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="QfLp9r27"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tf9L4dw4z9ryn for ; Mon, 20 Aug 2018 00:15:33 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 72B9FC21E2B; Sun, 19 Aug 2018 14:06:06 +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=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 68ED3C21E3E; Sun, 19 Aug 2018 14:01:10 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 9FFBAC21E15; Sun, 19 Aug 2018 13:59:05 +0000 (UTC) Received: from mail-pg1-f178.google.com (mail-pg1-f178.google.com [209.85.215.178]) by lists.denx.de (Postfix) with ESMTPS id 3185FC21E57 for ; Sun, 19 Aug 2018 13:59:01 +0000 (UTC) Received: by mail-pg1-f178.google.com with SMTP id r1-v6so5527496pgp.11 for ; Sun, 19 Aug 2018 06:59:01 -0700 (PDT) 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=lX+0ebNKll/Gl/BIRb/+7b8sGvZR5O2BLpwAhzYRBwc=; b=QfLp9r27pgDYuUQJRICmf0U4VWuhwQLZatFz8WfSNKXxhaTgTfaeE/FjOtq97U4j7N rLFxbvquUZpHNNQ5/iRqth33i9S4xw1uCSzLiOsohT10XI5KgvukqCmjW98ssrYpFu8v x13Cn5gnKV80CXD7oc0PhtvBBqTNeBkAls5/A= 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=lX+0ebNKll/Gl/BIRb/+7b8sGvZR5O2BLpwAhzYRBwc=; b=egIy49JJWOUJhMAWqDOYH/wWkB8zpA9UCiYhixDn4lDCJO25M2sjFRWFV/8u7hgRMn GzE8vV7OUyK6TXjUF5yORRwxkcRiO2FOdBPYMMinkuiYtJNQ/hq7qF/WA+7SKaogt43z XeK37iklwu3QcTc4krBL3odO6kbXmbWbRI6PJR/vGqYb9OK8aJbJbDnvL25mScu0/Yhd UiqH41LDn8Tt0xfTMShSj/szHFvCNOEiMrwn0B/X2fls+V8xBjujlzZV38InU6JN4FOR OcBlFoELWLLbo9/L28aa5qK/yLa9r+XRrVArwsD+6fFA7DG6DijZcPeYuO4hkrunHeW+ 2csw== X-Gm-Message-State: AOUpUlH+nITsk9WSxCmuKs+ch3gXEBHuZcgJz4do+CFz2OBagFSqzkv8 j8A078poLTzv3AJKxuXrbu9dMg== X-Google-Smtp-Source: AA+uWPzvXvq1AWviYlc3yxARqIdZufeDP3A2jMsE9RGyPVxR1UuL9q+hyFt/rc05zFTem4HSKc+TpA== X-Received: by 2002:aa7:800f:: with SMTP id j15-v6mr44114605pfi.174.1534687139754; Sun, 19 Aug 2018 06:58:59 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.58.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:58:59 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:38 +0530 Message-Id: <20180819135715.15799-22-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 21/58] reset: Add get reset by name optionally 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" Reset is an optional for some controllers with some families of CPU's with same SoC where the common IP driver can handle to drive the entire SoC families. optional reset get by name is useful for those drivers to make common way of reset handling. Example, In Allwinner SoC with MMC controllers has no reset for Sun4i, 5i, 7i but reset have reset. Cc: Simon Glass Signed-off-by: Jagan Teki --- drivers/reset/reset-uclass.c | 18 ++++++++++++++++++ include/reset.h | 25 +++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/drivers/reset/reset-uclass.c b/drivers/reset/reset-uclass.c index 99881b8b99..6320efcb49 100644 --- a/drivers/reset/reset-uclass.c +++ b/drivers/reset/reset-uclass.c @@ -138,6 +138,24 @@ int reset_get_by_name(struct udevice *dev, const char *name, return reset_get_by_index(dev, index, reset_ctl); } +int reset_get_by_name_optional(struct udevice *dev, const char *name, + struct reset_ctl *reset_ctl, bool optional) +{ + int index; + + debug("%s(dev=%p, name=%s, reset_ctl=%p)\n", __func__, dev, name, + reset_ctl); + reset_ctl->dev = NULL; + + index = dev_read_stringlist_search(dev, "reset-names", name); + if (index < 0) { + debug("fdt_stringlist_search() failed: %d\n", index); + return optional ? 0 : index; + } + + return reset_get_by_index(dev, index, reset_ctl); +} + int reset_request(struct reset_ctl *reset_ctl) { struct reset_ops *ops = reset_dev_ops(reset_ctl->dev); diff --git a/include/reset.h b/include/reset.h index a7bbc1c331..a5af31f549 100644 --- a/include/reset.h +++ b/include/reset.h @@ -132,6 +132,23 @@ int reset_get_bulk(struct udevice *dev, struct reset_ctl_bulk *bulk); int reset_get_by_name(struct udevice *dev, const char *name, struct reset_ctl *reset_ctl); +/** + * reset_get_by_name_optional - Get/request a reset signal by name optionally. + * + * This look up and requests a reset signal similar to reset_get_by_name() + * but with optional flag. + * + * @dev: The client device. + * @name: The name of the reset signal to request, within the client's + * list of reset signals. + * @reset_ctl: A pointer to a reset control struct to initialize. + * @optional: Optional flag, true if reset is optional, false if reset is + * necessary which is same as reset_get_by_name() + * @return 0 if OK, or a negative error code. + */ +int reset_get_by_name_optional(struct udevice *dev, const char *name, + struct reset_ctl *reset_ctl, bool optional); + /** * reset_request - Request a reset signal. * @@ -254,6 +271,14 @@ static inline int reset_get_by_name(struct udevice *dev, const char *name, return -ENOTSUPP; } +static inline int reset_get_by_name_optional(struct udevice *dev, + const char *name, + struct reset_ctl *reset_ctl, + bool optional) +{ + return -ENOTSUPP; +} + static inline int reset_free(struct reset_ctl *reset_ctl) { return 0; From patchwork Sun Aug 19 13:56:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959339 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="CfJPJnSs"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tf2c2ZN5z9s5c for ; Mon, 20 Aug 2018 00:09:44 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id D45ACC21E38; Sun, 19 Aug 2018 14:07:35 +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 D2805C21E60; Sun, 19 Aug 2018 14:01:55 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AA611C21DFF; Sun, 19 Aug 2018 13:59:09 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id 2959FC21E56 for ; Sun, 19 Aug 2018 13:59:05 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id y10-v6so5482114pfn.8 for ; Sun, 19 Aug 2018 06:59:05 -0700 (PDT) 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=JlcthNcdEQvGgIGvEUxrBH5kL9FTOykLSA3DXlGZ3nM=; b=CfJPJnSs51KX3bpDvwnl4V/DoK0rkAFch1lt6XnjjFsiS4bmTibTRSBFsTT92nH/m3 9jr+eUh5V9+57wlv7IGRRWdIaaXx+ytC9IAzNmJ4gY6CViRgNSXJiBuSWFGwYqa0jVQe uXJD2xM7AGUGw15dSSHxEIjcN9nYZWcMuUna8= 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=JlcthNcdEQvGgIGvEUxrBH5kL9FTOykLSA3DXlGZ3nM=; b=X38901G9DXXu4r7ft0ENtR1N0xywJ7fH+5JwFibqhqaUzcfPpD3mrdItNcR5oE2Ci2 BJKDs3eYVIwAnmszurDTTCVzhrLyT6qUbwlmoz9magXCTfDNVhdKVAhUZAjF7rZODZpG fVw0VlOYX0ws6gq+NmqIS0Y8rr2+VQ2dMBuHk1EmVt4UuDaQkleWP83Fh2t9IukH87pe 7IB4DNikjmWRiQTuQMYI5i0jNjjf66RiKFrWkMQXEGLBfsdHtl3u/AruuOSrycvwKHf3 Eh/2CAeOfw45ad31fjPO0zIZAq311Dkv4MsZNBm+53ZDX+yoUVjrwtMtz7VOrJmQbTia ftPA== X-Gm-Message-State: AOUpUlEXo6Vm6HVDy0/QG1BCt9lPXRSGDdw5hNSdQhh0Yib0QGnvQCAQ 9++pLTxTgw30cf93yhI9i1TLYA== X-Google-Smtp-Source: AA+uWPxs1AmEv8kX855xZBQVY7B+9aWadbiGwuTmZQEqvUSOvsV1qkfVqA5x6T8y3VpQs0e8iwSoFQ== X-Received: by 2002:a63:60c1:: with SMTP id u184-v6mr1500882pgb.266.1534687143786; Sun, 19 Aug 2018 06:59:03 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:03 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:39 +0530 Message-Id: <20180819135715.15799-23-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 22/58] reset: Add reset valid 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" Add reset_valid to check whether given reset is valid or not. Cc: Simon Glass Signed-off-by: Jagan Teki Reviewed-by: Simon Glass --- include/reset.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/include/reset.h b/include/reset.h index a5af31f549..70130bb886 100644 --- a/include/reset.h +++ b/include/reset.h @@ -315,4 +315,15 @@ static inline int reset_release_bulk(struct reset_ctl_bulk *bulk) } #endif +/** + * reset_valid() - check if reset is valid + * + * @reset_ctl: the reset to check + * @return TRUE if valid, or FALSE + */ +static inline bool reset_valid(struct reset_ctl *reset_ctl) +{ + return !!reset_ctl->dev; +} + #endif From patchwork Sun Aug 19 13:56:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959369 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="Mu79smuo"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfWF63hRz9rvt for ; Mon, 20 Aug 2018 00:31:05 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 7A0AEC21E36; Sun, 19 Aug 2018 14:08:44 +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 7C78FC21E73; Sun, 19 Aug 2018 14:02:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 82569C21E35; Sun, 19 Aug 2018 13:59:13 +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 0D379C21E2F for ; Sun, 19 Aug 2018 13:59:09 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id f14-v6so5528015pgv.13 for ; Sun, 19 Aug 2018 06:59:08 -0700 (PDT) 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=OAWGtmjBNtu86IJHOuEwYrQiNepMb8a4snqpzEwcMRs=; b=Mu79smuoxSeM7TlcqOmPJmGHOQQ2h+CRFAxDITqFuGBfV0SlKcaG2KQPfKHqGv5bA4 HmA5O07Hi85l67Spgr8Ld0pU9Ak3PR4ck+2vhV/8rklUb6qskFoWg7jB2XplWtO5Pujb h9jRCCwzTC72VN4giE2cELCM3zSvpUXuSVEhY= 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=OAWGtmjBNtu86IJHOuEwYrQiNepMb8a4snqpzEwcMRs=; b=UXuMtVNU4EoIFYkyE+3Q0jJEj/xYlmqw4G1SIHCYAsg+dtCYYwMbHZY2B+DU4EuL6t aWoY6TUn5B9NmOgCKjRizoyYvsHKM1QG+qQYbr5mcOK4+aAxL6fIVNHf/a/NfT9bUs/o dPVVBQRTwx0dJj+XKVLcYG008/G1UgaJX+IIDIqYhfu+VTmzGPOcMhTQq2m8BkDxDiTJ 6rXyDSD4T5U4EblD4X3ycaE9cUs+8+CFOiKoHzpiuofrYsierF1+Aihrq66cjsWOyAGn GKGVlex73b64egzePeHOl/UJ+vnAQ4ZyCpI6yB1MQYAurYJjUAJSgzDiXH17DAX+gfhA JGUQ== X-Gm-Message-State: AOUpUlHEgd1ujJNMMaLHyTLOV9cOeBjgb3s/oYS2nS4GSFuJW8qzGIiB +dD07haQj25a532iKszvD+lAbA== X-Google-Smtp-Source: AA+uWPwvcZ5u1pAwKCNUGXD+PX0psyEJYqFnaveGFwx5yTdAqQWJf31JfO/tEzenSUkrL/hdmk737w== X-Received: by 2002:a65:4d05:: with SMTP id i5-v6mr39045611pgt.58.1534687147642; Sun, 19 Aug 2018 06:59:07 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:07 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:40 +0530 Message-Id: <20180819135715.15799-24-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 23/58] clk: sunxi: Add Allwinner H6 CLK, RESET driver 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" Add initial clock, reset driver for Allwinner H6. - Implement MMC clocking like AHB bus, MMC clocks via clock map descriptor table. - Implement AHB bus MMC resets via reset map descriptor table. Signed-off-by: Jagan Teki --- drivers/clk/sunxi/Kconfig | 7 ++++ drivers/clk/sunxi/Makefile | 1 + drivers/clk/sunxi/clk_h6.c | 73 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 drivers/clk/sunxi/clk_h6.c diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig index a6f84e9e56..736a61fbc0 100644 --- a/drivers/clk/sunxi/Kconfig +++ b/drivers/clk/sunxi/Kconfig @@ -72,4 +72,11 @@ config CLK_SUN50I_A64 This enables common clock driver support for platforms based on Allwinner A64 SoC. +config CLK_SUN50I_H6 + bool "Clock driver for Allwinner H6" + default MACH_SUN50I_H6 + help + This enables common clock driver support for platforms based + on Allwinner H6 SoC. + endif # CLK_SUNXI diff --git a/drivers/clk/sunxi/Makefile b/drivers/clk/sunxi/Makefile index fbd43527a6..7f8af8f36b 100644 --- a/drivers/clk/sunxi/Makefile +++ b/drivers/clk/sunxi/Makefile @@ -15,3 +15,4 @@ obj-$(CONFIG_CLK_SUN8I_R40) += clk_r40.o obj-$(CONFIG_CLK_SUN8I_V3S) += clk_v3s.o obj-$(CONFIG_CLK_SUN8I_H3) += clk_h3.o obj-$(CONFIG_CLK_SUN50I_A64) += clk_a64.o +obj-$(CONFIG_CLK_SUN50I_H6) += clk_h6.o diff --git a/drivers/clk/sunxi/clk_h6.c b/drivers/clk/sunxi/clk_h6.c new file mode 100644 index 0000000000..1df6aba124 --- /dev/null +++ b/drivers/clk/sunxi/clk_h6.c @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include + +static struct ccu_clk_map h6_clks[] = { + [CLK_MMC0] = { 0x830, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC1] = { 0x834, BIT(31), &mmc_clk_set_rate }, + [CLK_MMC2] = { 0x834, BIT(31), &mmc_clk_set_rate }, + + [CLK_BUS_MMC0] = { 0x84c, BIT(0), NULL }, + [CLK_BUS_MMC1] = { 0x84c, BIT(1), NULL }, + [CLK_BUS_MMC2] = { 0x84c, BIT(2), NULL }, +}; + +static struct ccu_reset_map h6_resets[] = { + [CLK_BUS_MMC0] = { 0x84c, BIT(16) }, + [CLK_BUS_MMC1] = { 0x84c, BIT(17) }, + [CLK_BUS_MMC2] = { 0x84c, BIT(18) }, +}; + +static const struct ccu_desc sun50i_h6_ccu_desc = { + .clks = h6_clks, + .num_clks = ARRAY_SIZE(h6_clks), + + .resets = h6_resets, + .num_resets = ARRAY_SIZE(h6_resets), +}; + +static int h6_clk_probe(struct udevice *dev) +{ + struct sunxi_clk_priv *priv = dev_get_priv(dev); + + priv->base = dev_read_addr_ptr(dev); + if (!priv->base) + return -ENOMEM; + + priv->desc = (const struct ccu_desc *)dev_get_driver_data(dev); + if (!priv->desc) + return -EINVAL; + + return 0; +} + +static int h6_clk_bind(struct udevice *dev) +{ + return sunxi_reset_bind(dev, 62); +} + +static const struct udevice_id h6_clk_ids[] = { + { .compatible = "allwinner,sun50i-h6-ccu", + .data = (ulong)&sun50i_h6_ccu_desc }, + { } +}; + +U_BOOT_DRIVER(clk_sun50i_h6) = { + .name = "sun50i_h6_ccu", + .id = UCLASS_CLK, + .of_match = h6_clk_ids, + .priv_auto_alloc_size = sizeof(struct sunxi_clk_priv), + .ops = &sunxi_clk_ops, + .probe = h6_clk_probe, + .bind = h6_clk_bind, +}; From patchwork Sun Aug 19 13:56:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959367 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="Pj6Mqy4H"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfVc3Vd0z9rvt for ; Mon, 20 Aug 2018 00:30:32 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 1C569C21EC9; Sun, 19 Aug 2018 14:05:16 +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 F0097C21E88; Sun, 19 Aug 2018 14:00:43 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 9BADDC21DD4; Sun, 19 Aug 2018 13:59:17 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id 7011BC21E57 for ; Sun, 19 Aug 2018 13:59:13 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id a26-v6so5492648pfo.4 for ; Sun, 19 Aug 2018 06:59:13 -0700 (PDT) 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=nDkN1IhM56Y+AoLrYQ33y+/eBHD4m13OPJuGo4wqLXs=; b=Pj6Mqy4H9OR6+Rwi25+nfnp6q3c1J/MAJPWV2+H3YcC6Ru34qbL52eqEMsllOyXilC onEpMj1wCkYUWISq4VbEEBBUuUHyBfRVB5aVwsKVq7y3BvG4WfLoQonueLHr72FyZMC/ HMCo8i0ryfhwcp26H/D8swGmf/RAx9zE0Jr0E= 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=nDkN1IhM56Y+AoLrYQ33y+/eBHD4m13OPJuGo4wqLXs=; b=gC3GRC0XqecM87jMgvdZPjfhzUWRPrEjbCXxPu9L1rysW2KuQkMiq3popa3hx2qmQV LuE3bOHtFaJ5GmDoqo3EG/4HtD6Y3xinNKVUutpyMOr5knsMp/fbfYO8f8yeZ31XX2xV zzkgR4BkMdpAg/NGjwtBH4u3QS6aLCLco00FDcHiizf4kCdxZ1Ez+1A/sgO+9jCutFj3 QJqB9+U7KDpoxv47KYH0dLQWojhdAE6aDzC4Wo8LoUI/NPG6dBkWoRXWjdL7SryudI+o Zmt1o1WnE7uqjDqxHQr5FRdS2oBkpQ89GNAUTUbN10Q1lwnGeCXCN8TVKYp3vZ5gz2Ct Y0Fg== X-Gm-Message-State: AOUpUlE2KK0tU27kirqFQ6lmg+snNPFwjQRtY9RM/xY+/bjdSl9jzxvJ rjgIBm8GFmxO4CB3jbRt1y0cig== X-Google-Smtp-Source: AA+uWPzm/yUZsD7WZPfyWvIIIQmbupxaC9BWUv7WWDJYrDeMZCOK/mbPA6zFtUGSSSuJD4GiEPhCKA== X-Received: by 2002:a63:610:: with SMTP id 16-v6mr8102657pgg.96.1534687152034; Sun, 19 Aug 2018 06:59:12 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:11 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:41 +0530 Message-Id: <20180819135715.15799-25-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 24/58] arm64: allwinner: dts: h6: fix Pine H64 MMC bus width 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" Currently the enabled MMC controllers on Pine H64 do not have bus-width set, which make them fall back to 1-bit mode and become quite slow. Fix this by add the corresponding bus-width properties. Same commit is there in mailing-list, but yet to merge, commit fb8971bea0910a3172cd8ce75ccc01b50104ebf7 Author: Icenowy Zheng Date: Thu Jul 26 12:41:27 2018 +0800 arm64: allwinner: dts: h6: fix Pine H64 MMC bus width Cc: Icenowy Zheng Signed-off-by: Jagan Teki --- arch/arm/dts/sun50i-h6-pine-h64.dts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/dts/sun50i-h6-pine-h64.dts b/arch/arm/dts/sun50i-h6-pine-h64.dts index ceffc40810..48daec7f78 100644 --- a/arch/arm/dts/sun50i-h6-pine-h64.dts +++ b/arch/arm/dts/sun50i-h6-pine-h64.dts @@ -46,6 +46,7 @@ pinctrl-0 = <&mmc0_pins>; vmmc-supply = <®_cldo1>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; + bus-width = <4>; status = "okay"; }; @@ -56,6 +57,7 @@ vqmmc-supply = <®_bldo2>; non-removable; cap-mmc-hw-reset; + bus-width = <8>; status = "okay"; }; From patchwork Sun Aug 19 13:56:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959348 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="qKcNfy0W"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfGJ2xN4z9ryn for ; Mon, 20 Aug 2018 00:19:52 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 1EDFAC21E38; Sun, 19 Aug 2018 14:04:57 +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 EBD9EC21E5B; Sun, 19 Aug 2018 14:00:31 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 2E383C21DD9; Sun, 19 Aug 2018 13:59:21 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) by lists.denx.de (Postfix) with ESMTPS id 523CEC21DDC for ; Sun, 19 Aug 2018 13:59:17 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id g1-v6so5831962plo.2 for ; Sun, 19 Aug 2018 06:59:17 -0700 (PDT) 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=+bu+I2nqovPXh54yv9MZUom5zx3Af6oKo6AZjtu+WUY=; b=qKcNfy0W3MatI9sKy3KI2YdmAi31bFko0bk2CxL8KKmIKoRJ3ofbK+lkyL9IOdjQBQ uCTSIEWtV/7/gFipqu1biwue2PwiL/7N+Hx7zGhG7CNesCBw52IJWBJJunuLAsoK0Alu r0EpDyWVdOnjyFIQeW5NxMHLeuMq6CDWOKWN8= 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=+bu+I2nqovPXh54yv9MZUom5zx3Af6oKo6AZjtu+WUY=; b=dcbeMQUafl+C0RFygA4KQCjzQPnEeWkEf4T+SAmHik04rSPRBX8FL9nmH2FJu6I9ee zDEYOGft4qALajia2HrpdOyfSLBuci3YmDmumdB1/jNt+yl4iRmeFXZvwAtHqpFvkP7w UF4ntOl6+yvecmf0u8Ac8J1bXG302jjJO8h/tO9Ed3qaDs2tkRVkiu+reL6CuNtFlw8X GJskFYDT9VpJbHzC21Ta2Qp4CGm0xB717giqpsZpxU7DdvQ6+Ix70UPC7qJKmucpVgkQ vCJQ9tACTYoYCezOkEbjE54vzFX8LzI/kWd1Wp/xJULIjBKweTMhtITuMwvvhjpFtfKW 8FGg== X-Gm-Message-State: AOUpUlGVYUbcFdbkkKjgpzJZQyVkAIud9kDNb9UoocHfq2XjskFhS4sq z6SqTwp/B/D0W8qVlEvR1hjSrA== X-Google-Smtp-Source: AA+uWPypYvXLcV8iIDotANH6M36Ap/X7eeNnRzX3V/LQ5L/a9i9u4a3/T0DgEVL8Q/Ty11Px5jQs1g== X-Received: by 2002:a17:902:b595:: with SMTP id a21-v6mr41551817pls.23.1534687155979; Sun, 19 Aug 2018 06:59:15 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:15 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:42 +0530 Message-Id: <20180819135715.15799-26-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 25/58] sunxi: h6: Enable CLK, RESET 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" Enable clock and reset drivers for Allwinner H6 SoC. Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index dce81b7d53..da7f6b1e95 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -303,6 +303,7 @@ config MACH_SUN50I_H5 config MACH_SUN50I_H6 bool "sun50i (Allwinner H6)" select ARM64 + select CLK select SUPPORT_SPL select FIT select SPL_LOAD_FIT From patchwork Sun Aug 19 13:56:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959336 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="nGyUqB1d"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tf0P02bSz9s4c for ; Mon, 20 Aug 2018 00:07:48 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 6A4B1C21DFA; Sun, 19 Aug 2018 14:06:24 +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 5D619C21E26; Sun, 19 Aug 2018 14:01:17 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B4539C21E2B; Sun, 19 Aug 2018 13:59:27 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) by lists.denx.de (Postfix) with ESMTPS id 4E978C21E4F for ; Sun, 19 Aug 2018 13:59:22 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id f6-v6so5831335plo.1 for ; Sun, 19 Aug 2018 06:59:22 -0700 (PDT) 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=RRRpDXn+F7sNThQpONFc1NL0WvGaVsEKqlgB+XR4NJ8=; b=nGyUqB1dvpc/Rs5c22VY8pzyXFNGvglGtKyuq/jM0oVGHmBs5AVFfbBamGBgt0utLY MNeCIhavHHr44qCFbFZ6wdHz3JxhiHEAAY6WfaYqWOLfDMuNWa/qJ33ncaSiwlnT3boD GVD/VHkG1h5TvTQnK0rDBsiqrEKLiIycCaPSU= 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=RRRpDXn+F7sNThQpONFc1NL0WvGaVsEKqlgB+XR4NJ8=; b=QiT5AgOobCYNc0DBTsGVljPC/sqPaLRmx2nXtL5KQvz+kVUfqkJ/+cCYVVaciEEyl5 pFdiJYzaHW+ASckoGjZ6rEySRjY4aTw8DEYEm5ZlL1ssdFH018zRiTeLqkDytT7Zrk0G YHBIYo3j7liSPMJW2uKAw4QkxtQeBsm/nvooxIg/Zo3vZALH+hQJo/rUcRkl9IJZwLs3 VhyREDsOlj0+k/oj2aDoCyjIGl2zrhOWp73EYJ/AushUJJTtkOzpJipCqzTRNCLkwgoY rP5b0e0WB9VrjbDrr/05IW217A5a+dHnnKzXN+aLgT2/VESYgOf7OiJkRK13aP7eXQnD AthA== X-Gm-Message-State: AOUpUlGzAdSLq4Nuelz65h522n/oDaM+MbBIwi1lwyNBbRT0BBCXnfZU 4zbpP3Gop3OdBVtKjyUNhbh2BA== X-Google-Smtp-Source: AA+uWPyJMqUiSSWS8Ygn4lZp9NfJ7HYAVOAoy66aRybmGOeQMDSwv3/pTvmbkvKDmdI9JvxY66PiTg== X-Received: by 2002:a17:902:a716:: with SMTP id w22-v6mr41639707plq.334.1534687160895; Sun, 19 Aug 2018 06:59:20 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:20 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:43 +0530 Message-Id: <20180819135715.15799-27-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 26/58] dm: mmc: sunxi: Add CLK and RESET support 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" Now CLK and RESET driver for Allwinner SoC are available, so add the relevant operations on mmc sunxi driver. Cc: Jaehoon Chung Signed-off-by: Jagan Teki --- drivers/mmc/sunxi_mmc.c | 60 +++++++++++++++++++++++++++++++---------- 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c index bf82014a64..3011ec9498 100644 --- a/drivers/mmc/sunxi_mmc.c +++ b/drivers/mmc/sunxi_mmc.c @@ -8,10 +8,12 @@ */ #include +#include #include #include #include #include +#include #include #include #include @@ -26,8 +28,12 @@ struct sunxi_mmc_plat { }; struct sunxi_mmc_priv { +#if CONFIG_IS_ENABLED(DM_MMC) && CONFIG_IS_ENABLED(CLK) + struct clk mmc_clk; +#else unsigned mmc_no; uint32_t *mclkreg; +#endif unsigned fatal_err; struct gpio_desc cd_gpio; /* Change Detect GPIO */ int cd_inverted; /* Inverted Card Detect */ @@ -188,6 +194,15 @@ int mmc_clk_set_rate(void *base, u32 bit, ulong rate) static int mmc_set_mod_clk(struct sunxi_mmc_priv *priv, unsigned int hz) { #if CONFIG_IS_ENABLED(DM_MMC) && CONFIG_IS_ENABLED(CLK) + int ret; + + ret = clk_set_rate(&priv->mmc_clk, hz); + if (ret) { + dev_err(dev, "failed to set rate for mmc_clk\n"); + return ret; + } + + return ret; #else if (IS_ENABLED(CONFIG_MMC_SUNXI_HAS_NEW_MODE) && (priv->mmc_no == 2)) new_mode = true; @@ -379,7 +394,7 @@ static int sunxi_mmc_send_cmd_common(struct sunxi_mmc_priv *priv, writel(data->blocks * data->blocksize, &priv->reg->bytecnt); } - debug("mmc %d, cmd %d(0x%08x), arg 0x%08x\n", priv->mmc_no, + debug("mmc cmd %d(0x%08x), arg 0x%08x\n", cmd->cmdidx, cmdval | cmd->cmdidx, cmd->cmdarg); writel(cmd->cmdarg, &priv->reg->arg); @@ -591,8 +606,8 @@ static int sunxi_mmc_probe(struct udevice *dev) struct sunxi_mmc_plat *plat = dev_get_platdata(dev); struct sunxi_mmc_priv *priv = dev_get_priv(dev); struct mmc_config *cfg = &plat->cfg; - struct ofnode_phandle_args args; - u32 *gate_reg; + struct clk ahb_clk; + struct reset_ctl reset; int bus_width, ret; cfg->name = dev->name; @@ -615,20 +630,37 @@ static int sunxi_mmc_probe(struct udevice *dev) priv->reg = (void *)dev_read_addr(dev); - /* We don't have a sunxi clock driver so find the clock address here */ - ret = dev_read_phandle_with_args(dev, "clocks", "#clock-cells", 0, - 1, &args); - if (ret) + ret = clk_get_by_name(dev, "ahb", &ahb_clk); + if (ret) { + dev_err(dev, "falied to get ahb clock\n"); return ret; - priv->mclkreg = (u32 *)ofnode_get_addr(args.node); + } - ret = dev_read_phandle_with_args(dev, "clocks", "#clock-cells", 0, - 0, &args); - if (ret) + ret = clk_get_by_name(dev, "mmc", &priv->mmc_clk); + if (ret) { + dev_err(dev, "falied to get mmc clock\n"); return ret; - gate_reg = (u32 *)ofnode_get_addr(args.node); - setbits_le32(gate_reg, 1 << args.args[0]); - priv->mmc_no = args.args[0] - 8; + } + + ret = reset_get_by_name_optional(dev, "ahb", &reset, true); + if (ret) { + dev_err(dev, "falied to get ahb reset\n"); + return ret; + } + + ret = clk_enable(&ahb_clk); + if (ret) { + dev_err(dev, "failed to enable ahb clock\n"); + return ret; + } + + if (reset_valid(&reset)) { + ret = reset_deassert(&reset); + if (ret) { + dev_err(dev, "failed to deassert ahb reset\n"); + return ret; + } + } ret = mmc_set_mod_clk(priv, 24000000); if (ret) From patchwork Sun Aug 19 13:56:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959357 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="C3zV8cBc"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfNY3DwXz9s3Z for ; Mon, 20 Aug 2018 00:25:17 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 133AFC21E5B; Sun, 19 Aug 2018 14:14:28 +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 1DC42C21DFD; Sun, 19 Aug 2018 14:07:03 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E6613C21E42; Sun, 19 Aug 2018 13:59:34 +0000 (UTC) Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by lists.denx.de (Postfix) with ESMTPS id B0A11C21E74 for ; Sun, 19 Aug 2018 13:59:26 +0000 (UTC) Received: by mail-pf1-f194.google.com with SMTP id d4-v6so5501828pfn.0 for ; Sun, 19 Aug 2018 06:59:26 -0700 (PDT) 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=NYrit3XnY+w4HTmy6nb514pTNQsmF1ZI2Ir2k7IeEp4=; b=C3zV8cBcdlu30Oz0Swul/CzfV61+v6nD/VDmopArZyk6DdsedT6ULQHY7itswWqok8 BvA2JQgx+004+nN9Cxpgdy5aQdOrhKHlcDZewDmRlMm5RRFLS3/pwLOBUg8K9I2icKUm GV2jkwLLoI/HJbkyPwq+28hGZd8ocuOhMVM6o= 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=NYrit3XnY+w4HTmy6nb514pTNQsmF1ZI2Ir2k7IeEp4=; b=rMp9vNxwoIyUqd/YxW4+gEZVe1fE5HcwSHq9VneYnkAVzWc3tENqGC18C0H3120NKM 6+AN+T6cxdh3dTmMuCK2jtZRPvOuzEZDqQoS6HMnZITCLIg2UngpDEmFISSWNzVfTTXX FzXESGL7w0r7U4JDU74JNqIhcLtk1v4Pf4mQtNYwTuhJny1tu2RpXbIX0vtCvd6+voHB eMplWOWwAjLdS50cB/DxyPMrD6L30A9uB75Hsnhe92n4olHngFLQu51yns2FLbNvL+eM akWeqZqCtQO7pLWAIojhOIZCS1HfpHGegZHcD7mh+0Bk/yJJUeOgK4ZBhYezscSgdgmu q0Mw== X-Gm-Message-State: AOUpUlFeIlIQdjgM1oXD/QcuAaB0zaD1MEfvjPtpdKMzUJCTdVQLqZh5 NxxvKWKBkxByDfjVUmP5Np2sbQ== X-Google-Smtp-Source: AA+uWPxCW3z//rJS3huDdXdXAizKEDphcK3Z83u1n9Bfh0U+4wfSN/PYmGpJObvKRCxtw+wZvQCstg== X-Received: by 2002:a65:6645:: with SMTP id z5-v6mr2055673pgv.186.1534687165317; Sun, 19 Aug 2018 06:59:25 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:24 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:44 +0530 Message-Id: <20180819135715.15799-28-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Olliver Schinagl , Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 27/58] fastboot: sunxi: Update fastboot mmc default device 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" Usually eMMC is default mmc device for fastboot. By enabling DM_MMC, the mmc devices are probed as per DT status not with respect to MMC_SUNXI_SLOT_EXTRA in U-Boot proper. Allwinner SoC has maximum of 4 mmc controllers start from mmc0...mmc3 on which mmc2 can be used an eMMC controller eventhough mmc3 some boards used as eMMC. So, update the default fastboot device as 2 to make the standard usage irrespective of DT node status. Other corner cases like different device usage, or specific mmc node status is not enabled in order in DTS must explicitly add config on the specific defconfig file. Cc: Olliver Schinagl Cc: Chen-Yu Tsai Signed-off-by: Jagan Teki --- configs/A20-OLinuXino-Lime2-eMMC_defconfig | 1 + configs/A20-Olimex-SOM204-EVB-eMMC_defconfig | 1 + configs/Sinlinx_SinA33_defconfig | 1 + configs/amarula_a64_relic_defconfig | 1 + configs/parrot_r16_defconfig | 1 + drivers/fastboot/Kconfig | 3 +-- 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/configs/A20-OLinuXino-Lime2-eMMC_defconfig b/configs/A20-OLinuXino-Lime2-eMMC_defconfig index 2851a461e8..8cedf9cf24 100644 --- a/configs/A20-OLinuXino-Lime2-eMMC_defconfig +++ b/configs/A20-OLinuXino-Lime2-eMMC_defconfig @@ -30,4 +30,5 @@ CONFIG_SCSI=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=1 CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/A20-Olimex-SOM204-EVB-eMMC_defconfig b/configs/A20-Olimex-SOM204-EVB-eMMC_defconfig index 3bb8c4c7e6..c96d7ada7c 100644 --- a/configs/A20-Olimex-SOM204-EVB-eMMC_defconfig +++ b/configs/A20-Olimex-SOM204-EVB-eMMC_defconfig @@ -30,4 +30,5 @@ CONFIG_AXP_ALDO4_VOLT=2800 CONFIG_SCSI=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=1 CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/Sinlinx_SinA33_defconfig b/configs/Sinlinx_SinA33_defconfig index 7f5aaab5fb..80741b58f9 100644 --- a/configs/Sinlinx_SinA33_defconfig +++ b/configs/Sinlinx_SinA33_defconfig @@ -22,5 +22,6 @@ CONFIG_FASTBOOT_CMD_OEM_FORMAT=y CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=1 CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y CONFIG_USB_FUNCTION_MASS_STORAGE=y diff --git a/configs/amarula_a64_relic_defconfig b/configs/amarula_a64_relic_defconfig index b72cbfabc6..caeb3f6008 100644 --- a/configs/amarula_a64_relic_defconfig +++ b/configs/amarula_a64_relic_defconfig @@ -12,4 +12,5 @@ CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-amarula-relic" # CONFIG_SPL_DOS_PARTITION is not set # CONFIG_SPL_EFI_PARTITION is not set CONFIG_USB_MUSB_GADGET=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=0 CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y diff --git a/configs/parrot_r16_defconfig b/configs/parrot_r16_defconfig index 936f08185f..242886f78e 100644 --- a/configs/parrot_r16_defconfig +++ b/configs/parrot_r16_defconfig @@ -20,5 +20,6 @@ CONFIG_CONS_INDEX=5 CONFIG_USB_OHCI_HCD=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_MUSB_GADGET=y +CONFIG_FASTBOOT_FLASH_MMC_DEV=1 CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y CONFIG_USB_FUNCTION_MASS_STORAGE=y diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig index bc25ea1d9c..0e4b50e1cf 100644 --- a/drivers/fastboot/Kconfig +++ b/drivers/fastboot/Kconfig @@ -87,8 +87,7 @@ endchoice config FASTBOOT_FLASH_MMC_DEV int "Define FASTBOOT MMC FLASH default device" depends on FASTBOOT_FLASH_MMC - default 0 if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA = -1 - default 1 if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA != -1 + default 2 if ARCH_SUNXI help The fastboot "flash" command requires additional information regarding the non-volatile storage device. Define this to From patchwork Sun Aug 19 13:56:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959390 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="bTr1MhSo"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfhz5f94z9s3Z for ; Mon, 20 Aug 2018 00:39:31 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 7C4CEC21ED6; Sun, 19 Aug 2018 14:17: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=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 ECEBBC21E7E; Sun, 19 Aug 2018 14:13:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E6ED7C21C8B; Sun, 19 Aug 2018 13:59:36 +0000 (UTC) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by lists.denx.de (Postfix) with ESMTPS id ED2AAC21E2B for ; Sun, 19 Aug 2018 13:59:30 +0000 (UTC) Received: by mail-pf1-f193.google.com with SMTP id k19-v6so5497994pfi.1 for ; Sun, 19 Aug 2018 06:59:30 -0700 (PDT) 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=D1Vj6zhWHMk6x6ByKk7j+zEwfWHS6oBExdUzbejmX4c=; b=bTr1MhSouVuY5sK7vQq2hIM/rLaBO9p+c2AZNDQo/ZyVD6KQJH0HgsU72j6yk6kXly bH/xH8tbNC4L0oEUzLciQnwlfp+VgOurM7GGlo6lr1OAhkZyo1pXT2yYoWDyHZQ27GaD u7Mru75vmNvi+jeXI04PeRXNeJVBnDEc0hiv0= 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=D1Vj6zhWHMk6x6ByKk7j+zEwfWHS6oBExdUzbejmX4c=; b=H6/Uu/XcrgaMAXpsEw430RcPx1yYenGX3MvUZkv9F33h1Cq/Y+MeoCtClM/NmaBfID z43oivPKfqp0JQxvEzMsURAxmmYOBpWQAqbFfNbyFszzXHLcuiCJIC+jmDmpxREtKSR0 7IctvmIbcDoAVD5Oa5Bv09fI9XXGXDbKktDTu1dXn8hrKlB/eQK/QTd3fmndBwfSgFbm qsrDFND1ZwcloU5BBzgVift/5mDjIHqp+V1I4Bu5fxR5n45KbI2FYO+QwzV8Q0Ff/Wtn 7V1cP2hUPCOCkF6GLJaune764FJlOFQvey/3iBzcJE8gGWTfes5O+DuVzYyab8pG7D3K Kj/Q== X-Gm-Message-State: AOUpUlGY0AJKzIGZKS4eDDp3kJMRSjDHGxARcvXLHbCt6DzgtrSTLnIk 59VK8a9X6Cyic0hXSS017Yf5DQ== X-Google-Smtp-Source: AA+uWPyPEfKMeQZsVHFubR3ps1Zi0UfTcMVqlZ7CAYiwvI3M+N7OcHdxDTFuPJLVpVB32hZx9BWnvg== X-Received: by 2002:aa7:86d7:: with SMTP id h23-v6mr44127302pfo.132.1534687169592; Sun, 19 Aug 2018 06:59:29 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:29 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:45 +0530 Message-Id: <20180819135715.15799-29-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 28/58] env: fat: Add func to get fat device, partition 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" Get a fat device and partition for multiple families of same SoC type can be difficult to handle with static CONFIG_ENV_FAT_DEVICE_AND_PART via Kconfig. So, add a generic weak function to get the device, partition and give relevant users to define their own logic to setup fat device and partition. Signed-off-by: Jagan Teki --- env/fat.c | 9 +++++++-- include/fat.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/env/fat.c b/env/fat.c index 7f74c64dfe..2147cc0326 100644 --- a/env/fat.c +++ b/env/fat.c @@ -30,6 +30,11 @@ # endif #endif +__weak char *get_env_fat_dev_part(void) +{ + return CONFIG_ENV_FAT_DEVICE_AND_PART; +} + #ifdef CMD_SAVEENV static int env_fat_save(void) { @@ -45,7 +50,7 @@ static int env_fat_save(void) return err; part = blk_get_device_part_str(CONFIG_ENV_FAT_INTERFACE, - CONFIG_ENV_FAT_DEVICE_AND_PART, + get_env_fat_dev_part(), &dev_desc, &info, 1); if (part < 0) return 1; @@ -92,7 +97,7 @@ static int env_fat_load(void) #endif part = blk_get_device_part_str(CONFIG_ENV_FAT_INTERFACE, - CONFIG_ENV_FAT_DEVICE_AND_PART, + get_env_fat_dev_part(), &dev_desc, &info, 1); if (part < 0) goto err_env_relocate; diff --git a/include/fat.h b/include/fat.h index 09e1423685..0552fa54b5 100644 --- a/include/fat.h +++ b/include/fat.h @@ -185,6 +185,7 @@ static inline u32 sect_to_clust(fsdata *fsdata, int sect) return (sect - fsdata->data_begin) / fsdata->clust_size; } +char *get_env_fat_dev_part(void); int file_fat_detectfs(void); int fat_exists(const char *filename); int fat_size(const char *filename, loff_t *size); From patchwork Sun Aug 19 13:56:46 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959374 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="F2S71seQ"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfY81v8Cz9rvt for ; Mon, 20 Aug 2018 00:32:43 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id ADEF5C21E2B; Sun, 19 Aug 2018 14:18:16 +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 14EF8C21E2B; Sun, 19 Aug 2018 14:15:54 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A6189C21DF3; Sun, 19 Aug 2018 13:59:39 +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 F20F2C21E1A for ; Sun, 19 Aug 2018 13:59:34 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id z4-v6so549268pgv.2 for ; Sun, 19 Aug 2018 06:59:34 -0700 (PDT) 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=R79XfenVjKmp/wrikh9LWSrWDFB3LOvrFz8ZR+uM52A=; b=F2S71seQCb0HYluF/urSprdSNi7KKS9OXZtMej+Cf01NivygPyZpLtp3AO283WvHyu YN5U8kd72xPq71ccOeoZ1mqV9Y8OOuQ1aSDYi+Ayrj6tvURhkZK1vszRQVRDIJtX3kzV iNmFB8hc4NHFeOB66dZUQQisHFYhrQtXZKj2s= 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=R79XfenVjKmp/wrikh9LWSrWDFB3LOvrFz8ZR+uM52A=; b=TuhwqXXLIJ2FOEF0BgmEYrAiyfSkfgePjFClItisZCZEboK81Ciq5xw7+tdf/NGADn sDrcO8Uum/C8e7gxUVHhJoUKYleeLQwGFrMxfKky4NIxHPUiNnSlBeJXaqYFO+Ioujhd 1hQiZZYLEJDg6/W5YPTwqEs2ZZlut8XHwNkyHWbSnolR/1QQXKFW5rFicfqqn9W7p13v Fc20pW5sTmx85Hj+hJoyW2hcAM3yzj8XNuX5sthjL3eJULAjUMhCq65txOjH0M02zQsy CweD2tYXvFJrHM5ByWhQBHvTh2FVQOkwuyMzIrN8wtEw0WlniyxfxB7bmZzmbLnhkqbW EMtw== X-Gm-Message-State: AOUpUlGVXmEplCyGyCkyyjPzOYSoQjvGcInxALh7+5gkCK+JSik0Zy1L Fl/0D7DKPF6VGZpPCJgAkGkbQQ== X-Google-Smtp-Source: AA+uWPzKejgQltnNuNglk0UgA20WoRMJpk7q7QXdPSlpBZYO2lkKKhahdtQJH60dB5MR4xiQr7fNcg== X-Received: by 2002:a62:d74f:: with SMTP id v15-v6mr12710180pfl.257.1534687173614; Sun, 19 Aug 2018 06:59:33 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:33 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:46 +0530 Message-Id: <20180819135715.15799-30-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 29/58] sunxi: Get fat device wrt boot device, 'auto' partition 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" Setting fat device, partition using CONFIG_ENV_FAT_DEVICE_AND_PART via Kconfig option is difficult to maintain since Allwinner support more than one mmc controllers with SD and eMMC. So, add dynamic function to get the device based on the boot device source with 'auto' partition. Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/board.c | 50 +++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c index d22a84ea6b..cf174bd0a3 100644 --- a/arch/arm/mach-sunxi/board.c +++ b/arch/arm/mach-sunxi/board.c @@ -10,6 +10,7 @@ */ #include +#include #include #include #include @@ -253,6 +254,55 @@ uint32_t sunxi_get_boot_device(void) return -1; /* Never reached */ } +#if CONFIG_IS_ENABLED(ENV_IS_IN_FAT) +static int find_first_sd_device(void) +{ + struct mmc *mmc; + int i; + + for (i = 0; (mmc = find_mmc_device(i)); i++) { + if (!mmc_init(mmc) && IS_SD(mmc)) + return i; + } + + return -ENODEV; +} + +static int find_first_mmc_device(void) +{ + struct mmc *mmc; + int i; + + for (i = 0; (mmc = find_mmc_device(i)); i++) { + if (!mmc_init(mmc) && IS_MMC(mmc)) + return i; + } + + return -ENODEV; +} + +char *get_env_fat_dev_part(void) +{ + int devno, boot_source; + static char dev_part[10]; + + boot_source = readb(SPL_ADDR + 0x28); + switch (boot_source) { + case SUNXI_BOOTED_FROM_MMC0: + devno = find_first_sd_device(); + break; + case SUNXI_BOOTED_FROM_MMC2: + devno = find_first_mmc_device(); + break; + default: + return CONFIG_ENV_FAT_DEVICE_AND_PART; + } + + snprintf(dev_part, sizeof(dev_part), "%d:auto", devno); + return dev_part; +} +#endif + #ifdef CONFIG_SPL_BUILD u32 spl_boot_device(void) { From patchwork Sun Aug 19 13:56:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959379 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="YIwTpIf5"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfbK3dZdz9s3Z for ; Mon, 20 Aug 2018 00:34:37 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 1C650C21E08; Sun, 19 Aug 2018 14:17:26 +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 3622BC21E85; Sun, 19 Aug 2018 14:14:12 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id A3BC2C21E07; Sun, 19 Aug 2018 13:59:43 +0000 (UTC) Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) by lists.denx.de (Postfix) with ESMTPS id 4A28AC21E47 for ; Sun, 19 Aug 2018 13:59:39 +0000 (UTC) Received: by mail-pg1-f195.google.com with SMTP id r1-v6so5527820pgp.11 for ; Sun, 19 Aug 2018 06:59:39 -0700 (PDT) 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=J7As3VfRcuVzwiyY8DqC4xl/yldfu44tnxfjN6Jn1vo=; b=YIwTpIf5cZ2zCePUJV60D4JdmSb+X9lbPw4WjB0Vk26wRbsltOHqC1j+PQS/UNngrh Au4MK+98lC6yT6/2O45M+VPVh08jFxZf5cI6MJJkGWl9tzoPzK8czOxNB97L3kHtyOyf 1V74fBuwTT9xYFZCNQ6PaskS4DkvrOqPv5Rvg= 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=J7As3VfRcuVzwiyY8DqC4xl/yldfu44tnxfjN6Jn1vo=; b=BHoogOnh/0LBdDyQfoU91B8Qg8Bp/T6YLMNMDS8+8eKUMRIlWJ3rkhhex4DEnx2Csw ahG5NxJ0sYU6oW+FWIRwemxVGy0q0043YT1gbwc9AO4NMBou4+sSJNqwHqpWcz2cYigF lVnYE0AhI8KelejXMgAflrd4Qv8vd8CyGJcr6z9sK9rjBgtcs595j42utZTEA0Yhvx4t uvk4ou8fSKE0ppHpxagNHVPCn6cTZNiLZfT+HeTYy7+H6UVVrVb3R+hnjXu4PcGs/Ak3 d1VVCR/cwudgLC8WKDNmiBtAzkaxtWc0DAPCtm4tO6isD9DDKwFXAYSQnHBQ7ikk5qKf DtFg== X-Gm-Message-State: AOUpUlH9VdN+W9kWaEkEiJH9feghwb8520irSnuzugacMQwv0tQ4GCoR JWTSTTY918QLP8I2waeB0vTOQQ== X-Google-Smtp-Source: AA+uWPxEYnjoaSYM5uPXwHLXlROr3qOKmK44H72c4HAUyZmu/P103dWdHrnKpyzmUlvu7bAfdb7FFQ== X-Received: by 2002:a62:571b:: with SMTP id l27-v6mr44298876pfb.29.1534687177871; Sun, 19 Aug 2018 06:59:37 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:37 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:47 +0530 Message-Id: <20180819135715.15799-31-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 30/58] env: sunxi: Don't update fat dev, part wrt MMC_SUNXI_SLOT_EXTRA 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" By enabling DM_MMC, the mmc devices are probed as per DT status not with respect to MMC_SUNXI_SLOT_EXTRA in U-Boot proper. Allwinner now support runtime relevant fat device via get_env_fat_dev_part, so add 0:auto as a default dev, part for sunxi platform and drop unneeded MMC_SUNXI_SLOT_EXTRA conditions. Signed-off-by: Jagan Teki --- env/Kconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/env/Kconfig b/env/Kconfig index be99efb937..2bbb02e3bb 100644 --- a/env/Kconfig +++ b/env/Kconfig @@ -373,8 +373,7 @@ config ENV_FAT_DEVICE_AND_PART depends on ENV_IS_IN_FAT default "0:1" if TI_COMMON_CMD_OPTIONS default "0:auto" if ARCH_ZYNQMP - default "0:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA = -1 - default "1:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA != -1 + default "0:auto" if ARCH_SUNXI default "0" if ARCH_AT91 help Define this to a string to specify the partition of the device. It can From patchwork Sun Aug 19 13:56:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959353 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="MvCpe94h"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfN16b1Dz9s3Z for ; Mon, 20 Aug 2018 00:24:49 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 88BE4C21E75; Sun, 19 Aug 2018 14:10:07 +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 EE30AC21EBD; Sun, 19 Aug 2018 14:03:10 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 83329C21C2C; Sun, 19 Aug 2018 13:59:51 +0000 (UTC) Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) by lists.denx.de (Postfix) with ESMTPS id A7690C21E0D for ; Sun, 19 Aug 2018 13:59:43 +0000 (UTC) Received: by mail-pf1-f180.google.com with SMTP id b11-v6so5500525pfo.3 for ; Sun, 19 Aug 2018 06:59:43 -0700 (PDT) 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=0umgbRb/vnZBatd8kXfQVVZgDvfxrGIyH5nF5huU54s=; b=MvCpe94hdMnG58+anUYBWyk9n7uWd+m2UmziY5CskzawHj2fjK/IpJCRSC+jfb/g+/ s1cJHgl19s0E3NCptZ/SCNMPDD6ylAzSjwXz0np5qD1QKQ3ros6merci8Av+Gaigbl5u 8Tz9DDKn4ESnDO2p/9tZcS1ClilSeAvpRA9r8= 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=0umgbRb/vnZBatd8kXfQVVZgDvfxrGIyH5nF5huU54s=; b=Pm9EhrLEEUKtfTfXr7I3irGseEy1gmPvRTx9xOuEGzK1hShXWEY8kIGyj4c7Ur9v77 XNQ/sWwb6xnqLobUr0eMx/fVEZkQgS7Hs6SpINvd7mYOdpA1egx9I9PVUiQ6DW+7K5G7 EQ1AED3iv/83TGpFO7438kZSiwaflB0U51SyKy+bnS67yTvMSCzPFv+k+rrE7zRnOmZ4 EVbIVLr/5eIMVLHRCwfDQNcrvWAkXx/WxPJOX2N5OoeiMiimnEgb1NJ4qpphOxR10pj3 CtHs4j51nlxxqwEHWXBDbGrnKkjnh0z7Py098SafiP60dmxJcyY9DXJ+/vsFdMkGKRvL ZkRQ== X-Gm-Message-State: AOUpUlGg8G7pE0tFMW68+seq1BCnjr6O2j0MVhOWSttT5VkK5gXuPAmF 5E4kJy3UITKg2HA9MvwYRDN7LQ== X-Google-Smtp-Source: AA+uWPwyPI4WHjURjf8p/x7zQr4XuqEth7WUbV4XKjTDlfA+j4uDsWLUYWN4RIBDeu6g1RSpjIfjmw== X-Received: by 2002:a63:ec43:: with SMTP id r3-v6mr38935973pgj.295.1534687182229; Sun, 19 Aug 2018 06:59:42 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:41 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:48 +0530 Message-Id: <20180819135715.15799-32-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 31/58] sunxi: Add mmc 2, 3 bootenv devices 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" By enabling DM_MMC, the mmc devices are probed as per DT status not with respect to MMC_SUNXI_SLOT_EXTRA in U-Boot proper and eMMC can probed maximum device of 3, if all nodes mmc0, mmc1, mmc2 and mmc3 status's are 'okay' This patch create bootcmd env for mmc2, mmc3 and start boot priority with mmc3...mmc0 Signed-off-by: Jagan Teki --- include/configs/sunxi-common.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h index f1578d3754..176ee06036 100644 --- a/include/configs/sunxi-common.h +++ b/include/configs/sunxi-common.h @@ -373,12 +373,15 @@ extern int soft_i2c_gpio_scl; "ramdisk ram " RAMDISK_ADDR_R " 0x4000000\0" #ifdef CONFIG_MMC -#if CONFIG_MMC_SUNXI_SLOT_EXTRA != -1 #define BOOTENV_DEV_MMC_AUTO(devtypeu, devtypel, instance) \ BOOTENV_DEV_MMC(MMC, mmc, 0) \ BOOTENV_DEV_MMC(MMC, mmc, 1) \ + BOOTENV_DEV_MMC(MMC, mmc, 2) \ + BOOTENV_DEV_MMC(MMC, mmc, 3) \ "bootcmd_mmc_auto=" \ "if test ${mmc_bootdev} -eq 1; then " \ + "run bootcmd_mmc3; " \ + "run bootcmd_mmc2; " \ "run bootcmd_mmc1; " \ "run bootcmd_mmc0; " \ "elif test ${mmc_bootdev} -eq 0; then " \ @@ -391,9 +394,6 @@ extern int soft_i2c_gpio_scl; #define BOOT_TARGET_DEVICES_MMC(func) func(MMC_AUTO, mmc_auto, na) #else -#define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0) -#endif -#else #define BOOT_TARGET_DEVICES_MMC(func) #endif From patchwork Sun Aug 19 13:56:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959360 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="bPPxJPSt"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfPW2Qb9z9s3Z for ; Mon, 20 Aug 2018 00:26:07 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 0F2DFC21E53; Sun, 19 Aug 2018 14:13:54 +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 36298C21DB6; Sun, 19 Aug 2018 14:04:53 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 14327C21DB6; Sun, 19 Aug 2018 13:59:52 +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 7CE04C21E5B for ; Sun, 19 Aug 2018 13:59:48 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id z4-v6so549377pgv.2 for ; Sun, 19 Aug 2018 06:59:48 -0700 (PDT) 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=S2g7tcuqZHi3wSNZC6grtPr1bNOijLTkfAz3NqUQi8w=; b=bPPxJPStGvS2iTSuHfh/mZdoxYmQa11Z6PXVkzTxqYhofzCmArVkGVUfW1OtJmqCl6 92xCg7pqGu53IQfvFq5xECmhu9I/IVizlgxsW0Y2kC+esNWG9jqo6xtlJW8Ra94+rwjj qp2J33tpBLO6mSoIEp8fhtcBv2rTqKqdXeIdo= 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=S2g7tcuqZHi3wSNZC6grtPr1bNOijLTkfAz3NqUQi8w=; b=aH9KBrdV5FQJsXZvEoTM3GxYlaoYPmMIDZDvU/Hvj05cghRaN8erLAkq1AV29sk/k3 7B04yPQNm3xFQNjRIq5UjKBVEmqtCOCB70EcnBOLm3ytKzTiAaf58j6xCw+vytNBDDel YACP2S1tKuIKBOb0FsSdE7eKVpPJtk1J2LN1+3ilpEz+n9RAOXEAtkmj9ESGbGBMwdhO DY0qn8Crc6nOg1I5n7K+xPhnxIV5wOgsIJ0R4HTOiHQ2D/YbUZ2Sp/qwYgmVW4CxcKhW wSSYWoE6i+HmRp2XLr4MCyLWGUmjbL0hCatx6iMDkZ/lmsosQkPBRzFYnIWOYUz/NKRT KSCg== X-Gm-Message-State: AOUpUlE+dqmlHA4Cr2nh8+DDkF0QD/rLfzzS486wbFazBWeQsT7sJrhL xS2ebRlr0xAaXbRUToohIFUywg== X-Google-Smtp-Source: AA+uWPyUmAiwtcIJ2CSS1o1Ubwcy6KsPFdZDmiRj2F5cXzKsuQu6yR7WELIeQI9u1wOlKtuuraz8Tg== X-Received: by 2002:a63:9b19:: with SMTP id r25-v6mr39764905pgd.44.1534687186768; Sun, 19 Aug 2018 06:59:46 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:46 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:49 +0530 Message-Id: <20180819135715.15799-33-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , Stefan Mavrodiev , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 32/58] sunxi: A20: Enable 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" Enable DM_MMC for Allwinner A20 SoC. Tested on A20-OLinuXino-LIME2. Cc: Stefan Mavrodiev Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index da7f6b1e95..cac6ed9503 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -191,6 +191,7 @@ config MACH_SUN7I select ARCH_SUPPORT_PSCI select CLK select DRAM_SUN4I + select DM_MMC if MMC select PHY_SUN4I_USB select SUNXI_GEN_SUN4I select SUPPORT_SPL From patchwork Sun Aug 19 13:56:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959352 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="m6ZO7ZpJ"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfKP0dqhz9ryn for ; Mon, 20 Aug 2018 00:22:32 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id A036DC21E02; Sun, 19 Aug 2018 14:13:37 +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 E3021C21C2C; Sun, 19 Aug 2018 14:04:45 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 25A7EC21E1B; Sun, 19 Aug 2018 13:59:58 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) by lists.denx.de (Postfix) with ESMTPS id 8780EC21DFD for ; Sun, 19 Aug 2018 13:59:52 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id s17-v6so5819024plp.7 for ; Sun, 19 Aug 2018 06:59:52 -0700 (PDT) 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=85IBdQzocWxyHJkXbkhST7P6RsXvN7QPchRCn/VOHj8=; b=m6ZO7ZpJU4b/WvqnJ7oTK/XcHJ4hLgNGPSNNreK4MONkxQZol6vgWpV95A11PhkKAL 5LXzpOAEyW77h4dQZ5+MYXwVpDWquyYBUAkkNrDzMK0yU+TsuPSxwh7QoDwNGvVRABDP 4hIEYQUHviRKqmGsOcy6FB6Tj2uwNUq+ENNxI= 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=85IBdQzocWxyHJkXbkhST7P6RsXvN7QPchRCn/VOHj8=; b=fmhBgWy9/KAQTDFeXxwQWVaELj5bFEP3vjBHNOB+yQwZlOrYNyBiw9QKsVbgXxt8ZG pjE1EexRVhoVhDtg0Mpyl05Xt9aEyB1F0BVNWaETCtaMOUQUwwhLe+vCpIE2m0nH7Uwg PiNs3HGrUQMpkynF0RFlfIEXMrTwEKFb8qhZ9+HBv785q2g7BZHXAiZhSMEyF+e1kKaU lKdE2G3znWtpXzooN6arMjDtZN+sUQ27BXj0GAu2uqpbYlyFgF4vhKPG1Y3qjU64OTFW sZcWXnA0ibXUIPxltrCI1wNgpjWmDXZQcuBrfTStpm6BVsKDK2kaFNTeRlykF/7Mg2u1 6vqw== X-Gm-Message-State: AOUpUlH2kVFOUyFLsFZNFOl/rnNdv/2dSLmbNPvUtJm1JXHTwWo2sZUH l4unXbaL1qs2FQvPVEYbpveCGQ== X-Google-Smtp-Source: AA+uWPymtqcDjAiNy7T851CchiomDE2gAzKAn0Y5z36N/PA9UWnzsGUPhZPm7I1pne8tn79tLeMUyQ== X-Received: by 2002:a17:902:4e:: with SMTP id 72-v6mr8524335pla.318.1534687191174; Sun, 19 Aug 2018 06:59:51 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:50 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:50 +0530 Message-Id: <20180819135715.15799-34-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 33/58] mmc: sunxi: Add mmc, emmc H5/A64 compatible 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" Added H5, A64 compatible for mmc and emmc. Signed-off-by: Jagan Teki --- drivers/mmc/sunxi_mmc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c index 3011ec9498..5191a3e3dd 100644 --- a/drivers/mmc/sunxi_mmc.c +++ b/drivers/mmc/sunxi_mmc.c @@ -697,6 +697,8 @@ static const struct udevice_id sunxi_mmc_ids[] = { { .compatible = "allwinner,sun4i-a10-mmc" }, { .compatible = "allwinner,sun5i-a13-mmc" }, { .compatible = "allwinner,sun7i-a20-mmc" }, + { .compatible = "allwinner,sun50i-a64-mmc" }, + { .compatible = "allwinner,sun50i-a64-emmc" }, { } }; From patchwork Sun Aug 19 13:56:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959392 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="XQjmwCoO"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfjV4WtYz9s0n for ; Mon, 20 Aug 2018 00:39:58 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 5DD31C21C8B; Sun, 19 Aug 2018 14:15:40 +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 5B5B8C21E39; Sun, 19 Aug 2018 14:10:08 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6FCF0C21E0B; Sun, 19 Aug 2018 14:00:01 +0000 (UTC) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by lists.denx.de (Postfix) with ESMTPS id C0FB9C21E0B for ; Sun, 19 Aug 2018 13:59:56 +0000 (UTC) Received: by mail-pf1-f193.google.com with SMTP id x17-v6so5489696pfh.5 for ; Sun, 19 Aug 2018 06:59:56 -0700 (PDT) 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=LxoXL+ZQ21rGgCQrAA3SHdrrQ9d6SBkEtHYG4OTHmdI=; b=XQjmwCoOZMxOcskOc4hrzGhOzeZELeQoJH33lUfRfoSjgSaAcgzmQnqyWb9oqYoMVq dwcSX2kJRH+Tn9HcTXqj3tBpXYrJ/cvx2F3gDhxbjXY9Dm+ktDEmprhjbGBl5vm4EXh7 702DjAyyMC8xZjuKBIfaFa9lV5+aZ3/N5t+3s= 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=LxoXL+ZQ21rGgCQrAA3SHdrrQ9d6SBkEtHYG4OTHmdI=; b=eiXSlPpiuZq8Ti2D0W1VUnRVIhtCK03uTHd+loIufhfFdIl9vko4TK0TWB7CfWf4k0 21gyGEDX/Ykat+KIjOD+wZSxBjd3YkEt5+MXTEuFEfDsRYFf3+J8eQYJ6XivTyQd/1c7 abANcv9lcOm1eu0X6U14h2VM871VU2meaMS40wZbjK52f/3qdHL4Ugmr4RBuoj3p/U3B zBnNlh3Ei4WV1A4qT6cTRG/qBn2MPOYeMl4wST/JE+SDPZAg9uJ3X2pEajadYRH41fas dJOaPJs6O9ULfYefU9nr1iWDpBy2hG8Sgq3IuntLYgeOcw0VMYgtPU2duSh099t2Ay8i Y6MQ== X-Gm-Message-State: AOUpUlETAVtugtzOTtGAOOOru3pb2I9LdzgvKc4u6JEPa3aloE1f+Kkp CvZPhXjpYWllMoZA8uP6LmydbA== X-Google-Smtp-Source: AA+uWPzqGoA5Nz0MCvDtawyd42JyvuTOMxxTgQIIpB5V8YqS1vjvBCz2Gi4CFG6HtHymQKjD/AqTlw== X-Received: by 2002:a63:380d:: with SMTP id f13-v6mr39725228pga.124.1534687195418; Sun, 19 Aug 2018 06:59:55 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:54 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:51 +0530 Message-Id: <20180819135715.15799-35-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 34/58] sunxi: H3_H5: Enable 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" Enable DM_MMC for Allwinner H3/H5 SoCs. Tested on H3: BPI-M2+ H5: Orangepi pc2, prime, zero+2 Tested-by: Jagan Teki Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index cac6ed9503..2388718209 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -134,6 +134,7 @@ config MACH_SUNXI_H3_H5 bool select CLK select DM_I2C + select DM_MMC if MMC select PHY_SUN4I_USB select SUNXI_DE2 select SUNXI_DRAM_DW From patchwork Sun Aug 19 13:56:52 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959361 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="lVBe2B+G"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfPd2vhxz9s3Z for ; Mon, 20 Aug 2018 00:26:13 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 1311AC21EA2; Sun, 19 Aug 2018 14:18:33 +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 5D523C21E08; Sun, 19 Aug 2018 14:16:01 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AAEB2C21E0D; Sun, 19 Aug 2018 14:00:12 +0000 (UTC) Received: from mail-pl0-f65.google.com (mail-pl0-f65.google.com [209.85.160.65]) by lists.denx.de (Postfix) with ESMTPS id 3F013C21DFD for ; Sun, 19 Aug 2018 14:00:01 +0000 (UTC) Received: by mail-pl0-f65.google.com with SMTP id f6-v6so5831684plo.1 for ; Sun, 19 Aug 2018 07:00:01 -0700 (PDT) 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=uo3RHAwF0USbF0AnXJqNTXDdICJPwktGY5eIf5ITeWc=; b=lVBe2B+GAj+nCSQoJEYGu41KExSfvM2nenxp/+xEZx9qvrXyUsQXMxLxF5vFCMCrEr 6B47Fkh3lpP4SZEZR/7KmRaaXD1BE8iRHPFy2teDtOFUT8Y2r2zankpNyWuUn3yguhZe Bot7u5h+mUvEpxkUqkhnJQ0bGfXcrvqSPW+FE= 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=uo3RHAwF0USbF0AnXJqNTXDdICJPwktGY5eIf5ITeWc=; b=VN4fGOI04d/FnBdNsjtO+s0zO62iEcBo4iQmYdg5Mp0iytsqdMooq1dPNllXlePmXv D3C1878qUsp/+zQ+oRL2XPfKAau8w1Mrek+Lsr1OOxuSXLyvdmv5VUPWBtrvmXOSFrAE mAOKqeOjosL/LykUn60FrH4GpREpBKPolqEglAS8ORF63sf88AKQHLbYMSz+UUBC3pYg qjC9xdr2oq+smOXRYcR7D5I1ij5maDJ43ju+OdysKGpQGHCqsvbHEA7mmSmNOlUrsM48 ZmQjyLQ7ojtwGBNV5lhbKb/J8bbZZ0tM3Xyxv410NnbkOBxwOfD1bldozQtgkPdZODU1 nkAw== X-Gm-Message-State: AOUpUlFfk7oigFeQ9OS89UzHxUh5/2wePuDUM87U3o8X7Njf8PpICjeN UQv7FQlNmmol55LhA+rBvWigLg== X-Google-Smtp-Source: AA+uWPx2ui3iwMYfLYanz0gfBzxYXLUpsewqWvhJsGMJ/xxclwwEmUlIQbo/C0PcE7FHrWfjd3/QOA== X-Received: by 2002:a17:902:6845:: with SMTP id f5-v6mr10908062pln.17.1534687199889; Sun, 19 Aug 2018 06:59:59 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.06.59.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 06:59:59 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:52 +0530 Message-Id: <20180819135715.15799-36-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 35/58] sunxi: A64: Enable 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" Enable DM_MMC for Allwinner A64 SoCs. Tested on BPI-M64, Amarula A64-Relic Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index 2388718209..14cbc51040 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -285,6 +285,7 @@ config MACH_SUN50I select ARM64 select CLK select DM_I2C + select DM_MMC if MMC select PHY_SUN4I_USB select SUNXI_DE2 select SUNXI_GEN_SUN6I From patchwork Sun Aug 19 13:56:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959358 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="pt1EUeyg"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfP10xfmz9s3Z for ; Mon, 20 Aug 2018 00:25:41 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id B5424C21E5B; Sun, 19 Aug 2018 14:10:45 +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 52339C21E0F; Sun, 19 Aug 2018 14:03:28 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 807E3C21EE3; Sun, 19 Aug 2018 14:00:13 +0000 (UTC) Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by lists.denx.de (Postfix) with ESMTPS id C2D51C21E85 for ; Sun, 19 Aug 2018 14:00:05 +0000 (UTC) Received: by mail-pf1-f194.google.com with SMTP id u24-v6so5482763pfn.13 for ; Sun, 19 Aug 2018 07:00:05 -0700 (PDT) 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=p0wuHtovzTG4IJrvDMYtAVAdK70X1S5Po5zHnqyXDvA=; b=pt1EUeygYJfyd+kRuN8Wrb36loyrK1HffhXBQQRmOWundm1d9pCQHKT63qIWUUXttP P2FMn6gH/EmpaiFUO3FPdQRE13q23ceEi0VQUXX4n8Rn/CTHwd0SPd4Z/jwYN6USvVXX MHv+lUFf8+FewoeHg8EQVfwPHnNMNsnxfWjxI= 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=p0wuHtovzTG4IJrvDMYtAVAdK70X1S5Po5zHnqyXDvA=; b=baYgcvR19wWQXqRayYt9C8r3lmCc1X+LmQZb6N6pPUPWejqjizfNFL0U6bXXE7evUt o0v9dRRS2c/Xi5lK673t4FWCUZZOin9vd/26dym+WrghW1AiWpsrF8blA9JGsRSRUZKv jU6Lo9GaE7CkpVkdbs9MO2+bVXq6Y0wSxFtx7+f3gkC0KtqT47QpyU3IqzVBqzDobLLe wJtkriSw5Bc7yfKCNJw48/mHsyhQjjouYrK/L0S2uaj/2rutlrL2D3+M0PGWNJ1JwwmQ vtyd1wh7HJpaa6+M8yq/3SgGmhC67wr0RoOEYs/mjpXCyppYjrrRPk2LcYCjGNKNYLaO EzKg== X-Gm-Message-State: AOUpUlEdXrVXcFf2++A2Grm/PeY49+Wn/rWHzO78rRsX16qMIzHiD7By Ej13HJaH4quLU0UhPovg9Q5CoQ== X-Google-Smtp-Source: AA+uWPy7jj/+hZzFbRBUtlGhU49y+C9N40Fq1boBPxkAg9G8jLkJwV/4UAWXIpHXQI8l6gwTo4GEPg== X-Received: by 2002:a62:68c3:: with SMTP id d186-v6mr44386175pfc.70.1534687204371; Sun, 19 Aug 2018 07:00:04 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:03 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:53 +0530 Message-Id: <20180819135715.15799-37-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 36/58] mmc: sunxi: Add A83T emmc compatible 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" Add emmc compatible for A83T SoC. Cc: VishnuPatekar Signed-off-by: Jagan Teki --- drivers/mmc/sunxi_mmc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c index 5191a3e3dd..229a7b2811 100644 --- a/drivers/mmc/sunxi_mmc.c +++ b/drivers/mmc/sunxi_mmc.c @@ -697,6 +697,7 @@ static const struct udevice_id sunxi_mmc_ids[] = { { .compatible = "allwinner,sun4i-a10-mmc" }, { .compatible = "allwinner,sun5i-a13-mmc" }, { .compatible = "allwinner,sun7i-a20-mmc" }, + { .compatible = "allwinner,sun8i-a83t-emmc" }, { .compatible = "allwinner,sun50i-a64-mmc" }, { .compatible = "allwinner,sun50i-a64-emmc" }, { } From patchwork Sun Aug 19 13:56:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959354 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="qnTikM0W"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfNL0JdNz9s3Z for ; Mon, 20 Aug 2018 00:25:05 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 86379C21DB6; Sun, 19 Aug 2018 14:14: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=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 3C9E4C21F24; Sun, 19 Aug 2018 14:04:54 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C8A96C21F24; Sun, 19 Aug 2018 14:00:14 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id DCE41C21E7E for ; Sun, 19 Aug 2018 14:00:09 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id y10-v6so5482700pfn.8 for ; Sun, 19 Aug 2018 07:00:09 -0700 (PDT) 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=O9qs5hxS9d1OlRYc0SF8ZqPLlEXBpwNibpoU7ZF+m1s=; b=qnTikM0WbXVESl3MHWWq1NDWhFtDMjC+3Z/LcVhK3lr7h9xNMzo4OWJ98wcuUhip7+ 0hiGsshSH8OMwB/AFAqWYrK6mqzQ5Nmt7CaSFDPc1AX+HFVXIGQydurOPrWZULHrnpQC FHlS5SacFDMAeGCAe5mYAk4Y9XJKIBqnqW7Tg= 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=O9qs5hxS9d1OlRYc0SF8ZqPLlEXBpwNibpoU7ZF+m1s=; b=l/JY4SKaAkadSZZx678NqbCYuR8dr+qv2iCV0yIs3StzrviWZwWf3tnHgPRjv3AxyY zgMpI6RW/8IaagPFYlmQvT94ExizS240ndIFkYvH2jyxDY+gqn80V7Gk515M+898GHKs VAl+MUHuFAy1NYn5Zvfc3BYV8gg7BT5JlDHXoEE26MFuEd6wSwYrfkuyE5RVVPW2VhsH EZCOjRGsjmoTcz75ZNEp/IqoR9Mf/hIPXEAQ+YkQjfJDL3mLUIQK7fxbfE8Te8HiFjkz +eolI5RQgVbukjaDLJu/h/R2TWt9nzJx93gtBXF4noiLKBIXgurbyUxz8INNdi7EsBmK 3Apg== X-Gm-Message-State: AOUpUlFdYNZHZe+164HwXYVbsLWEjsw5gr6wgcUPpNAZUQ+kc3k1ZhE2 9TEVgdJSfR3H+LJXe63AmSXX4A== X-Google-Smtp-Source: AA+uWPyR3YluNFzq7iWvU1AG6qDCFETgnwnR9AUxVQRfiHLBVdHwHwIVdiqNotfXyU154kfYm3UUbA== X-Received: by 2002:a65:4541:: with SMTP id x1-v6mr39292890pgr.26.1534687208501; Sun, 19 Aug 2018 07:00:08 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:08 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:54 +0530 Message-Id: <20180819135715.15799-38-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 37/58] sunxi: A83T: Enable 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" Enable DM_MMC for Allwinner A83T SoC. Tested on BPI-M3. Cc: VishnuPatekar Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index 14cbc51040..b6287fc00e 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -230,6 +230,7 @@ config MACH_SUN8I_A83T bool "sun8i (Allwinner A83T)" select CPU_V7A select CLK + select DM_MMC if MMC select DRAM_SUN8I_A83T select PHY_SUN4I_USB select SUNXI_GEN_SUN6I From patchwork Sun Aug 19 13:56:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959378 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="iUhB9GNz"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfbK0nqjz9s0n for ; Mon, 20 Aug 2018 00:34:36 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id A81ABC21E7D; Sun, 19 Aug 2018 14:15:07 +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 EAD84C21DFB; Sun, 19 Aug 2018 14:08:40 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id BCAF9C21E08; Sun, 19 Aug 2018 14:00:18 +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 ECC96C21C2C for ; Sun, 19 Aug 2018 14:00:13 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id z4-v6so549642pgv.2 for ; Sun, 19 Aug 2018 07:00:13 -0700 (PDT) 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=rT62NvsDcc5DBR63cA5HbT40T1IkdDU91Ac3HFSSUC0=; b=iUhB9GNz3vyPmF2pgYRJkLO+Tjk8wn1TIAyH4aGV+UOtOYGPNgatG6pyULXkwvldES AcaQcx6vP/8OrVAg/0o7epenV94sadP5j41iRNMiJEfFUUHTzAuGXKioidWlM4q326Dt LT/d1VEQ/QZhE7ufwgRQKKq0cRq5GcucB/fzU= 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=rT62NvsDcc5DBR63cA5HbT40T1IkdDU91Ac3HFSSUC0=; b=kBRjax1BIZ2Y4fcyF6pQc/YQwHQ4Ro/lACUkSGZjt85T9I1Drmd05pLLWjXUSqPnrK UOFTpEDI7QghzfgK95a/x64Suh0zel6uLyufRAyZMA86m74iLeiVC4aqo5TOudzddbbR F/hRx/eHoqrjihSHtu1CRY7PAx+ou3y/0dJ8o/bT97MyIgVqGW/8fPTx3giOV7ZOVodV RJa97Dod9JkZyNeaQv+TtGwhWEJzUiorNGcwIg+bhmqsu1/4B0KGHQYwE11T8Hw217DD Mp5nvunv1MzWAy10YEDsIT9t0goLnGASaCZqu4k8IR+wc+EeuV8WJ0WUxqP+QAphtzct 5Cpg== X-Gm-Message-State: AOUpUlHf2ArA/Ns71IEmYYftk3AGmirBe1kOdF41bknSU7zWOfLHJr1c s7npw3uP8z1TYluYcMWSpdkLGA== X-Google-Smtp-Source: AA+uWPxMtyMSyKMkEYTK3FaspO6bHDRHiUiIOr8+2/H7s6uUTgMKj/uq1lixpy7PjjUYFeZlr8JARg== X-Received: by 2002:a63:e60c:: with SMTP id g12-v6mr40150203pgh.308.1534687212583; Sun, 19 Aug 2018 07:00:12 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:12 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:55 +0530 Message-Id: <20180819135715.15799-39-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 38/58] sunxi: V40: Enable 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" Enable DM_MMC for Allwinner V40 SoC. Tested on BPI-M2 Ultra, BPI-M2 Berry. Cc: Lothar Felten Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index b6287fc00e..2828a33572 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -254,6 +254,7 @@ config MACH_SUN8I_R40 select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI select CLK + select DM_MMC if MMC select SUNXI_GEN_SUN6I select SUPPORT_SPL select SUNXI_DRAM_DW From patchwork Sun Aug 19 13:56:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959388 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="AJmHGXwK"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfff1zCXz9s0n for ; Mon, 20 Aug 2018 00:37:30 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 0A4E0C21EDE; Sun, 19 Aug 2018 14:16: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=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 1AD20C21E63; Sun, 19 Aug 2018 14:11:39 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 64118C21E73; Sun, 19 Aug 2018 14:00:22 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id B47B8C21DF9 for ; Sun, 19 Aug 2018 14:00:17 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id y10-v6so5482804pfn.8 for ; Sun, 19 Aug 2018 07:00:17 -0700 (PDT) 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=jkD58CrVNFj042Owlk8qaSW2137QK6hFbDH2idy6Deo=; b=AJmHGXwK6GI2zQeWvPOjou4JaNfBY3qJaZ9/L1DOM23b3pyYsemJzJj+j8VgDUh/v2 4+ZnH/z44S52kz8eyGoW+/SJgMZFhX/9EOPcS0e1mZtW6eZ81ZZi9OGsHww7NP0ugrCr dtvtuA3tEy0PGvANvWeSNxySV8kexCAC8WC1g= 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=jkD58CrVNFj042Owlk8qaSW2137QK6hFbDH2idy6Deo=; b=O7O6wqRfluABbNaUZqY7Ac0YkCzsZFzi7vYlYSmyORQJUZBgDvpYYpy3A3dOngMbc5 honFgAttbhHZTgJ4zSheQdxAq6dbq1dgVZGUKFjZ2gucpBsTGCwLMA/HUOcsCdWZeoY0 s+0YpXho/2nWBtPKQFntbZx8f/6xWfUIHtiY5jwXPdDoNJhElHdgDi44ofyNMQpraOJj n6+Ex3oXpm1ygNJ3ptToQXezD/kNc4QZUVngklhQcGaSfTDjelIqN2qBg7dbVHPD3ulk WD7MXJUzTvBfet/Ql9lxbqsZSgV3rQpLBSf+Nq6UfhUdsFWDcDPpOaYb4Yyz6rL5abJF 2Z5Q== X-Gm-Message-State: AOUpUlFhcSeSoLRmVUQ1XAxFRvqbi09VcBHjwXb0IXxt5DbnqfxWZvWx 86NLEriH6dxfGEL00iGf61m0j+oQP6g= X-Google-Smtp-Source: AA+uWPys/Sj4BINrzjXpSNomiK3blBkXMKmPWr+qn+fCWjEuE3aOxtNdqqA/kBVBi/fue2lCIjEXag== X-Received: by 2002:a63:7e1c:: with SMTP id z28-v6mr7950272pgc.246.1534687216353; Sun, 19 Aug 2018 07:00:16 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:15 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:56 +0530 Message-Id: <20180819135715.15799-40-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 39/58] sunxi: H6: Enable 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" Enable DM_MMC for Allwinner H6 SoC. Tested-by: Jagan Teki # Opi-1+ Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index 2828a33572..dd973cc821 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -309,6 +309,7 @@ config MACH_SUN50I_H6 bool "sun50i (Allwinner H6)" select ARM64 select CLK + select DM_MMC if MMC select SUPPORT_SPL select FIT select SPL_LOAD_FIT From patchwork Sun Aug 19 13:56:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959389 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="WgxID54F"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfhy6h3Kz9s0n for ; Mon, 20 Aug 2018 00:39:30 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 8E407C21D83; Sun, 19 Aug 2018 14:13: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=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 B6DB1C21E12; Sun, 19 Aug 2018 14:04:36 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 06555C21ECF; Sun, 19 Aug 2018 14:00:25 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) by lists.denx.de (Postfix) with ESMTPS id 9A02BC21E3B for ; Sun, 19 Aug 2018 14:00:21 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id g23-v6so2851515plq.9 for ; Sun, 19 Aug 2018 07:00:21 -0700 (PDT) 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=ccNKBQ80/rk+FRito012OKF0wzoBoTIUI/6hanutbYE=; b=WgxID54F/SyZk2ByZmYN4r5TeSV/0mh9PX9Be+npSe8NI5kheijshyXhzT8FEvrGoD 5nQJq0CzTCsOXWkeYl1HorbdCUqc359yud8IcVQGdUwhL9cae7BsfT5tjwHQ0TggV0zH FU8iUw+iaW5SI1AvveCDOYwsy08Q9fO5G1g0s= 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=ccNKBQ80/rk+FRito012OKF0wzoBoTIUI/6hanutbYE=; b=FUT19TiPvpjYzHkf8qedKh9SbjnX7NappSSVxlyW5qv+nsHHCiKPnKrnVkq8odY11l GsCF8EHuPPw9CSSGsaU/lUxKYwiwvGa4HxyHEbcFGjW33Yz4Im5xcd/aLgMYxWYg0ehR xQlbAZ2gYUBXhfYx1r3PObS66AiVvSzqm0SueJ23PcGZ22Q0reu92eC5lBTKLWBqnHrm ZcZ4pdjfmahcVOueEv6cYpXO4ZRxeB0IwYLazVxlILQiLvn1J28IQcygClVNYEeFK8du 3HA8fEZFWf3cexkx4c7zyf+fIkTeQaYHHI0ItPEfWwhcvpp1SjqMyPAgh5ZzEKc1y2Q3 qM8A== X-Gm-Message-State: AOUpUlHAsvh701EhvgQgACayNVIgyNGArbmlPLoqUlTwc2k1/bPAkD1P uLv1Nf4cL3LVOod/WI8/1m2z7A== X-Google-Smtp-Source: AA+uWPxkb5jH4Ya2Fwg+FdWb4lQCgbVYPo1t6IMKYg10+CnUK/9HUKNPFLHgZpTnXt/6ajTZsQ7ueA== X-Received: by 2002:a17:902:8301:: with SMTP id bd1-v6mr375834plb.264.1534687220259; Sun, 19 Aug 2018 07:00:20 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:19 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:57 +0530 Message-Id: <20180819135715.15799-41-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 40/58] sunxi: A13/A31: Enable 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" Enable DM_MMC for Allwinner A13/A31 SoC. Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index dd973cc821..593999391a 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -164,6 +164,7 @@ config MACH_SUN5I select CLK select ARM_CORTEX_CPU_IS_UP select DRAM_SUN4I + select DM_MMC if MMC select PHY_SUN4I_USB select SUNXI_GEN_SUN4I select SUPPORT_SPL @@ -177,6 +178,7 @@ config MACH_SUN6I select ARCH_SUPPORT_PSCI select CLK select DRAM_SUN6I + select DM_MMC if MMC select PHY_SUN4I_USB select SUN6I_P2WI select SUN6I_PRCM From patchwork Sun Aug 19 13:56:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959341 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="ZE06JdAK"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tf6z0MK7z9ryn for ; Mon, 20 Aug 2018 00:13:30 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id AC554C21E85; Sun, 19 Aug 2018 14:09:18 +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 F2C6DC21EC3; Sun, 19 Aug 2018 14:02:57 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B4488C21EA2; Sun, 19 Aug 2018 14:00:29 +0000 (UTC) Received: from mail-pf1-f194.google.com (mail-pf1-f194.google.com [209.85.210.194]) by lists.denx.de (Postfix) with ESMTPS id 1AE73C21E2B for ; Sun, 19 Aug 2018 14:00:26 +0000 (UTC) Received: by mail-pf1-f194.google.com with SMTP id y10-v6so5482901pfn.8 for ; Sun, 19 Aug 2018 07:00:26 -0700 (PDT) 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=d6Jbz0Baux7gfaCyAZbjUzY8d/oRnvomvU6zuqftIOs=; b=ZE06JdAKSZcSUHKMyS07SFkS60f84KHvTxA46nkfDBJsJxro11pWJ+0oGr8sYl4Gbt 0VboKFIoG7hSPl+2C/j9bUGf4zf0wopTNz2wUeGtvKXYf7a7zmY0HfZwBYkTuFWyPJP1 jiiBZPdTZYe3/PyNr7eWkhE3bH2vrq+AurVhE= 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=d6Jbz0Baux7gfaCyAZbjUzY8d/oRnvomvU6zuqftIOs=; b=AV4yXvflIHLDZoxYyN0d74Sz6mi+K5fhHjmX6uCXKlB6IWHYK051MamzOoq7ZFXDt/ CJTx8Yh1NQSC4GyuKsm4SiAOCnEUW0lGaL1QDGmMONLLHDXuVK4mEC8UDU2pnuBf7gj5 alx14E4CDELRauSxJMulZwqx9e+VauvDcws8X1lIV/n9zcnsKHawH+wK1YRThKexREK5 DQ2BL+Lwg+pJHY+MpXDTqCBzI/fiNWMzBPBdAMa/wAlXqG66SbvZjlTu1/kZuZ6cEWza TJ5exsLMngW7NYzNPXIqyRQKfk8Rf9qpWuN9VOi7n/exyQfktV3esTHb+AG5pTfsmU1Z F7ww== X-Gm-Message-State: AOUpUlE2WMaKb3ncWJ2IAOpPO9L2Dm0LbqvzeF0gBe3rSO7dwnRKFOWo C0AWo+0PAjiH2K1m1G6FntAzEw== X-Google-Smtp-Source: AA+uWPwiCx0H/wlxKWlMUtbCDPsY4VsiwbK0JF7/R1e+/e6PQzC7UruoFbTfHiDloTOGYpWHYmZ2fQ== X-Received: by 2002:a62:6f87:: with SMTP id k129-v6mr44192275pfc.26.1534687224701; Sun, 19 Aug 2018 07:00:24 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:24 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:58 +0530 Message-Id: <20180819135715.15799-42-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 41/58] sunxi: A23/A33/V3S: Enable 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" Enable DM_MMC for Allwinner A23/A33/V3S SoC. Signed-off-by: Jagan Teki --- arch/arm/mach-sunxi/Kconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index 593999391a..14d80d19c8 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -207,6 +207,7 @@ config MACH_SUN8I_A23 select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI select CLK + select DM_MMC if MMC select DRAM_SUN8I_A23 select PHY_SUN4I_USB select SUNXI_GEN_SUN6I @@ -221,6 +222,7 @@ config MACH_SUN8I_A33 select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI select CLK + select DM_MMC if MMC select DRAM_SUN8I_A33 select PHY_SUN4I_USB select SUNXI_GEN_SUN6I @@ -269,6 +271,7 @@ config MACH_SUN8I_V3S select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI select CLK + select DM_MMC if MMC select SUNXI_GEN_SUN6I select SUNXI_DRAM_DW select SUNXI_DRAM_DW_16BIT From patchwork Sun Aug 19 13:56:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959340 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="MXDZ/3TP"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tf6q1DLnz9ryn for ; Mon, 20 Aug 2018 00:13:23 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id D170BC21E88; Sun, 19 Aug 2018 14:12:38 +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 825BAC21F13; Sun, 19 Aug 2018 14:04:28 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 074D9C21EBA; Sun, 19 Aug 2018 14:00:40 +0000 (UTC) Received: from mail-pl0-f65.google.com (mail-pl0-f65.google.com [209.85.160.65]) by lists.denx.de (Postfix) with ESMTPS id 15F2AC21E3E for ; Sun, 19 Aug 2018 14:00:30 +0000 (UTC) Received: by mail-pl0-f65.google.com with SMTP id u11-v6so5819967plq.5 for ; Sun, 19 Aug 2018 07:00:30 -0700 (PDT) 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=W/8clBWkABhqmne61nvD7p1/HUjSzGdi57woQwPfvoY=; b=MXDZ/3TP/0J4H+asZ4iEyO/Mq30kX/HmhGcAH+J1jaKGNNlPwiUeIKZgjaHBzCLWHa fqQSpEzYIIh4HsogSIS4XVsgqEo8A3FTHCAcmeHrakSx42xRSwyvJS5FCm6hOsCjiWLp OQ7zb5I338LaxIdMIfZdja8H3qAkcUu1UiNOQ= 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=W/8clBWkABhqmne61nvD7p1/HUjSzGdi57woQwPfvoY=; b=cUpfgMcrxXwZRJTWR17Q1h8W73/WL2w4ZHE3+1c4hG2tlBhbjPoUENZCRUZB6hV4EB lCMjV3gY+2WghQoRxJXyEk0vSC7PBRKnvRRewFPWHFWshgx2phkDNAuzi6+nO2fadbwT y5HEGJYYe+YIL7PfJOvdY9Qh4juKbYzs6z0B4R5xwCnu0kxe6SElhvcTkU6MkaNy51Xr HoahYwGxm3E2RKgvQbj12saW+rWdzsFEInM8qJ/7M6zWRe8d+ot7VtIRHQPpYFTAoLh2 TVbL16gWcW4d8amdbq1blzKjSNmP1gx/MgQH8LG5tpvnEinc521yCoK1Gc4ZTzgQpDhn 4ZHg== X-Gm-Message-State: AOUpUlHFTOzZhgoRNWEhTX1fsevL+T1wTd+ZCCRHn0HFScezHPW2YCwX maCo7ejILfwY6xx2kkVP0Ajiwg== X-Google-Smtp-Source: AA+uWPyLlmpazLSupUyNjnwHNWWgmR6/hrSziJC/KxYQR8CgdBmxgwcNYBJvHo00RvmXeRvB4JjwKA== X-Received: by 2002:a17:902:6b89:: with SMTP id p9-v6mr41385316plk.272.1534687228673; Sun, 19 Aug 2018 07:00:28 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:28 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:26:59 +0530 Message-Id: <20180819135715.15799-43-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 42/58] clk: sunxi: Implement SPI clocks 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" Implement SPI AHB and MOD clocks for all Allwinner SoC clock drivers via clock map descriptor table. Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_a10.c | 9 +++++++++ drivers/clk/sunxi/clk_a10s.c | 7 +++++++ drivers/clk/sunxi/clk_a31.c | 9 +++++++++ drivers/clk/sunxi/clk_a64.c | 5 +++++ drivers/clk/sunxi/clk_h3.c | 5 +++++ drivers/clk/sunxi/clk_v3s.c | 3 +++ 6 files changed, 38 insertions(+) diff --git a/drivers/clk/sunxi/clk_a10.c b/drivers/clk/sunxi/clk_a10.c index 55176bc174..ee499c402a 100644 --- a/drivers/clk/sunxi/clk_a10.c +++ b/drivers/clk/sunxi/clk_a10.c @@ -22,12 +22,21 @@ static struct ccu_clk_map a10_clks[] = { [CLK_AHB_MMC1] = { 0x060, BIT(9), NULL }, [CLK_AHB_MMC2] = { 0x060, BIT(10), NULL }, [CLK_AHB_MMC3] = { 0x060, BIT(11), NULL }, + [CLK_AHB_SPI0] = { 0x060, BIT(20), NULL }, + [CLK_AHB_SPI1] = { 0x060, BIT(21), NULL }, + [CLK_AHB_SPI2] = { 0x060, BIT(22), NULL }, + [CLK_AHB_SPI3] = { 0x060, BIT(23), NULL }, [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, [CLK_MMC3] = { 0x094, BIT(31), &mmc_clk_set_rate }, + [CLK_SPI0] = { 0x0a0, BIT(31), NULL }, + [CLK_SPI1] = { 0x0a4, BIT(31), NULL }, + [CLK_SPI2] = { 0x0a8, BIT(31), NULL }, + [CLK_SPI3] = { 0x0d4, BIT(31), NULL }, + [CLK_USB_OHCI0] = { 0x0cc, BIT(6), NULL }, [CLK_USB_OHCI1] = { 0x0cc, BIT(7), NULL }, [CLK_USB_PHY] = { 0x0cc, BIT(8), NULL }, diff --git a/drivers/clk/sunxi/clk_a10s.c b/drivers/clk/sunxi/clk_a10s.c index fbac0ad751..bca248f59f 100644 --- a/drivers/clk/sunxi/clk_a10s.c +++ b/drivers/clk/sunxi/clk_a10s.c @@ -19,6 +19,9 @@ static struct ccu_clk_map a10s_clks[] = { [CLK_AHB_MMC0] = { 0x060, BIT(8), NULL }, [CLK_AHB_MMC1] = { 0x060, BIT(9), NULL }, [CLK_AHB_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_AHB_SPI0] = { 0x060, BIT(20), NULL }, + [CLK_AHB_SPI1] = { 0x060, BIT(21), NULL }, + [CLK_AHB_SPI2] = { 0x060, BIT(22), NULL }, #ifdef CONFIG_MMC [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, @@ -26,6 +29,10 @@ static struct ccu_clk_map a10s_clks[] = { [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, #endif + [CLK_SPI0] = { 0x0a0, BIT(31), NULL }, + [CLK_SPI1] = { 0x0a4, BIT(31), NULL }, + [CLK_SPI2] = { 0x0a8, BIT(31), NULL }, + [CLK_USB_OHCI] = { 0x0cc, BIT(6), NULL }, [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index 15076d0e72..1fa77e1272 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -17,6 +17,10 @@ static struct ccu_clk_map a31_clks[] = { [CLK_AHB1_MMC1] = { 0x060, BIT(9), NULL }, [CLK_AHB1_MMC2] = { 0x060, BIT(10), NULL }, [CLK_AHB1_MMC3] = { 0x060, BIT(12), NULL }, + [CLK_AHB1_SPI0] = { 0x060, BIT(20), NULL }, + [CLK_AHB1_SPI1] = { 0x060, BIT(21), NULL }, + [CLK_AHB1_SPI2] = { 0x060, BIT(22), NULL }, + [CLK_AHB1_SPI3] = { 0x060, BIT(23), NULL }, [CLK_AHB1_OTG] = { 0x060, BIT(24), NULL }, [CLK_AHB1_EHCI0] = { 0x060, BIT(26), NULL }, [CLK_AHB1_EHCI1] = { 0x060, BIT(27), NULL }, @@ -29,6 +33,11 @@ static struct ccu_clk_map a31_clks[] = { [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, [CLK_MMC3] = { 0x094, BIT(31), &mmc_clk_set_rate }, + [CLK_SPI0] = { 0x0a0, BIT(31), NULL }, + [CLK_SPI1] = { 0x0a4, BIT(31), NULL }, + [CLK_SPI2] = { 0x0a8, BIT(31), NULL }, + [CLK_SPI3] = { 0x0ac, BIT(31), NULL }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, [CLK_USB_PHY2] = { 0x0cc, BIT(10), NULL }, diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index 9ef9b606d2..aa2e69d0a3 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -16,6 +16,8 @@ static struct ccu_clk_map a64_clks[] = { [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_BUS_SPI0] = { 0x060, BIT(20), NULL }, + [CLK_BUS_SPI1] = { 0x060, BIT(21), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(23), NULL }, [CLK_BUS_EHCI0] = { 0x060, BIT(24), NULL }, [CLK_BUS_EHCI1] = { 0x060, BIT(25), NULL }, @@ -26,6 +28,9 @@ static struct ccu_clk_map a64_clks[] = { [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_SPI0] = { 0x0a0, BIT(31), NULL }, + [CLK_SPI1] = { 0x0a4, BIT(31), NULL }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, [CLK_USB_HSIC] = { 0x0cc, BIT(10), NULL }, diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index ad15aaae67..386289b654 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -16,6 +16,8 @@ static struct ccu_clk_map h3_clks[] = { [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_BUS_SPI0] = { 0x060, BIT(20), NULL }, + [CLK_BUS_SPI1] = { 0x060, BIT(21), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(23), NULL }, [CLK_BUS_EHCI0] = { 0x060, BIT(24), NULL }, [CLK_BUS_EHCI1] = { 0x060, BIT(25), NULL }, @@ -30,6 +32,9 @@ static struct ccu_clk_map h3_clks[] = { [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_SPI0] = { 0x0a0, BIT(31), NULL }, + [CLK_SPI1] = { 0x0a4, BIT(31), NULL }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, [CLK_USB_PHY1] = { 0x0cc, BIT(9), NULL }, [CLK_USB_PHY2] = { 0x0cc, BIT(10), NULL }, diff --git a/drivers/clk/sunxi/clk_v3s.c b/drivers/clk/sunxi/clk_v3s.c index 6eeec201a2..1cca57e065 100644 --- a/drivers/clk/sunxi/clk_v3s.c +++ b/drivers/clk/sunxi/clk_v3s.c @@ -16,12 +16,15 @@ static struct ccu_clk_map v3s_clks[] = { [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_BUS_SPI0] = { 0x060, BIT(20), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, + [CLK_SPI0] = { 0x0a0, BIT(31), NULL }, + [CLK_USB_PHY0] = { 0x0cc, BIT(8), NULL }, }; From patchwork Sun Aug 19 13:57:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959359 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="WSbOrhPK"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfPN2q6gz9s5c for ; Mon, 20 Aug 2018 00:26:00 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 27EEFC21E1A; Sun, 19 Aug 2018 14:07:19 +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 82862C21EA7; Sun, 19 Aug 2018 14:01:25 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id AA79CC21E0B; Sun, 19 Aug 2018 14:00:40 +0000 (UTC) Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) by lists.denx.de (Postfix) with ESMTPS id 466F1C21E7F for ; Sun, 19 Aug 2018 14:00:34 +0000 (UTC) Received: by mail-pg1-f195.google.com with SMTP id a11-v6so5542834pgw.6 for ; Sun, 19 Aug 2018 07:00:34 -0700 (PDT) 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=OM5KI5Q9+breLXhgRWfW1v4HVvqEt2rzmu+KPnYbGrQ=; b=WSbOrhPKyXA6uv8+7orOMPofretXOxVjE/2Q+QkKlzHankrhhnDQ4FFIHz4fxCgWSl /MpsQ+VTg+DmemMdk+EK25QRkPATjMRBEZ27CeBWn+KlZx9pqz3cBQIbIOq4LbopFpJ6 IJsjbR3mLeUPTy/5NmbuUV8J8IPXRss5TPSxM= 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=OM5KI5Q9+breLXhgRWfW1v4HVvqEt2rzmu+KPnYbGrQ=; b=YJO/ivyhmmS4ezJp0NExgl6tUNboTbRUXYiBq2l2J9Vrc46aoLcJ6EF0qEi2C9lxlC hcdLEjiPQQjd/KdiTIuyCv2AUz8ICgRAd7ifn3QlBUwZfmxl/lYrEF1+kbvKhUu0wlVh 5kAMwIk78rccWn9WB19/wvhqUPL/irUqeZvxph4zn08g3LUJGf5E9oMA5xnj6xv/LKBm aJ7mn2MnlS5R6znKSpguX5nYrTQS59l2Y0kZaadCB15iagLcECvaAdUIib10ekV6Sn1p 0gBlfVQG6yghYsvntNHmTfFASg9i0DQcFlINzYBlvDY6sSQsPS0C+gf/uJhhO7lP3p0s sIaA== X-Gm-Message-State: AOUpUlHTufdV8kOfgg4S+M0v8M+Av++bfy6Cdt+JWN/eY+PE5LGB0UoH kui3q7F3gncDzCKjJRu/87o0yPzFmp0= X-Google-Smtp-Source: AA+uWPx95kRioDIc0ylMXF/xxL5dEssjMUjyNUCQGmVwccfJq3y9/6E8vDvVWwmfxLTu5LhW5Tf6Mw== X-Received: by 2002:a63:380d:: with SMTP id f13-v6mr39727145pga.124.1534687232867; Sun, 19 Aug 2018 07:00:32 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:32 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:00 +0530 Message-Id: <20180819135715.15799-44-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 43/58] clk: sunxi: Implement SPI resets 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" Implement SPI resets for all relevant Allwinner SoC clock drivers via reset map descriptor table. Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_a31.c | 4 ++++ drivers/clk/sunxi/clk_a64.c | 2 ++ drivers/clk/sunxi/clk_h3.c | 2 ++ drivers/clk/sunxi/clk_v3s.c | 1 + 4 files changed, 9 insertions(+) diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index 1fa77e1272..a5c6628c63 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -55,6 +55,10 @@ static struct ccu_reset_map a31_resets[] = { [RST_AHB1_MMC1] = { 0x2c0, BIT(9) }, [RST_AHB1_MMC2] = { 0x2c0, BIT(10) }, [RST_AHB1_MMC3] = { 0x2c0, BIT(11) }, + [RST_AHB1_SPI0] = { 0x2c0, BIT(20) }, + [RST_AHB1_SPI1] = { 0x2c0, BIT(21) }, + [RST_AHB1_SPI2] = { 0x2c0, BIT(22) }, + [RST_AHB1_SPI3] = { 0x2c0, BIT(23) }, [RST_AHB1_OTG] = { 0x2c0, BIT(24) }, [RST_AHB1_EHCI0] = { 0x2c0, BIT(26) }, [RST_AHB1_EHCI1] = { 0x2c0, BIT(27) }, diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index aa2e69d0a3..218d4f09ea 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -47,6 +47,8 @@ static struct ccu_reset_map a64_resets[] = { [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, + [RST_BUS_SPI0] = { 0x2c0, BIT(20) }, + [RST_BUS_SPI1] = { 0x2c0, BIT(21) }, [RST_BUS_OTG] = { 0x2c0, BIT(23) }, [RST_BUS_EHCI0] = { 0x2c0, BIT(24) }, [RST_BUS_EHCI1] = { 0x2c0, BIT(25) }, diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index 386289b654..f610cee745 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -54,6 +54,8 @@ static struct ccu_reset_map h3_resets[] = { [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, + [RST_BUS_SPI0] = { 0x2c0, BIT(20) }, + [RST_BUS_SPI1] = { 0x2c0, BIT(21) }, [RST_BUS_OTG] = { 0x2c0, BIT(23) }, [RST_BUS_EHCI0] = { 0x2c0, BIT(24) }, [RST_BUS_EHCI1] = { 0x2c0, BIT(25) }, diff --git a/drivers/clk/sunxi/clk_v3s.c b/drivers/clk/sunxi/clk_v3s.c index 1cca57e065..ae4f6ee066 100644 --- a/drivers/clk/sunxi/clk_v3s.c +++ b/drivers/clk/sunxi/clk_v3s.c @@ -34,6 +34,7 @@ static struct ccu_reset_map v3s_resets[] = { [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, + [RST_BUS_SPI0] = { 0x2c0, BIT(20) }, [RST_BUS_OTG] = { 0x2c0, BIT(24) }, }; From patchwork Sun Aug 19 13:57:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959371 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="cv+yLWAm"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfXD5ZZ9z9rvt for ; Mon, 20 Aug 2018 00:31:56 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 5AE98C21E74; Sun, 19 Aug 2018 14:18:00 +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 88434C21C8B; Sun, 19 Aug 2018 14:14:54 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 917CFC21E31; Sun, 19 Aug 2018 14:00:44 +0000 (UTC) Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) by lists.denx.de (Postfix) with ESMTPS id 69F62C21C2C for ; Sun, 19 Aug 2018 14:00:38 +0000 (UTC) Received: by mail-pg1-f195.google.com with SMTP id r1-v6so5528407pgp.11 for ; Sun, 19 Aug 2018 07:00:38 -0700 (PDT) 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=eAH7YgrQ9YKGtWoG6aftcWtuLWBjzu6sNYo0PNgk64Q=; b=cv+yLWAmOqeAOe1rvK+ONMdIJUe9xBNAPqZ+MfQD2422zke4pZtRtvbNhYXAMY2Dey PfZJzTLe1i1tpWsyj6cWWiuhUDFhua+b+WNYgeecrF81xU4xuFWhZ6QerCPj857DZQVb DZM/AqihfdHzUbGhsoEIw5TJKdW+Lebrkyx7k= 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=eAH7YgrQ9YKGtWoG6aftcWtuLWBjzu6sNYo0PNgk64Q=; b=r/jc5jIVUNDhoTwGzjXnlNjrXas6t1VogfyFudNqguj66bfiUi6zJqFCFufr9Wm81k f4CYe2bh9dRgoQEO5tv3O6D5Vw76wVwvZTQYpx92N7u2eaWmjzE6QNMN+rK8CMPeTW4X u/enLukOfay7QCnkVSCZAYD91U8yaM8MgS/otxicX53yXGconw39iwEcfqA7Hy/xvcz0 Iht3ymFmAAXGyeA2fW1S0WvO9FWy9idSMm9SpjjT7EdVf4wwu6nLeRDKt9lPZI4rvEk0 8KsZl2xFt6N2uc4i6WAKnaMiuIsNOcshtYftJMQlqgnD45xIFyORT9wXqBu+LGgdMEhm 7Lvg== X-Gm-Message-State: AOUpUlFeEMMAm0SOOxMfCuhQHSZwgE1T7NHmqiacBIjN8gOf1WcrhXX7 B3ikAuMph/yNjeVGXUtTYCok2w== X-Google-Smtp-Source: AA+uWPxgAI7W3VjJWVDGrAW/CRj34NhlF1VjkGx0Cr1r1z8Ee4sAWa5P4qwgM+CpVgprMMDWoosk3g== X-Received: by 2002:a63:a35f:: with SMTP id v31-v6mr4803771pgn.261.1534687237010; Sun, 19 Aug 2018 07:00:37 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:36 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:01 +0530 Message-Id: <20180819135715.15799-45-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 44/58] spi: sun4i: Add CLK support 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" Add CLK support to enable AHB and MOD SPI clocks on sun4i_spi driver. Signed-off-by: Jagan Teki --- drivers/spi/sun4i_spi.c | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/drivers/spi/sun4i_spi.c b/drivers/spi/sun4i_spi.c index b86b5a00ad..3be80bb39f 100644 --- a/drivers/spi/sun4i_spi.c +++ b/drivers/spi/sun4i_spi.c @@ -19,6 +19,7 @@ */ #include +#include #include #include #include @@ -238,13 +239,36 @@ static int sun4i_spi_parse_pins(struct udevice *dev) return 0; } -static inline void sun4i_spi_enable_clock(void) +static inline int sun4i_spi_enable_clock(struct udevice *dev) { - struct sunxi_ccm_reg *const ccm = - (struct sunxi_ccm_reg *const)SUNXI_CCM_BASE; + struct clk ahb_clk, mod_clk; + int ret; + + ret = clk_get_by_name(dev, "ahb", &ahb_clk); + if (ret) { + dev_err(dev, "falied to get ahb clock\n"); + return ret; + } + + ret = clk_get_by_name(dev, "mod", &mod_clk); + if (ret) { + dev_err(dev, "falied to get mod clock\n"); + return ret; + } + + ret = clk_enable(&ahb_clk); + if (ret) { + dev_err(dev, "failed to enable ahb clock\n"); + return ret; + } + + ret = clk_enable(&mod_clk); + if (ret) { + dev_err(dev, "failed to enable mod clock\n"); + return ret; + } - setbits_le32(&ccm->ahb_gate0, (1 << AHB_GATE_OFFSET_SPI0)); - writel((1 << 31), &ccm->spi0_clk_cfg); + return 0; } static int sun4i_spi_ofdata_to_platdata(struct udevice *bus) @@ -267,8 +291,12 @@ static int sun4i_spi_probe(struct udevice *bus) { struct sun4i_spi_platdata *plat = dev_get_platdata(bus); struct sun4i_spi_priv *priv = dev_get_priv(bus); + int ret; + + ret = sun4i_spi_enable_clock(bus); + if (ret) + return ret; - sun4i_spi_enable_clock(); sun4i_spi_parse_pins(bus); priv->regs = (struct sun4i_spi_regs *)(uintptr_t)plat->base_addr; From patchwork Sun Aug 19 13:57:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959349 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="mc5S8HA+"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfH52h8fz9ryn for ; Mon, 20 Aug 2018 00:20:33 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 06683C21C27; Sun, 19 Aug 2018 14:08:13 +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 68233C21E0D; Sun, 19 Aug 2018 14:02:27 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id DD2B5C21DB5; Sun, 19 Aug 2018 14:00:48 +0000 (UTC) Received: from mail-pg1-f195.google.com (mail-pg1-f195.google.com [209.85.215.195]) by lists.denx.de (Postfix) with ESMTPS id DD574C21E39 for ; Sun, 19 Aug 2018 14:00:42 +0000 (UTC) Received: by mail-pg1-f195.google.com with SMTP id y5-v6so5550639pgv.1 for ; Sun, 19 Aug 2018 07:00:42 -0700 (PDT) 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=SptziOb2EFC2kEGXu6hs8Ykp1l8WsiUo/a8KqPB6Ffg=; b=mc5S8HA+NRUVbZ3WI+jzxsF43zV4gbM9aKvfS82Z/CvebSzyP2BdEcvHzmnegsTF6c GQxtlWzd0CzZkrsbeVGrkGN7zebU73Rym5iGc/qcQuNJ1JqG96sefRNI1uz7ZYbh4Zf6 5MbCbslEa0dWuiLGMf9aUg5AAThY/EpvQ+jpE= 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=SptziOb2EFC2kEGXu6hs8Ykp1l8WsiUo/a8KqPB6Ffg=; b=hZhJVVtVBfnhEMjMQw6OI1u4mn8hWJD8a8UcTZD9NmnMQnq0NbtzMOe5K4jTJGXCqA l++GNsau4ENEng+o+5l8khEWkw3litep4LNBkHr49gB4rlP94Kgio/oI5f8r6c1sxqGj mb7e5BdOLhpezixFEg7c1gYw3SdWAI3BoF0T68XbBVaJCyt3AaG4OOyABh+3FW3rAbmS OcH7hzRCsxWuj+oyJiGpI/RFU23hBtyEbnQRHQZGTGn9oFEC3JhgY2meXlgCGO5C69+i w0da12MG3OZGrIcxJh56RKRMLF8ggo+glsypMMH33v3x7hvEVMG2Oj+PPL0q+YWHi1CS YiSQ== X-Gm-Message-State: AOUpUlEcQzuaYkf1/bXxrlOO/2YhTkxlhxsPGHtkNhcp38h+Ty44TawU Ow9PtReiRfdgHAvlr/SljOdxaQ== X-Google-Smtp-Source: AA+uWPz+ikW4z2aGC+VACdshkz+MMn01yjbUefAuXj8m6pjQNE488GMKKpV4nYFAQQS2V2PD7KXtuw== X-Received: by 2002:a63:ac54:: with SMTP id z20-v6mr4867236pgn.74.1534687241372; Sun, 19 Aug 2018 07:00:41 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:40 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:02 +0530 Message-Id: <20180819135715.15799-46-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 45/58] spi: Add Allwinner A31 SPI driver 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" Add Allwinner sun6i SPI driver for A31, H3/H5 an A64. Tested-by: Fahad Sadah Signed-off-by: Jagan Teki --- drivers/spi/Kconfig | 6 + drivers/spi/Makefile | 1 + drivers/spi/sun6i_spi.c | 475 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 482 insertions(+) create mode 100644 drivers/spi/sun6i_spi.c diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index dcd719ff0a..671658dddc 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -179,6 +179,12 @@ config SUN4I_SPI help SPI driver for Allwinner sun4i, sun5i and sun7i SoCs +config SUN6I_SPI + bool "Allwinner A31 SPI controller" + depends on ARCH_SUNXI + help + This enables using the SPI controller on the Allwinner A31 SoCs. + config TEGRA114_SPI bool "nVidia Tegra114 SPI driver" help diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile index 728e30c538..6e60091bc1 100644 --- a/drivers/spi/Makefile +++ b/drivers/spi/Makefile @@ -45,6 +45,7 @@ obj-$(CONFIG_SH_SPI) += sh_spi.o obj-$(CONFIG_SH_QSPI) += sh_qspi.o obj-$(CONFIG_STM32_QSPI) += stm32_qspi.o obj-$(CONFIG_SUN4I_SPI) += sun4i_spi.o +obj-$(CONFIG_SUN6I_SPI) += sun6i_spi.o obj-$(CONFIG_TEGRA114_SPI) += tegra114_spi.o obj-$(CONFIG_TEGRA20_SFLASH) += tegra20_sflash.o obj-$(CONFIG_TEGRA20_SLINK) += tegra20_slink.o diff --git a/drivers/spi/sun6i_spi.c b/drivers/spi/sun6i_spi.c new file mode 100644 index 0000000000..236ed86a25 --- /dev/null +++ b/drivers/spi/sun6i_spi.c @@ -0,0 +1,475 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (C) 2018 Amarula Solutions. + * Author: Jagan Teki + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define SUN6I_FIFO_DEPTH 128 +#define SUN8I_FIFO_DEPTH 64 + +#define SUN6I_GBL_CTL_BUS_ENABLE BIT(0) +#define SUN6I_GBL_CTL_MASTER BIT(1) +#define SUN6I_GBL_CTL_TP BIT(7) +#define SUN6I_GBL_CTL_RST BIT(31) + +#define SUN6I_TFR_CTL_CPHA BIT(0) +#define SUN6I_TFR_CTL_CPOL BIT(1) +#define SUN6I_TFR_CTL_SPOL BIT(2) +#define SUN6I_TFR_CTL_CS_MASK 0x30 +#define SUN6I_TFR_CTL_CS(cs) (((cs) << 4) & SUN6I_TFR_CTL_CS_MASK) +#define SUN6I_TFR_CTL_CS_MANUAL BIT(6) +#define SUN6I_TFR_CTL_CS_LEVEL BIT(7) +#define SUN6I_TFR_CTL_DHB BIT(8) +#define SUN6I_TFR_CTL_FBS BIT(12) +#define SUN6I_TFR_CTL_XCH_MASK 0x80000000 +#define SUN6I_TFR_CTL_XCH BIT(31) + +#define SUN6I_FIFO_CTL_RF_RDY_TRIG_LEVEL_MASK 0xff +#define SUN6I_FIFO_CTL_RF_RDY_TRIG_LEVEL_BITS 0 +#define SUN6I_FIFO_CTL_RF_RST BIT(15) +#define SUN6I_FIFO_CTL_TF_ERQ_TRIG_LEVEL_MASK 0xff +#define SUN6I_FIFO_CTL_TF_ERQ_TRIG_LEVEL_BITS 16 +#define SUN6I_FIFO_CTL_TF_RST BIT(31) + +#define SUN6I_CLK_CTL_CDR2_MASK 0xff +#define SUN6I_CLK_CTL_CDR2(div) (((div) & SUN6I_CLK_CTL_CDR2_MASK) << 0) +#define SUN6I_CLK_CTL_CDR1_MASK 0xf +#define SUN6I_CLK_CTL_CDR1(div) (((div) & SUN6I_CLK_CTL_CDR1_MASK) << 8) +#define SUN6I_CLK_CTL_DRS BIT(12) + +#define SUN6I_MAX_XFER_SIZE 0xffffff +#define SUN6I_BURST_CNT(cnt) ((cnt) & SUN6I_MAX_XFER_SIZE) +#define SUN6I_XMIT_CNT(cnt) ((cnt) & SUN6I_MAX_XFER_SIZE) +#define SUN6I_BURST_CTL_CNT_STC(cnt) ((cnt) & SUN6I_MAX_XFER_SIZE) + +#define SUN6I_SPI_MAX_RATE 24000000 +#define SUN6I_SPI_MIN_RATE 3000 +#define SUN6I_SPI_DEFAULT_RATE 1000000 +#define SUN6I_SPI_TIMEOUT_US 1000000 + +/* sun6i spi register set */ +struct sun6i_spi_regs { + u32 res1; /* 0x00 */ + u32 gblctl; /* 0x04 */ + u32 tfrctl; /* 0x08 */ + u32 res2; /* 0x0c */ + u32 intctl; /* 0x10 */ + u32 intsta; /* 0x14 */ + u32 fifoctl; /* 0x18 */ + u32 fifosta; /* 0x1c */ + u32 res3; /* 0x20 */ + u32 clkctl; /* 0x24 */ + u32 res4[2]; /* 0x28 */ + u32 bc; /* 0x30 */ + u32 tc; /* 0x34 */ + u32 bctlc; /* 0x38 */ + u32 res5[113]; /* 0x3c */ + u32 txdata; /* 0x200 */ + u32 res6[63]; /* 0x204 */ + u32 rxdata; /* 0x300 */ +}; + +struct sun6i_spi_platdata { + u32 base_addr; + u32 max_hz; +}; + +struct sun6i_spi_priv { + struct sun6i_spi_regs *regs; + u32 freq; + u32 mode; + u32 fifo_depth; + + const u8 *tx_buf; + u8 *rx_buf; +}; + +static inline void sun6i_spi_drain_fifo(struct sun6i_spi_priv *priv, int len) +{ + u8 byte; + + while (len--) { + byte = readb(&priv->regs->rxdata); + *priv->rx_buf++ = byte; + } +} + +static inline void sun6i_spi_fill_fifo(struct sun6i_spi_priv *priv, int len) +{ + u8 byte; + + while (len--) { + byte = priv->tx_buf ? *priv->tx_buf++ : 0; + writeb(byte, &priv->regs->txdata); + } +} + +static void sun6i_spi_set_cs(struct udevice *bus, u8 cs, bool enable) +{ + struct sun6i_spi_priv *priv = dev_get_priv(bus); + u32 reg; + + reg = readl(&priv->regs->tfrctl); + reg &= ~SUN6I_TFR_CTL_CS_MASK; + reg |= SUN6I_TFR_CTL_CS(cs); + + if (enable) + reg &= ~SUN6I_TFR_CTL_CS_LEVEL; + else + reg |= SUN6I_TFR_CTL_CS_LEVEL; + + writel(reg, &priv->regs->tfrctl); +} + +static int sun6i_spi_parse_pins(struct udevice *dev) +{ + const void *fdt = gd->fdt_blob; + const char *pin_name; + const fdt32_t *list; + u32 phandle; + int drive, pull = 0, pin, i; + int offset; + int size; + + list = fdt_getprop(fdt, dev_of_offset(dev), "pinctrl-0", &size); + if (!list) { + printf("WARNING: sun6i_spi: cannot find pinctrl-0 node\n"); + return -EINVAL; + } + + while (size) { + phandle = fdt32_to_cpu(*list++); + size -= sizeof(*list); + + offset = fdt_node_offset_by_phandle(fdt, phandle); + if (offset < 0) + return offset; + + drive = fdt_getprop_u32_default_node(fdt, offset, 0, + "drive-strength", 0); + if (drive) { + if (drive <= 10) + drive = 0; + else if (drive <= 20) + drive = 1; + else if (drive <= 30) + drive = 2; + else + drive = 3; + } else { + drive = fdt_getprop_u32_default_node(fdt, offset, 0, + "allwinner,drive", + 0); + drive = min(drive, 3); + } + + if (fdt_get_property(fdt, offset, "bias-disable", NULL)) + pull = 0; + else if (fdt_get_property(fdt, offset, "bias-pull-up", NULL)) + pull = 1; + else if (fdt_get_property(fdt, offset, "bias-pull-down", NULL)) + pull = 2; + else + pull = fdt_getprop_u32_default_node(fdt, offset, 0, + "allwinner,pull", + 0); + pull = min(pull, 2); + + for (i = 0; ; i++) { + pin_name = fdt_stringlist_get(fdt, offset, + "pins", i, NULL); + if (!pin_name) { + pin_name = fdt_stringlist_get(fdt, offset, + "allwinner,pins", + i, NULL); + if (!pin_name) + break; + } + + pin = name_to_gpio(pin_name); + if (pin < 0) + break; + + sunxi_gpio_set_cfgpin(pin, SUNXI_GPC_SPI0); + sunxi_gpio_set_drv(pin, drive); + sunxi_gpio_set_pull(pin, pull); + } + } + return 0; +} + +static inline int sun6i_spi_enable_ccu(struct udevice *dev) +{ + struct clk ahb_clk, mod_clk; + struct reset_ctl reset; + int ret; + + ret = clk_get_by_name(dev, "ahb", &ahb_clk); + if (ret) { + dev_err(dev, "failed to get ahb clock\n"); + return ret; + } + + ret = clk_get_by_name(dev, "mod", &mod_clk); + if (ret) { + dev_err(dev, "failed to get mod clock\n"); + return ret; + } + + ret = reset_get_by_index(dev, 0, &reset); + if (ret) { + dev_err(dev, "failed to get reset\n"); + return ret; + } + + ret = clk_enable(&ahb_clk); + if (ret) { + dev_err(dev, "failed to enable ahb clock\n"); + return ret; + } + + ret = clk_enable(&mod_clk); + if (ret) { + dev_err(dev, "failed to enable mod clock\n"); + return ret; + } + + ret = reset_deassert(&reset); + if (ret) { + dev_err(dev, "failed to deassert reset\n"); + return ret; + } + + return 0; +} + +static int sun6i_spi_ofdata_to_platdata(struct udevice *bus) +{ + struct sun6i_spi_platdata *plat = dev_get_platdata(bus); + int node = dev_of_offset(bus); + + plat->base_addr = devfdt_get_addr(bus); + plat->max_hz = fdtdec_get_int(gd->fdt_blob, node, + "spi-max-frequency", + SUN6I_SPI_DEFAULT_RATE); + + if (plat->max_hz > SUN6I_SPI_MAX_RATE) + plat->max_hz = SUN6I_SPI_MAX_RATE; + + return 0; +} + +static int sun6i_spi_probe(struct udevice *bus) +{ + struct sun6i_spi_platdata *plat = dev_get_platdata(bus); + struct sun6i_spi_priv *priv = dev_get_priv(bus); + int ret; + + ret = sun6i_spi_enable_ccu(bus); + if (ret) + return ret; + + sun6i_spi_parse_pins(bus); + + priv->regs = (struct sun6i_spi_regs *)(uintptr_t)plat->base_addr; + priv->freq = plat->max_hz; + priv->fifo_depth = dev_get_driver_data(bus); + + return 0; +} + +static int sun6i_spi_claim_bus(struct udevice *dev) +{ + struct sun6i_spi_priv *priv = dev_get_priv(dev->parent); + + writel(SUN6I_GBL_CTL_BUS_ENABLE | SUN6I_GBL_CTL_MASTER | + SUN6I_GBL_CTL_TP, &priv->regs->gblctl); + writel(SUN6I_TFR_CTL_CS_MANUAL, &priv->regs->tfrctl); + + return 0; +} + +static int sun6i_spi_release_bus(struct udevice *dev) +{ + struct sun6i_spi_priv *priv = dev_get_priv(dev->parent); + u32 reg; + + reg = readl(&priv->regs->gblctl); + reg &= ~SUN6I_GBL_CTL_BUS_ENABLE; + writel(reg, &priv->regs->gblctl); + + return 0; +} + +static int sun6i_spi_xfer(struct udevice *dev, unsigned int bitlen, + const void *dout, void *din, unsigned long flags) +{ + struct udevice *bus = dev->parent; + struct sun6i_spi_priv *priv = dev_get_priv(bus); + struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev); + + u32 len = bitlen / 8; + u32 reg; + u8 nbytes; + int ret; + + priv->tx_buf = dout; + priv->rx_buf = din; + + if (bitlen % 8) { + debug("%s: non byte-aligned SPI transfer.\n", __func__); + return -ENAVAIL; + } + + if (flags & SPI_XFER_BEGIN) + sun6i_spi_set_cs(bus, slave_plat->cs, true); + + /* Reset FIFOs */ + writel(SUN6I_FIFO_CTL_RF_RST | SUN6I_FIFO_CTL_TF_RST, + &priv->regs->fifoctl); + + while (len) { + /* Setup the transfer now... */ + nbytes = min(len, priv->fifo_depth); + + /* Setup the counters */ + writel(SUN6I_BURST_CNT(nbytes), &priv->regs->bc); + writel(SUN6I_XMIT_CNT(nbytes), &priv->regs->tc); + writel(SUN6I_BURST_CTL_CNT_STC(nbytes), &priv->regs->bctlc); + + /* Fill the TX FIFO */ + sun6i_spi_fill_fifo(priv, nbytes); + + /* Start the transfer */ + reg = readl(&priv->regs->tfrctl); + writel(reg | SUN6I_TFR_CTL_XCH, &priv->regs->tfrctl); + + /* Wait transfer to complete */ + ret = wait_for_bit_le32(&priv->regs->tfrctl, + SUN6I_TFR_CTL_XCH_MASK, false, + SUN6I_SPI_TIMEOUT_US, false); + if (ret) { + printf("ERROR: sun6i_spi: Timeout transferring data\n"); + sun6i_spi_set_cs(bus, slave_plat->cs, false); + return ret; + } + + /* Drain the RX FIFO */ + sun6i_spi_drain_fifo(priv, nbytes); + + len -= nbytes; + } + + if (flags & SPI_XFER_END) + sun6i_spi_set_cs(bus, slave_plat->cs, false); + + return 0; +} + +static int sun6i_spi_set_speed(struct udevice *dev, uint speed) +{ + struct sun6i_spi_platdata *plat = dev_get_platdata(dev); + struct sun6i_spi_priv *priv = dev_get_priv(dev); + unsigned int div; + u32 reg; + + if (speed > plat->max_hz) + speed = plat->max_hz; + + if (speed < SUN6I_SPI_MIN_RATE) + speed = SUN6I_SPI_MIN_RATE; + + /* + * Setup clock divider. + * + * We have two choices there. Either we can use the clock + * divide rate 1, which is calculated thanks to this formula: + * SPI_CLK = MOD_CLK / (2 ^ cdr) + * Or we can use CDR2, which is calculated with the formula: + * SPI_CLK = MOD_CLK / (2 * (cdr + 1)) + * Whether we use the former or the latter is set through the + * DRS bit. + * + * First try CDR2, and if we can't reach the expected + * frequency, fall back to CDR1. + */ + reg = readl(&priv->regs->clkctl); + div = SUN6I_SPI_MAX_RATE / (2 * speed); + if (div <= (SUN6I_CLK_CTL_CDR2_MASK + 1)) { + if (div > 0) + div--; + + reg |= SUN6I_CLK_CTL_CDR2(div) | SUN6I_CLK_CTL_DRS; + } else { + div = __ilog2(SUN6I_SPI_MAX_RATE) - __ilog2(speed); + reg |= SUN6I_CLK_CTL_CDR1(div); + } + + writel(reg, &priv->regs->clkctl); + priv->freq = speed; + + return 0; +} + +static int sun6i_spi_set_mode(struct udevice *dev, uint mode) +{ + struct sun6i_spi_priv *priv = dev_get_priv(dev); + u32 reg; + + reg = readl(&priv->regs->tfrctl); + reg &= ~(SUN6I_TFR_CTL_CPOL | SUN6I_TFR_CTL_CPHA); + + if (mode & SPI_CPOL) + reg |= SUN6I_TFR_CTL_CPOL; + + if (mode & SPI_CPHA) + reg |= SUN6I_TFR_CTL_CPHA; + + priv->mode = mode; + writel(reg, &priv->regs->tfrctl); + + return 0; +} + +static const struct dm_spi_ops sun6i_spi_ops = { + .claim_bus = sun6i_spi_claim_bus, + .release_bus = sun6i_spi_release_bus, + .xfer = sun6i_spi_xfer, + .set_speed = sun6i_spi_set_speed, + .set_mode = sun6i_spi_set_mode, +}; + +static const struct udevice_id sun6i_spi_ids[] = { + { .compatible = "allwinner,sun6i-a31-spi", + .data = SUN6I_FIFO_DEPTH }, + { .compatible = "allwinner,sun8i-h3-spi", + .data = SUN8I_FIFO_DEPTH }, + { } +}; + +U_BOOT_DRIVER(sun6i_spi) = { + .name = "sun6i_spi", + .id = UCLASS_SPI, + .of_match = sun6i_spi_ids, + .ops = &sun6i_spi_ops, + .ofdata_to_platdata = sun6i_spi_ofdata_to_platdata, + .platdata_auto_alloc_size = sizeof(struct sun6i_spi_platdata), + .priv_auto_alloc_size = sizeof(struct sun6i_spi_priv), + .probe = sun6i_spi_probe, +}; From patchwork Sun Aug 19 13:57:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959375 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="dV+vKb4D"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfYR3FFFz9s3Z for ; Mon, 20 Aug 2018 00:32:59 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 1AEF9C21E7D; Sun, 19 Aug 2018 14:12:17 +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 8014CC21F1A; Sun, 19 Aug 2018 14:03:54 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 351ECC21EDC; Sun, 19 Aug 2018 14:00:50 +0000 (UTC) Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by lists.denx.de (Postfix) with ESMTPS id CDEFBC21E7F for ; Sun, 19 Aug 2018 14:00:46 +0000 (UTC) Received: by mail-pf1-f193.google.com with SMTP id b11-v6so5501173pfo.3 for ; Sun, 19 Aug 2018 07:00:46 -0700 (PDT) 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=pGfdArz2K3ge8obduPw8mUyU2HZ31EM+wEYQFwaEGc4=; b=dV+vKb4DuWT8gdlzsvTBPAmjRRM4wMPhVk2uM9vaQHB8d8LlxKQ3oFrhHBAtfXCxh3 m3mumf5YjjqvLH+CPMh+jurauSL1sgta6zsWmu03aMYyx6VslB4sADgZI4flIISx89ag D4JLefyA8U1nows63sLqIFVHt8pyJj4OIW9AY= 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=pGfdArz2K3ge8obduPw8mUyU2HZ31EM+wEYQFwaEGc4=; b=cePyhfQXdrApObhi7M1g9IXRZFxS0wRLtJYUCc2HEITrU2mHadANFR1JBiXg8zw6WM /kIYUgJNrRalrSPjraDpA5tGv127OV+0o1gF7fnR5e6Pw5NAilUQ1cpNRonZgNYhy07n 7AKA24XzWxC5UYCq9+7aaBvL1R9X8wqRR2bq/uSmMhc+iaT3FX+oTUFDb9c0hiceVwG9 zwqhatCmiKGAnMBIc+zVdGzW/2Fb7Z0i/62kJ2gS8SFhYaMPwLqkf7QzOazexEKJ6Ygk XlcNVTDcz0+oE56CTcQUMPCNuST2zQLSBmi4S9tgDgMww6Cy/vzHdE36bqrZMYm5fXp3 wWZA== X-Gm-Message-State: AOUpUlENlFegvhJtlANtn3kWaCEaN5g4p6LPkvDSDdAIH+Qm5YpzRnwT nH5oPZnOzNG2sd/KjS7+EFQqRg== X-Google-Smtp-Source: AA+uWPwhL0+DmPS4zIByktOKKdWdgZs75VgTkpqLiGtzAQDOyFfbpQ2Lp8TDOalZJhZTumjT3R1p4g== X-Received: by 2002:a62:1756:: with SMTP id 83-v6mr44875227pfx.217.1534687245385; Sun, 19 Aug 2018 07:00:45 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:44 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:03 +0530 Message-Id: <20180819135715.15799-47-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 46/58] clk: sunxi: Implement UART clocks 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" Implement UART clocks for all Allwinner SoC clock drivers via clock map descriptor table. Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_a10.c | 9 +++++++++ drivers/clk/sunxi/clk_a10s.c | 5 +++++ drivers/clk/sunxi/clk_a23.c | 6 ++++++ drivers/clk/sunxi/clk_a31.c | 7 +++++++ drivers/clk/sunxi/clk_a64.c | 6 ++++++ drivers/clk/sunxi/clk_a83t.c | 6 ++++++ drivers/clk/sunxi/clk_h3.c | 5 +++++ drivers/clk/sunxi/clk_r40.c | 9 +++++++++ drivers/clk/sunxi/clk_v3s.c | 4 ++++ 9 files changed, 57 insertions(+) diff --git a/drivers/clk/sunxi/clk_a10.c b/drivers/clk/sunxi/clk_a10.c index ee499c402a..d145d37217 100644 --- a/drivers/clk/sunxi/clk_a10.c +++ b/drivers/clk/sunxi/clk_a10.c @@ -27,6 +27,15 @@ static struct ccu_clk_map a10_clks[] = { [CLK_AHB_SPI2] = { 0x060, BIT(22), NULL }, [CLK_AHB_SPI3] = { 0x060, BIT(23), NULL }, + [CLK_APB1_UART0] = { 0x06c, BIT(16), NULL }, + [CLK_APB1_UART1] = { 0x06c, BIT(17), NULL }, + [CLK_APB1_UART2] = { 0x06c, BIT(18), NULL }, + [CLK_APB1_UART3] = { 0x06c, BIT(19), NULL }, + [CLK_APB1_UART4] = { 0x06c, BIT(20), NULL }, + [CLK_APB1_UART5] = { 0x06c, BIT(21), NULL }, + [CLK_APB1_UART6] = { 0x06c, BIT(22), NULL }, + [CLK_APB1_UART7] = { 0x06c, BIT(23), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, diff --git a/drivers/clk/sunxi/clk_a10s.c b/drivers/clk/sunxi/clk_a10s.c index bca248f59f..5912043f19 100644 --- a/drivers/clk/sunxi/clk_a10s.c +++ b/drivers/clk/sunxi/clk_a10s.c @@ -23,6 +23,11 @@ static struct ccu_clk_map a10s_clks[] = { [CLK_AHB_SPI1] = { 0x060, BIT(21), NULL }, [CLK_AHB_SPI2] = { 0x060, BIT(22), NULL }, + [CLK_APB1_UART0] = { 0x06c, BIT(16), NULL }, + [CLK_APB1_UART1] = { 0x06c, BIT(17), NULL }, + [CLK_APB1_UART2] = { 0x06c, BIT(18), NULL }, + [CLK_APB1_UART3] = { 0x06c, BIT(19), NULL }, + #ifdef CONFIG_MMC [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, diff --git a/drivers/clk/sunxi/clk_a23.c b/drivers/clk/sunxi/clk_a23.c index 183c6275f3..331c79af81 100644 --- a/drivers/clk/sunxi/clk_a23.c +++ b/drivers/clk/sunxi/clk_a23.c @@ -20,6 +20,12 @@ static struct ccu_clk_map a23_clks[] = { [CLK_BUS_EHCI] = { 0x060, BIT(26), NULL }, [CLK_BUS_OHCI] = { 0x060, BIT(29), NULL }, + [CLK_BUS_UART0] = { 0x06c, BIT(16), NULL }, + [CLK_BUS_UART1] = { 0x06c, BIT(17), NULL }, + [CLK_BUS_UART2] = { 0x06c, BIT(18), NULL }, + [CLK_BUS_UART3] = { 0x06c, BIT(19), NULL }, + [CLK_BUS_UART4] = { 0x06c, BIT(20), NULL }, + #ifdef CONFIG_MMC [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index a5c6628c63..40803a1d64 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -28,6 +28,13 @@ static struct ccu_clk_map a31_clks[] = { [CLK_AHB1_OHCI1] = { 0x060, BIT(30), NULL }, [CLK_AHB1_OHCI2] = { 0x060, BIT(31), NULL }, + [CLK_APB2_UART0] = { 0x06c, BIT(16), NULL }, + [CLK_APB2_UART1] = { 0x06c, BIT(17), NULL }, + [CLK_APB2_UART2] = { 0x06c, BIT(18), NULL }, + [CLK_APB2_UART3] = { 0x06c, BIT(19), NULL }, + [CLK_APB2_UART4] = { 0x06c, BIT(20), NULL }, + [CLK_APB2_UART5] = { 0x06c, BIT(21), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index 218d4f09ea..13b506f983 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -24,6 +24,12 @@ static struct ccu_clk_map a64_clks[] = { [CLK_BUS_OHCI0] = { 0x060, BIT(28), NULL }, [CLK_BUS_OHCI1] = { 0x060, BIT(29), NULL }, + [CLK_BUS_UART0] = { 0x06c, BIT(16), NULL }, + [CLK_BUS_UART1] = { 0x06c, BIT(17), NULL }, + [CLK_BUS_UART2] = { 0x06c, BIT(18), NULL }, + [CLK_BUS_UART3] = { 0x06c, BIT(19), NULL }, + [CLK_BUS_UART4] = { 0x06c, BIT(20), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, diff --git a/drivers/clk/sunxi/clk_a83t.c b/drivers/clk/sunxi/clk_a83t.c index 47b7672e7f..5c1235fa7b 100644 --- a/drivers/clk/sunxi/clk_a83t.c +++ b/drivers/clk/sunxi/clk_a83t.c @@ -21,6 +21,12 @@ static struct ccu_clk_map a83t_clks[] = { [CLK_BUS_EHCI1] = { 0x060, BIT(27), NULL }, [CLK_BUS_OHCI0] = { 0x060, BIT(29), NULL }, + [CLK_BUS_UART0] = { 0x06c, BIT(16), NULL }, + [CLK_BUS_UART1] = { 0x06c, BIT(17), NULL }, + [CLK_BUS_UART2] = { 0x06c, BIT(18), NULL }, + [CLK_BUS_UART3] = { 0x06c, BIT(19), NULL }, + [CLK_BUS_UART4] = { 0x06c, BIT(20), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index f610cee745..b132ae0a0d 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -28,6 +28,11 @@ static struct ccu_clk_map h3_clks[] = { [CLK_BUS_OHCI2] = { 0x060, BIT(30), NULL }, [CLK_BUS_OHCI3] = { 0x060, BIT(31), NULL }, + [CLK_BUS_UART0] = { 0x06c, BIT(16), NULL }, + [CLK_BUS_UART1] = { 0x06c, BIT(17), NULL }, + [CLK_BUS_UART2] = { 0x06c, BIT(18), NULL }, + [CLK_BUS_UART3] = { 0x06c, BIT(19), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, diff --git a/drivers/clk/sunxi/clk_r40.c b/drivers/clk/sunxi/clk_r40.c index 24c26ad3be..1e5b1d10f7 100644 --- a/drivers/clk/sunxi/clk_r40.c +++ b/drivers/clk/sunxi/clk_r40.c @@ -25,6 +25,15 @@ static struct ccu_clk_map r40_clks[] = { [CLK_BUS_OHCI1] = { 0x060, BIT(30), NULL }, [CLK_BUS_OHCI2] = { 0x060, BIT(31), NULL }, + [CLK_BUS_UART0] = { 0x06c, BIT(16), NULL }, + [CLK_BUS_UART1] = { 0x06c, BIT(17), NULL }, + [CLK_BUS_UART2] = { 0x06c, BIT(18), NULL }, + [CLK_BUS_UART3] = { 0x06c, BIT(19), NULL }, + [CLK_BUS_UART4] = { 0x06c, BIT(20), NULL }, + [CLK_BUS_UART5] = { 0x06c, BIT(21), NULL }, + [CLK_BUS_UART6] = { 0x06c, BIT(22), NULL }, + [CLK_BUS_UART7] = { 0x06c, BIT(23), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, diff --git a/drivers/clk/sunxi/clk_v3s.c b/drivers/clk/sunxi/clk_v3s.c index ae4f6ee066..c6e57147ee 100644 --- a/drivers/clk/sunxi/clk_v3s.c +++ b/drivers/clk/sunxi/clk_v3s.c @@ -19,6 +19,10 @@ static struct ccu_clk_map v3s_clks[] = { [CLK_BUS_SPI0] = { 0x060, BIT(20), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, + [CLK_BUS_UART0] = { 0x06c, BIT(16), NULL }, + [CLK_BUS_UART1] = { 0x06c, BIT(17), NULL }, + [CLK_BUS_UART2] = { 0x06c, BIT(18), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, From patchwork Sun Aug 19 13:57:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959383 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="rJ808ueA"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfcS1mxTz9s0n for ; Mon, 20 Aug 2018 00:35:36 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id F11A0C21E89; Sun, 19 Aug 2018 14:09:01 +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 AD479C21E39; Sun, 19 Aug 2018 14:02:44 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B39B2C21DD4; Sun, 19 Aug 2018 14:00:55 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id 64EE6C21E39 for ; Sun, 19 Aug 2018 14:00:51 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id k19-v6so5498833pfi.1 for ; Sun, 19 Aug 2018 07:00:51 -0700 (PDT) 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=gUMyiVHoZsiPJ/V0d/uxaMjYhRsUbeWCsdgEG9YAYrc=; b=rJ808ueAW9xU8aMDcEEV0quPCmzP0SB7kYK+7F1xEQz1aO8NL/9ShSr1c6jGBvwTB0 A30P7YobqWPMkV9XrGl5V86p0RCVnb9GCDy2yfrTGxbN+7T/AlR9XazR0hp1E26ROJ0I UF9gWM4kYsL/MjHuHiVjEnIJdAEtSw+qfSya0= 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=gUMyiVHoZsiPJ/V0d/uxaMjYhRsUbeWCsdgEG9YAYrc=; b=l1HAxVWiBlXf3MUlZZb8FwrkyMRxnc/XbIR9DL7eV9jQMh+9amwJlzy6r23dLJ99va 7mjGy7SLWCp07/c2E9lLRItSJNTHBhPXt6+ZS0o5tVGJFDHrxPJpfHVtVi2BZk+t2Y+w OGV+Sq8drQFbvdXp0HCOFbjc4Et8daMTTSEuTJ3pul99PzbDtv1eOfYKPpo1FSECOMpA Y8eff/aPlYuXennsDMXKlpiAwVSf8vBeiZMdXUSVNBUZOIHj6h0/8HnIz9kA9Rzu0uAh 3jqSy75guQ4jYptcqwr1NJVdT0aeUeiNlVdTgxjsNWs/e2HzEog33lyp0Ts3S9CT3cpH mI6w== X-Gm-Message-State: AOUpUlHFjlL5nOZWaEhQFQYgH5rVuL+HFNwt/DNmnTkQOkOi6ME89qDU vPztlFfiXGK36bCUjLFh/uyp7w== X-Google-Smtp-Source: AA+uWPzUqOtXCuAmKImK5ov8v1slkxiqC4i8W8dLdhYov+mdDRrcrAc9aAr4Dz0njT7XFKME6XvE+w== X-Received: by 2002:a63:7e1c:: with SMTP id z28-v6mr7952317pgc.246.1534687249969; Sun, 19 Aug 2018 07:00:49 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:49 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:04 +0530 Message-Id: <20180819135715.15799-48-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 47/58] clk: sunxi: Implement UART resets 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" Implement UART resets for all relevant Allwinner SoC clock drivers via reset map descriptor table. Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_a23.c | 6 ++++++ drivers/clk/sunxi/clk_a31.c | 7 +++++++ drivers/clk/sunxi/clk_a64.c | 6 ++++++ drivers/clk/sunxi/clk_a83t.c | 6 ++++++ drivers/clk/sunxi/clk_h3.c | 5 +++++ drivers/clk/sunxi/clk_r40.c | 9 +++++++++ drivers/clk/sunxi/clk_v3s.c | 4 ++++ 7 files changed, 43 insertions(+) diff --git a/drivers/clk/sunxi/clk_a23.c b/drivers/clk/sunxi/clk_a23.c index 331c79af81..268148002b 100644 --- a/drivers/clk/sunxi/clk_a23.c +++ b/drivers/clk/sunxi/clk_a23.c @@ -50,6 +50,12 @@ static struct ccu_reset_map a23_resets[] = { [RST_BUS_OTG] = { 0x2c0, BIT(24) }, [RST_BUS_EHCI] = { 0x2c0, BIT(26) }, [RST_BUS_OHCI] = { 0x2c0, BIT(29) }, + + [RST_BUS_UART0] = { 0x2d8, BIT(16) }, + [RST_BUS_UART1] = { 0x2d8, BIT(17) }, + [RST_BUS_UART2] = { 0x2d8, BIT(18) }, + [RST_BUS_UART3] = { 0x2d8, BIT(19) }, + [RST_BUS_UART4] = { 0x2d8, BIT(20) }, }; static const struct ccu_desc sun8i_a23_ccu_desc = { diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index 40803a1d64..288979a18f 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -72,6 +72,13 @@ static struct ccu_reset_map a31_resets[] = { [RST_AHB1_OHCI0] = { 0x2c0, BIT(29) }, [RST_AHB1_OHCI1] = { 0x2c0, BIT(30) }, [RST_AHB1_OHCI2] = { 0x2c0, BIT(31) }, + + [RST_APB2_UART0] = { 0x2d8, BIT(16) }, + [RST_APB2_UART1] = { 0x2d8, BIT(17) }, + [RST_APB2_UART2] = { 0x2d8, BIT(18) }, + [RST_APB2_UART3] = { 0x2d8, BIT(19) }, + [RST_APB2_UART4] = { 0x2d8, BIT(20) }, + [RST_APB2_UART5] = { 0x2d8, BIT(21) }, }; static const struct ccu_desc sun6i_a31_ccu_desc = { diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index 13b506f983..344cfb59aa 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -60,6 +60,12 @@ static struct ccu_reset_map a64_resets[] = { [RST_BUS_EHCI1] = { 0x2c0, BIT(25) }, [RST_BUS_OHCI0] = { 0x2c0, BIT(28) }, [RST_BUS_OHCI1] = { 0x2c0, BIT(29) }, + + [RST_BUS_UART0] = { 0x2d8, BIT(16) }, + [RST_BUS_UART1] = { 0x2d8, BIT(17) }, + [RST_BUS_UART2] = { 0x2d8, BIT(18) }, + [RST_BUS_UART3] = { 0x2d8, BIT(19) }, + [RST_BUS_UART4] = { 0x2d8, BIT(20) }, }; static const struct ccu_desc sun50i_a64_ccu_desc = { diff --git a/drivers/clk/sunxi/clk_a83t.c b/drivers/clk/sunxi/clk_a83t.c index 5c1235fa7b..cf9455da97 100644 --- a/drivers/clk/sunxi/clk_a83t.c +++ b/drivers/clk/sunxi/clk_a83t.c @@ -50,6 +50,12 @@ static struct ccu_reset_map a83t_resets[] = { [RST_BUS_EHCI0] = { 0x2c0, BIT(26) }, [RST_BUS_EHCI1] = { 0x2c0, BIT(27) }, [RST_BUS_OHCI0] = { 0x2c0, BIT(29) }, + + [RST_BUS_UART0] = { 0x2d8, BIT(16) }, + [RST_BUS_UART1] = { 0x2d8, BIT(17) }, + [RST_BUS_UART2] = { 0x2d8, BIT(18) }, + [RST_BUS_UART3] = { 0x2d8, BIT(19) }, + [RST_BUS_UART4] = { 0x2d8, BIT(20) }, }; static const struct ccu_desc sun8i_a83t_ccu_desc = { diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index b132ae0a0d..15d933a6c5 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -70,6 +70,11 @@ static struct ccu_reset_map h3_resets[] = { [RST_BUS_OHCI1] = { 0x2c0, BIT(29) }, [RST_BUS_OHCI2] = { 0x2c0, BIT(30) }, [RST_BUS_OHCI3] = { 0x2c0, BIT(31) }, + + [RST_BUS_UART0] = { 0x2d8, BIT(16) }, + [RST_BUS_UART1] = { 0x2d8, BIT(17) }, + [RST_BUS_UART2] = { 0x2d8, BIT(18) }, + [RST_BUS_UART3] = { 0x2d8, BIT(19) }, }; static const struct ccu_desc sun8i_h3_ccu_desc = { diff --git a/drivers/clk/sunxi/clk_r40.c b/drivers/clk/sunxi/clk_r40.c index 1e5b1d10f7..ee699d26ee 100644 --- a/drivers/clk/sunxi/clk_r40.c +++ b/drivers/clk/sunxi/clk_r40.c @@ -63,6 +63,15 @@ static struct ccu_reset_map r40_resets[] = { [RST_BUS_OHCI0] = { 0x2c0, BIT(29) }, [RST_BUS_OHCI1] = { 0x2c0, BIT(30) }, [RST_BUS_OHCI2] = { 0x2c0, BIT(31) }, + + [RST_BUS_UART0] = { 0x2d8, BIT(16) }, + [RST_BUS_UART1] = { 0x2d8, BIT(17) }, + [RST_BUS_UART2] = { 0x2d8, BIT(18) }, + [RST_BUS_UART3] = { 0x2d8, BIT(19) }, + [RST_BUS_UART4] = { 0x2d8, BIT(20) }, + [RST_BUS_UART5] = { 0x2d8, BIT(21) }, + [RST_BUS_UART6] = { 0x2d8, BIT(22) }, + [RST_BUS_UART7] = { 0x2d8, BIT(23) }, }; static const struct ccu_desc sun8i_r40_ccu_desc = { diff --git a/drivers/clk/sunxi/clk_v3s.c b/drivers/clk/sunxi/clk_v3s.c index c6e57147ee..87ca0350d8 100644 --- a/drivers/clk/sunxi/clk_v3s.c +++ b/drivers/clk/sunxi/clk_v3s.c @@ -40,6 +40,10 @@ static struct ccu_reset_map v3s_resets[] = { [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, [RST_BUS_SPI0] = { 0x2c0, BIT(20) }, [RST_BUS_OTG] = { 0x2c0, BIT(24) }, + + [RST_BUS_UART0] = { 0x2d8, BIT(16) }, + [RST_BUS_UART1] = { 0x2d8, BIT(17) }, + [RST_BUS_UART2] = { 0x2d8, BIT(18) }, }; static const struct ccu_desc sun8i_v3s_ccu_desc = { From patchwork Sun Aug 19 13:57:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959366 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="MrcC15n3"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfTN0BCNz9s5c for ; Mon, 20 Aug 2018 00:29:27 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 9F6EFC21EC8; Sun, 19 Aug 2018 14:15: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 C0DEAC21E6C; Sun, 19 Aug 2018 14:10:31 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 69F3BC21E2F; Sun, 19 Aug 2018 14:01:00 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id EAFDEC21E35 for ; Sun, 19 Aug 2018 14:00:55 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id d4-v6so5502746pfn.0 for ; Sun, 19 Aug 2018 07:00:55 -0700 (PDT) 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=6F6M163vWa4jxqFXPc7mBs5QB3mH4Dk4YeoW7Wj60Cc=; b=MrcC15n3nGUrnkFHR7WFPSf5FhemLWi+D1llYDvAFiwGpdSvggoyK0F8dmFV7obchC E64Volr1fkn9WSVM1neQWW1zlIpfib8VX1Qv/d+MG0rxe41S3nUP0Vz97Dq/94+jjreb 8PiV4fF2yG0tzpIjtlQLCZd7ZKWELNRpijBoc= 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=6F6M163vWa4jxqFXPc7mBs5QB3mH4Dk4YeoW7Wj60Cc=; b=SYbyuk4nEU/f/a5E012sfnxShyHMHl5j2Wr38b5Ow3vGj52cQJh1IBzxpk77vuzrBD 79qTqDv3pzT/AjpUg9ec8OezkSOSZa5cAzzV9Rln0yq3rOo5bH1b5tJwkP2/m8awfU2A 2gUkjRjO/LG0SOj2hmwUpkABYWibwLOqOlNENbVAjYiMHfdhQAYX6yzwkpMp54x+l5wz 0Pg+3LEDy/H+WU2u0vKfsc/5E1hSfqRx4MHIdXChyP4kOdZxLfEPdbMnze2AvVmoAIO+ VxL9/OlpyPDihIxiCzqLnv0qgqvC7mgjOtOMFEvHE8EfB4z8KQrrDuheTxdI7rn0XhHP eEYA== X-Gm-Message-State: AOUpUlGDxSvfZQ0lRc9fiwURrLUfDWMOUJ6W6CqtCGo2tCFG78PVTRD9 CT3D9hvMBFUa9pC3OO+zYLj2+g== X-Google-Smtp-Source: AA+uWPzElMLM4N4Uo+AAugoHURHVvUOrGAh+b+IszfS9zUu+AslHjzkqMW++JkcW+A3EkSFUP/iRgA== X-Received: by 2002:a63:1948:: with SMTP id 8-v6mr2959833pgz.192.1534687254355; Sun, 19 Aug 2018 07:00:54 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:53 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:05 +0530 Message-Id: <20180819135715.15799-49-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Joe Hershberger , Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 48/58] clk: sunxi: Implement Ethernet clocks 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" Implement Ethernet clocks for all Allwinner SoCs clock drivers via clock map descriptor table. Cc: Joe Hershberger Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_a10.c | 3 +++ drivers/clk/sunxi/clk_a10s.c | 1 + drivers/clk/sunxi/clk_a31.c | 1 + drivers/clk/sunxi/clk_a64.c | 1 + drivers/clk/sunxi/clk_a83t.c | 1 + drivers/clk/sunxi/clk_h3.c | 1 + drivers/clk/sunxi/clk_r40.c | 2 ++ 7 files changed, 10 insertions(+) diff --git a/drivers/clk/sunxi/clk_a10.c b/drivers/clk/sunxi/clk_a10.c index d145d37217..fc939a313d 100644 --- a/drivers/clk/sunxi/clk_a10.c +++ b/drivers/clk/sunxi/clk_a10.c @@ -22,11 +22,14 @@ static struct ccu_clk_map a10_clks[] = { [CLK_AHB_MMC1] = { 0x060, BIT(9), NULL }, [CLK_AHB_MMC2] = { 0x060, BIT(10), NULL }, [CLK_AHB_MMC3] = { 0x060, BIT(11), NULL }, + [CLK_AHB_EMAC] = { 0x060, BIT(17), NULL }, [CLK_AHB_SPI0] = { 0x060, BIT(20), NULL }, [CLK_AHB_SPI1] = { 0x060, BIT(21), NULL }, [CLK_AHB_SPI2] = { 0x060, BIT(22), NULL }, [CLK_AHB_SPI3] = { 0x060, BIT(23), NULL }, + [CLK_AHB_GMAC] = { 0x064, BIT(17), NULL }, + [CLK_APB1_UART0] = { 0x06c, BIT(16), NULL }, [CLK_APB1_UART1] = { 0x06c, BIT(17), NULL }, [CLK_APB1_UART2] = { 0x06c, BIT(18), NULL }, diff --git a/drivers/clk/sunxi/clk_a10s.c b/drivers/clk/sunxi/clk_a10s.c index 5912043f19..6ce53dc27d 100644 --- a/drivers/clk/sunxi/clk_a10s.c +++ b/drivers/clk/sunxi/clk_a10s.c @@ -19,6 +19,7 @@ static struct ccu_clk_map a10s_clks[] = { [CLK_AHB_MMC0] = { 0x060, BIT(8), NULL }, [CLK_AHB_MMC1] = { 0x060, BIT(9), NULL }, [CLK_AHB_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_AHB_EMAC] = { 0x060, BIT(17), NULL }, [CLK_AHB_SPI0] = { 0x060, BIT(20), NULL }, [CLK_AHB_SPI1] = { 0x060, BIT(21), NULL }, [CLK_AHB_SPI2] = { 0x060, BIT(22), NULL }, diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index 288979a18f..d7a6b2421f 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -17,6 +17,7 @@ static struct ccu_clk_map a31_clks[] = { [CLK_AHB1_MMC1] = { 0x060, BIT(9), NULL }, [CLK_AHB1_MMC2] = { 0x060, BIT(10), NULL }, [CLK_AHB1_MMC3] = { 0x060, BIT(12), NULL }, + [CLK_AHB1_EMAC] = { 0x060, BIT(17), NULL }, [CLK_AHB1_SPI0] = { 0x060, BIT(20), NULL }, [CLK_AHB1_SPI1] = { 0x060, BIT(21), NULL }, [CLK_AHB1_SPI2] = { 0x060, BIT(22), NULL }, diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index 344cfb59aa..546ddcffa2 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -16,6 +16,7 @@ static struct ccu_clk_map a64_clks[] = { [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_BUS_EMAC] = { 0x060, BIT(17), NULL }, [CLK_BUS_SPI0] = { 0x060, BIT(20), NULL }, [CLK_BUS_SPI1] = { 0x060, BIT(21), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(23), NULL }, diff --git a/drivers/clk/sunxi/clk_a83t.c b/drivers/clk/sunxi/clk_a83t.c index cf9455da97..593ce1ac1b 100644 --- a/drivers/clk/sunxi/clk_a83t.c +++ b/drivers/clk/sunxi/clk_a83t.c @@ -16,6 +16,7 @@ static struct ccu_clk_map a83t_clks[] = { [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_BUS_EMAC] = { 0x060, BIT(17), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(24), NULL }, [CLK_BUS_EHCI0] = { 0x060, BIT(26), NULL }, [CLK_BUS_EHCI1] = { 0x060, BIT(27), NULL }, diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index 15d933a6c5..ff9f294097 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -16,6 +16,7 @@ static struct ccu_clk_map h3_clks[] = { [CLK_BUS_MMC0] = { 0x060, BIT(8), NULL }, [CLK_BUS_MMC1] = { 0x060, BIT(9), NULL }, [CLK_BUS_MMC2] = { 0x060, BIT(10), NULL }, + [CLK_BUS_EMAC] = { 0x060, BIT(17), NULL }, [CLK_BUS_SPI0] = { 0x060, BIT(20), NULL }, [CLK_BUS_SPI1] = { 0x060, BIT(21), NULL }, [CLK_BUS_OTG] = { 0x060, BIT(23), NULL }, diff --git a/drivers/clk/sunxi/clk_r40.c b/drivers/clk/sunxi/clk_r40.c index ee699d26ee..e5bddc77ee 100644 --- a/drivers/clk/sunxi/clk_r40.c +++ b/drivers/clk/sunxi/clk_r40.c @@ -25,6 +25,8 @@ static struct ccu_clk_map r40_clks[] = { [CLK_BUS_OHCI1] = { 0x060, BIT(30), NULL }, [CLK_BUS_OHCI2] = { 0x060, BIT(31), NULL }, + [CLK_BUS_GMAC] = { 0x064, BIT(17), NULL }, + [CLK_BUS_UART0] = { 0x06c, BIT(16), NULL }, [CLK_BUS_UART1] = { 0x06c, BIT(17), NULL }, [CLK_BUS_UART2] = { 0x06c, BIT(18), NULL }, From patchwork Sun Aug 19 13:57:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959347 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="TvPee3A1"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfGB4bDPz9ryn for ; Mon, 20 Aug 2018 00:19:46 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 310C8C21E45; Sun, 19 Aug 2018 14:16:19 +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 ECD71C21E49; Sun, 19 Aug 2018 14:11:04 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 52E24C21E49; Sun, 19 Aug 2018 14:01:05 +0000 (UTC) Received: from mail-pl0-f68.google.com (mail-pl0-f68.google.com [209.85.160.68]) by lists.denx.de (Postfix) with ESMTPS id 1ECACC21E2B for ; Sun, 19 Aug 2018 14:01:00 +0000 (UTC) Received: by mail-pl0-f68.google.com with SMTP id j8-v6so5800722pll.12 for ; Sun, 19 Aug 2018 07:01:00 -0700 (PDT) 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=1/JOa9t/hSAnV0l5WioONIXtSQTAXL99M0y5EX7uTAo=; b=TvPee3A1UZn+NEX8AzxaPYq6eWPsSLfQBmNT9cduKxNyMdXWohmAqjFTwwQBd+za+s MIFUTwiTLaCDE8dslmXZdOkuTz8Azfv2nxGgPrBE208D2bF/LrHY2kzVehj4pafigY60 KKmHS0u65pVu7GzpewDgrPGZfjjQaNLFkUOVI= 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=1/JOa9t/hSAnV0l5WioONIXtSQTAXL99M0y5EX7uTAo=; b=Wf3JFXSpJAOiKF79po7XrBoDppau7XNDeL7vybFsQ61ZdjZMIMgWKSmhy212eF7XmX xffllYmp6sE0wOqQ25MvGI7E/FMePNPUjkVMp1wd3wVY3hbjS4Xh/64fQ897bJRqlfhs wACiI2/3fcmN7UL9DklJgv6exDUMhRpmlnNwHojjJiJDzl6cTEu5L0gmeON3HpLWEY6i eAtW2lQ4eWmR67CuagdsJy6gH50xgvgK0fOnw3RnFlGMWhWYDgetPcuTX1oF+pNtEUiN XeM6GpGhs4wGJpguMfUv/TWj6+PdjW9X1FXnEnrrsQ46Ya4pppu3/l8UrxVbQAfOAnfO UHmQ== X-Gm-Message-State: AOUpUlF2CxXmuEEXh3uGPUrcdmF0F5BlIljVCAqF0007IwF9SSH0ITtx UF1G+vktWsEbofNPTLRJJvlCWw== X-Google-Smtp-Source: AA+uWPwbV9EiRC4YPDie56yHu9Hw4dgjSQJzt8z75W/p4KMdznOR/PRSVkzb2whPW3h/JkD/tjkU7w== X-Received: by 2002:a17:902:70cc:: with SMTP id l12-v6mr41597875plt.132.1534687258690; Sun, 19 Aug 2018 07:00:58 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:00:58 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:06 +0530 Message-Id: <20180819135715.15799-50-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Joe Hershberger , Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 49/58] clk: sunxi: Implement Ethernet resets 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" Implement Ethernet resets for all relevant Allwinner SoC clock drivers via reset map descriptor table. Cc: Joe Hershberger Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_a31.c | 1 + drivers/clk/sunxi/clk_a64.c | 1 + drivers/clk/sunxi/clk_a83t.c | 1 + drivers/clk/sunxi/clk_h3.c | 1 + drivers/clk/sunxi/clk_r40.c | 2 ++ 5 files changed, 6 insertions(+) diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index d7a6b2421f..9023640913 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -63,6 +63,7 @@ static struct ccu_reset_map a31_resets[] = { [RST_AHB1_MMC1] = { 0x2c0, BIT(9) }, [RST_AHB1_MMC2] = { 0x2c0, BIT(10) }, [RST_AHB1_MMC3] = { 0x2c0, BIT(11) }, + [RST_AHB1_EMAC] = { 0x2c0, BIT(17) }, [RST_AHB1_SPI0] = { 0x2c0, BIT(20) }, [RST_AHB1_SPI1] = { 0x2c0, BIT(21) }, [RST_AHB1_SPI2] = { 0x2c0, BIT(22) }, diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index 546ddcffa2..b2df499a24 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -54,6 +54,7 @@ static struct ccu_reset_map a64_resets[] = { [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, + [RST_BUS_EMAC] = { 0x2c0, BIT(17) }, [RST_BUS_SPI0] = { 0x2c0, BIT(20) }, [RST_BUS_SPI1] = { 0x2c0, BIT(21) }, [RST_BUS_OTG] = { 0x2c0, BIT(23) }, diff --git a/drivers/clk/sunxi/clk_a83t.c b/drivers/clk/sunxi/clk_a83t.c index 593ce1ac1b..e1780d6729 100644 --- a/drivers/clk/sunxi/clk_a83t.c +++ b/drivers/clk/sunxi/clk_a83t.c @@ -47,6 +47,7 @@ static struct ccu_reset_map a83t_resets[] = { [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, + [RST_BUS_EMAC] = { 0x2c0, BIT(17) }, [RST_BUS_OTG] = { 0x2c0, BIT(24) }, [RST_BUS_EHCI0] = { 0x2c0, BIT(26) }, [RST_BUS_EHCI1] = { 0x2c0, BIT(27) }, diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index ff9f294097..88086580f4 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -60,6 +60,7 @@ static struct ccu_reset_map h3_resets[] = { [RST_BUS_MMC0] = { 0x2c0, BIT(8) }, [RST_BUS_MMC1] = { 0x2c0, BIT(9) }, [RST_BUS_MMC2] = { 0x2c0, BIT(10) }, + [RST_BUS_EMAC] = { 0x2c0, BIT(17) }, [RST_BUS_SPI0] = { 0x2c0, BIT(20) }, [RST_BUS_SPI1] = { 0x2c0, BIT(21) }, [RST_BUS_OTG] = { 0x2c0, BIT(23) }, diff --git a/drivers/clk/sunxi/clk_r40.c b/drivers/clk/sunxi/clk_r40.c index e5bddc77ee..cf00cf1011 100644 --- a/drivers/clk/sunxi/clk_r40.c +++ b/drivers/clk/sunxi/clk_r40.c @@ -66,6 +66,8 @@ static struct ccu_reset_map r40_resets[] = { [RST_BUS_OHCI1] = { 0x2c0, BIT(30) }, [RST_BUS_OHCI2] = { 0x2c0, BIT(31) }, + [RST_BUS_GMAC] = { 0x2c0, BIT(17) }, + [RST_BUS_UART0] = { 0x2d8, BIT(16) }, [RST_BUS_UART1] = { 0x2d8, BIT(17) }, [RST_BUS_UART2] = { 0x2d8, BIT(18) }, From patchwork Sun Aug 19 13:57:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959351 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="Djkpc+An"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfHw6cTkz9ryn for ; Mon, 20 Aug 2018 00:21:16 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 9E7E0C21E31; Sun, 19 Aug 2018 14:10:27 +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 1FB98C21EE5; Sun, 19 Aug 2018 14:03:21 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 46CFEC21EBE; Sun, 19 Aug 2018 14:01:08 +0000 (UTC) Received: from mail-pl0-f66.google.com (mail-pl0-f66.google.com [209.85.160.66]) by lists.denx.de (Postfix) with ESMTPS id 8A07DC21E35 for ; Sun, 19 Aug 2018 14:01:04 +0000 (UTC) Received: by mail-pl0-f66.google.com with SMTP id p4-v6so2262083pll.8 for ; Sun, 19 Aug 2018 07:01:04 -0700 (PDT) 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=QF8KGL1H9BAavJg2Qqm1kHQNh3c5QGit3aYBvz7PNkM=; b=Djkpc+AnLKUmpAkYYnRcAiRVVaipoICGAHxGX3kurLw/CbOwCPQLdDCSOI2CkbSHkQ T0DgWwl3smdvdw8IS2GeMxLCNWFHG2QYk+ruNB1x/YGsMm+Qe5dlz6PCBEluNMpTl1EF gGnr1yIuZPGE5N6KxUuDX514n9tHm9Lh+/7UU= 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=QF8KGL1H9BAavJg2Qqm1kHQNh3c5QGit3aYBvz7PNkM=; b=poUROu5PWXdHfh9GKC7UOfWVjJiI30ROFaqegA7bCi2ZN+QyxiAzqDSYEXztbuysfc NnP66wpESuas9KELUTPRXuBZwPwO2yNRUfWrydKHBCrwFJLIKFpLbWUleqdEa+iIdciF Q82DgxwlY66hrrznIzzKzbYYoLwGp9fJK0E+5eKovtYS6T7k847s55RbCXY9rVyCidOC 4NY9JzRozr7qtRU8CEpKwXnlvPt7kOHJcpV9c+8p/xaqoD4khpzKsJJO384/Up99Sppe OJPdxqmFLTkmAHSN1KsYunPBysYUaq3gTFnpEbBCyH+k5Fo+3A0sR2nG1OPwZUBak3su yNoA== X-Gm-Message-State: AOUpUlFJwA6n5YPZbocR7QxH742/ZFoAEcZboG43eD19beTTptScnVuE jSwe2/rcK3sa44kNctQ+cn+Rcg== X-Google-Smtp-Source: AA+uWPzRABKEf15vtrjuPVnKtlaDABbxZuZv6Xvm3A5aJVP0asuTdxtm/oQ+R1R1yqZBe255ZIZveQ== X-Received: by 2002:a17:902:7084:: with SMTP id z4-v6mr2687584plk.147.1534687263169; Sun, 19 Aug 2018 07:01:03 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.00.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:01:02 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:07 +0530 Message-Id: <20180819135715.15799-51-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Joe Hershberger , Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 50/58] net: sunxi_emac: Add CLK support 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" Add CLk support for sunxi_emac to enable AHB_EMAC clock via CLK framework. Cc: Joe Hershberger Signed-off-by: Jagan Teki --- drivers/net/sunxi_emac.c | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/drivers/net/sunxi_emac.c b/drivers/net/sunxi_emac.c index 8dbd3c50c1..4d152b0ca0 100644 --- a/drivers/net/sunxi_emac.c +++ b/drivers/net/sunxi_emac.c @@ -6,6 +6,7 @@ */ #include +#include #include #include #include @@ -157,6 +158,7 @@ struct sunxi_sramc_regs { struct emac_eth_dev { struct emac_regs *regs; + struct clk clk; struct mii_dev *bus; struct phy_device *phydev; int link_printed; @@ -500,14 +502,12 @@ static int _sunxi_emac_eth_send(struct emac_eth_dev *priv, void *packet, return 0; } -static void sunxi_emac_board_setup(struct emac_eth_dev *priv) +static int sunxi_emac_board_setup(struct emac_eth_dev *priv) { - struct sunxi_ccm_reg *const ccm = - (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; struct sunxi_sramc_regs *sram = (struct sunxi_sramc_regs *)SUNXI_SRAMC_BASE; struct emac_regs *regs = priv->regs; - int pin; + int pin, ret; /* Map SRAM to EMAC */ setbits_le32(&sram->ctrl1, 0x5 << 2); @@ -517,10 +517,16 @@ static void sunxi_emac_board_setup(struct emac_eth_dev *priv) sunxi_gpio_set_cfgpin(pin, SUNXI_GPA_EMAC); /* Set up clock gating */ - setbits_le32(&ccm->ahb_gate0, 0x1 << AHB_GATE_OFFSET_EMAC); + ret = clk_enable(&priv->clk); + if (ret) { + dev_err(dev, "failed to enable emac clock\n"); + return ret; + } /* Set MII clock */ clrsetbits_le32(®s->mac_mcfg, 0xf << 2, 0xd << 2); + + return 0; } static int sunxi_emac_eth_start(struct udevice *dev) @@ -557,9 +563,19 @@ static int sunxi_emac_eth_probe(struct udevice *dev) { struct eth_pdata *pdata = dev_get_platdata(dev); struct emac_eth_dev *priv = dev_get_priv(dev); + int ret; priv->regs = (struct emac_regs *)pdata->iobase; - sunxi_emac_board_setup(priv); + + ret = clk_get_by_index(dev, 0, &priv->clk); + if (ret) { + dev_err(dev, "falied to get emac clock\n"); + return ret; + } + + ret = sunxi_emac_board_setup(priv); + if (ret) + return ret; return sunxi_emac_init_phy(priv, dev); } From patchwork Sun Aug 19 13:57:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959338 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="qlrCyxJr"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tf2R2sSGz9s5c for ; Mon, 20 Aug 2018 00:09:35 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id E8E3AC21E16; Sun, 19 Aug 2018 14:06:40 +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 7F5F7C21E56; Sun, 19 Aug 2018 14:01:18 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D81D2C21E7F; Sun, 19 Aug 2018 14:01:14 +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 1E88FC21E26 for ; Sun, 19 Aug 2018 14:01:10 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id h12-v6so5552381pgs.3 for ; Sun, 19 Aug 2018 07:01:10 -0700 (PDT) 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=AzA+KPyCfsb236ptY53TzSYK+N5KgDT7QWZcTgnKb0o=; b=qlrCyxJr9CPLASsHD9YnG5kLuB0KhxGfNQQtdTDZ79aumFmGjfBWKWKW6a8ysYyqMn 5g3/EPvCMFykClJo10ajfM4fw5MzXqJV3lY6bNm8jaDdUq3uD6UIMz4RpBfhMkC/N3Yd YZfOAcWPhGXBufWATQFLLd8QXJj1+/mEm819k= 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=AzA+KPyCfsb236ptY53TzSYK+N5KgDT7QWZcTgnKb0o=; b=rtWzEr3mAaBAHO8rFnULmBtfqjpgmEcvMHCH9naoFm4ZHffFX2DKegPtLPYXr1lpJ6 DeEw5AmMyAsYpWgw+HXpkivY/PAGEDAOAdQ0zFMsoz2IE9N6qhCxfsbUdu25+yJ3K30o KnTooQ/LU97y7UrfVsod4hHfi8iITefIyFEaeRdq1HkszBWXtitblRJePD68rVK3vXXj iAS7v3IHt4glR2ttOJPt9T0wOH8Eyj75tSEvKM9MACxJlgvo18EmU62ja52BBxMi5jKh wxnzUkJArJ6lv2suWFdgBjLct7yOLID3LgmEw3Gczpvaitcl7Ez6v1nYzbqe7TesQo7S P/PA== X-Gm-Message-State: AOUpUlEljC5ZNm69TrNoZkavw3ZokxKvn1x8Xd8Z8Q9wIq0ECKCmJByV 5hOXLejLqO0SjzIvW9TM3ro8aw== X-Google-Smtp-Source: AA+uWPzCX7wYkFJV9oV4WnuErMmJlxIYF5cFKU3XgDIJZzjpOuhk9pJ3BwcyMGyOafAfSkV0LsGKGw== X-Received: by 2002:a62:e18:: with SMTP id w24-v6mr44150985pfi.145.1534687268057; Sun, 19 Aug 2018 07:01:08 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.01.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:01:07 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:08 +0530 Message-Id: <20180819135715.15799-52-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de, Joe Hershberger Subject: [U-Boot] [PATCH v3 51/58] net: sun8i_emac: Retrieve GMAC clock via 'syscon' phandle 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" Unlike other Allwinner SoC's R40 GMAC clock control register is locate in CCU, but rest located via syscon itself. Since the phandle property for current code look for 'syscon' and it will grab the respective ccu or syscon base address based on DT property defined in respective SoC dtsi. So, use the existing 'syscon' code even for R40 for retrieving GMAC clock via CCU and update the register directly in sun8i_emac_set_syscon instead of writing it separately using ccm base. Cc: Joe Hershberger Cc: Lothar Felten Signed-off-by: Jagan Teki --- drivers/net/sun8i_emac.c | 55 ++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index 3ba3a1ff8b..5ee4c2f993 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -278,10 +278,18 @@ static int sun8i_emac_set_syscon(struct emac_eth_dev *priv) int ret; u32 reg; - reg = readl(priv->sysctl_reg + 0x30); + if (priv->variant == R40_GMAC) { + /* Select RGMII for R40 */ + reg = readl(priv->sysctl_reg + 0x164); + reg |= CCM_GMAC_CTRL_TX_CLK_SRC_INT_RGMII | + CCM_GMAC_CTRL_GPIT_RGMII | + CCM_GMAC_CTRL_TX_CLK_DELAY(CONFIG_GMAC_TX_DELAY); - if (priv->variant == R40_GMAC) + writel(reg, priv->sysctl_reg + 0x164); return 0; + } + + reg = readl(priv->sysctl_reg + 0x30); if (priv->variant == H3_EMAC) { ret = sun8i_emac_set_syscon_ephy(priv, ®); @@ -647,13 +655,6 @@ static void sun8i_emac_board_setup(struct emac_eth_dev *priv) /* De-assert EMAC */ setbits_le32(&ccm->ahb_gate1, BIT(AHB_GATE_OFFSET_GMAC)); - - /* Select RGMII for R40 */ - setbits_le32(&ccm->gmac_clk_cfg, - CCM_GMAC_CTRL_TX_CLK_SRC_INT_RGMII | - CCM_GMAC_CTRL_GPIT_RGMII); - setbits_le32(&ccm->gmac_clk_cfg, - CCM_GMAC_CTRL_TX_CLK_DELAY(CONFIG_GMAC_TX_DELAY)); } else { /* Set clock gating for emac */ setbits_le32(&ccm->ahb_gate0, BIT(AHB_GATE_OFFSET_GMAC)); @@ -834,25 +835,23 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev) return -EINVAL; } - if (priv->variant != R40_GMAC) { - offset = fdtdec_lookup_phandle(gd->fdt_blob, node, "syscon"); - if (offset < 0) { - debug("%s: cannot find syscon node\n", __func__); - return -EINVAL; - } - reg = fdt_getprop(gd->fdt_blob, offset, "reg", NULL); - if (!reg) { - debug("%s: cannot find reg property in syscon node\n", - __func__); - return -EINVAL; - } - priv->sysctl_reg = fdt_translate_address((void *)gd->fdt_blob, - offset, reg); - if (priv->sysctl_reg == FDT_ADDR_T_NONE) { - debug("%s: Cannot find syscon base address\n", - __func__); - return -EINVAL; - } + offset = fdtdec_lookup_phandle(gd->fdt_blob, node, "syscon"); + if (offset < 0) { + debug("%s: cannot find syscon node\n", __func__); + return -EINVAL; + } + + reg = fdt_getprop(gd->fdt_blob, offset, "reg", NULL); + if (!reg) { + debug("%s: cannot find reg property in syscon node\n", + __func__); + return -EINVAL; + } + priv->sysctl_reg = fdt_translate_address((void *)gd->fdt_blob, + offset, reg); + if (priv->sysctl_reg == FDT_ADDR_T_NONE) { + debug("%s: Cannot find syscon base address\n", __func__); + return -EINVAL; } pdata->phy_interface = -1; From patchwork Sun Aug 19 13:57:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959372 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="kdM7xIv8"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfXh0qlLz9s3Z for ; Mon, 20 Aug 2018 00:32:20 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id C9C6AC21E36; Sun, 19 Aug 2018 14:16:52 +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 66984C21E1B; Sun, 19 Aug 2018 14:11:48 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4E0A9C21E36; Sun, 19 Aug 2018 14:01:20 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id 8B1F6C21C2C for ; Sun, 19 Aug 2018 14:01:14 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id b11-v6so5501462pfo.3 for ; Sun, 19 Aug 2018 07:01:14 -0700 (PDT) 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=DLZx4iGCNcW3Z3z4nZOIMqyis58Sk7qxVT/tdhjTpJw=; b=kdM7xIv80GLW66XztdR8l/rpPPlsvS5epRejb04S4oYruTUSLpHZj3uGzTYJN+D0Gn PrP9KParKAP1ICwCR+XuiG0HnjHiUad1A215U6Ht2yiPgSOM1FPvGfIniWY9AGbAjYgC 6cHY9XiUv/nCWeuH/Q9KmWQBlBxT7M44S5ELk= 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=DLZx4iGCNcW3Z3z4nZOIMqyis58Sk7qxVT/tdhjTpJw=; b=WHrSRv1inTEJeOxUtqqWf+UxGmD3uMwoDmAEvTksUi5iOv6VQhxB3TkhUvHniA5i1y +lY6Fn3nD96dOb+ykAc2tbQseDUrEyhdfIR7RokCAk50O2zKhXf/AinrsqfHAhs6pOwx p10hvVeWGas3zo+tuFylj8CZ8h4GZz/fhjr5aHCZDcdYtCedSHlg5ik7MarfLDVJXuBh k7G5KVGbEvubxnbZcEBxYkeF56WkJfX5kX7J7MzzuQtHwFNLjyg7TEt6Sr8TeFRDVweY Jf2iMyI1ukSm8abo5v7lXPBOrNfu+CYYmZv/63ELAIYy7/jvAG0PW0A8GYpHz9QxQMBK lsXQ== X-Gm-Message-State: AOUpUlHNzXXTidvyt6bn55XuUWzGivZDY6DdVIlm7xb0msse+4SjQGVE A9yn6noiE3k2mfS6IR2y/d4mZQ== X-Google-Smtp-Source: AA+uWPyRxmJH9O8CWr55t4+lY59h3EQQN829gvSVjYIFYNfzrdXJDiEDIIHJtfWrdH2WDu3o7ZpQEQ== X-Received: by 2002:a63:5513:: with SMTP id j19-v6mr3731042pgb.123.1534687273102; Sun, 19 Aug 2018 07:01:13 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.01.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:01:12 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:09 +0530 Message-Id: <20180819135715.15799-53-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de, Joe Hershberger Subject: [U-Boot] [PATCH v3 52/58] net: sun8i_emac: Add CLK and RESET support 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" Add CLK and RESET support for sun8i_emac driver to enable TX clock and reset pins via CLK and RESET framework. Cc: Joe Hershberger Cc: Lothar Felten Signed-off-by: Jagan Teki --- drivers/net/sun8i_emac.c | 56 ++++++++++++++++++++++++++++------------ 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index 5ee4c2f993..ad2d390f4e 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -10,6 +10,7 @@ * */ +#include #include #include #include @@ -20,6 +21,7 @@ #include #include #include +#include #include #ifdef CONFIG_DM_GPIO #include @@ -131,6 +133,8 @@ struct emac_eth_dev { phys_addr_t sysctl_reg; struct phy_device *phydev; struct mii_dev *bus; + struct clk tx_clk; + struct reset_ctl tx_rst; #ifdef CONFIG_DM_GPIO struct gpio_desc reset_gpio; #endif @@ -632,9 +636,24 @@ static int sun8i_eth_write_hwaddr(struct udevice *dev) return _sun8i_write_hwaddr(priv, pdata->enetaddr); } -static void sun8i_emac_board_setup(struct emac_eth_dev *priv) +static int sun8i_emac_board_setup(struct emac_eth_dev *priv) { struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; + int ret; + + ret = clk_enable(&priv->tx_clk); + if (ret) { + dev_err(dev, "failed to enable TX clock\n"); + return ret; + } + + if (reset_valid(&priv->tx_rst)) { + ret = reset_deassert(&priv->tx_rst); + if (ret) { + dev_err(dev, "failed to deassert TX reset\n"); + return ret; + } + } if (priv->variant == H3_EMAC) { /* Only H3/H5 have clock controls for internal EPHY */ @@ -649,19 +668,7 @@ static void sun8i_emac_board_setup(struct emac_eth_dev *priv) } } - if (priv->variant == R40_GMAC) { - /* Set clock gating for emac */ - setbits_le32(&ccm->ahb_reset1_cfg, BIT(AHB_RESET_OFFSET_GMAC)); - - /* De-assert EMAC */ - setbits_le32(&ccm->ahb_gate1, BIT(AHB_GATE_OFFSET_GMAC)); - } else { - /* Set clock gating for emac */ - setbits_le32(&ccm->ahb_gate0, BIT(AHB_GATE_OFFSET_GMAC)); - - /* De-assert EMAC */ - setbits_le32(&ccm->ahb_reset0_cfg, BIT(AHB_RESET_OFFSET_GMAC)); - } + return 0; } #if defined(CONFIG_DM_GPIO) @@ -787,10 +794,14 @@ static int sun8i_emac_eth_probe(struct udevice *dev) { struct eth_pdata *pdata = dev_get_platdata(dev); struct emac_eth_dev *priv = dev_get_priv(dev); + int ret; priv->mac_reg = (void *)pdata->iobase; - sun8i_emac_board_setup(priv); + ret = sun8i_emac_board_setup(priv); + if (ret) + return ret; + sun8i_emac_set_syscon(priv); sun8i_mdio_init(dev->name, dev); @@ -819,8 +830,8 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev) int offset = 0; #ifdef CONFIG_DM_GPIO int reset_flags = GPIOD_IS_OUT; - int ret = 0; #endif + int ret; pdata->iobase = devfdt_get_addr(dev); if (pdata->iobase == FDT_ADDR_T_NONE) { @@ -835,6 +846,19 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev) return -EINVAL; } + ret = clk_get_by_name(dev, "stmmaceth", &priv->tx_clk); + if (ret) { + dev_err(dev, "failed to get TX clock\n"); + return ret; + } + + ret = reset_get_by_name_optional(dev, "stmmaceth", + &priv->tx_rst, true); + if (ret) { + dev_err(dev, "failed to get TX reset\n"); + return ret; + } + offset = fdtdec_lookup_phandle(gd->fdt_blob, node, "syscon"); if (offset < 0) { debug("%s: cannot find syscon node\n", __func__); From patchwork Sun Aug 19 13:57:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959368 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="hLggk9ft"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfVz298lz9rvt for ; Mon, 20 Aug 2018 00:30:51 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id F1174C21EB9; Sun, 19 Aug 2018 14:17:41 +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 5E79FC21E1A; Sun, 19 Aug 2018 14:14:43 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 1CAA0C21C8B; Sun, 19 Aug 2018 14:01:22 +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 B5563C21E0D for ; Sun, 19 Aug 2018 14:01:18 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id h12-v6so5552470pgs.3 for ; Sun, 19 Aug 2018 07:01:18 -0700 (PDT) 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=DtHdGeZtSBO+LusMhTXGNeCTEoiC42Rx1qqI5GEEzjM=; b=hLggk9ftsuC+RCm9Uiqz5fk9p0/wZgq8O8AA98bFkdUI+RSqlmYVVx06SG0T8Rz5E5 fx1XPKesDZWpMTJ7WHCX9Hq0160IeQDhArazSviYz+60W7llVknY22+RuUuM/J1rFYEb hWmzqtAW3ie6NgoaEPhMi1f5lBvYosEPAcxQQ= 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=DtHdGeZtSBO+LusMhTXGNeCTEoiC42Rx1qqI5GEEzjM=; b=K1ifEFVRCKX7O8Pz60hhfRU3+kPIa9YpKhKRXDpIX3OtvbTjTIBCe3i96lFgyFic+o pGXPxUS1UhqlxrXICN4oYSM8LMUC5Bjiv6fManz9xLfQDaQO3MNjJkqTUH7d3wi13oWt biCl0UAR2KIATULXgz2EXoGV5NdtgLe8/GT0+YgLq1P2PfY6ttuO8hgzuQueU+kmavEr sXsshgxNi1Wf3L8pxR/e+qr9rYvppjtUYIdyBb6nfSzuBltaJgNbJaQ29MxJLv9t9/0D WJofnx/Joz1Sq3iCxUQ3r3XPyEOPcJzG7rBOcZAn7tiUUUDPz4FfEObos4i5KPFU5ui0 Ualw== X-Gm-Message-State: AOUpUlGL7oOGnT3KrDO+S9DEmnZOJrmgYD1g5iWREX8VugUvUzjMganY qOD/whMnYZrzhF4O8gsKwmXIrw== X-Google-Smtp-Source: AA+uWPwaAfrGRGjHS48nHv5M0Xl0d95KrIPJvjPDa0SsKoa15jt4yaOussaJBEGKxJcNdKJDvbFcSA== X-Received: by 2002:a63:9802:: with SMTP id q2-v6mr39401622pgd.70.1534687277331; Sun, 19 Aug 2018 07:01:17 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.01.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:01:16 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:10 +0530 Message-Id: <20180819135715.15799-54-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Joe Hershberger , Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 53/58] clk: Get the CLK by index without device 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" Getting a CLK by index with device is not straight forward for some use-cases like handling clock operations for child node in parent driver. So we need to process the child node in parent probe via ofnode and process CLK operation for child without udevice but with ofnode. So add clk_get_by_index_nodev() and move the common code in clk_get_by_index_tail() to use for clk_get_by_index() Cc: Simon Glass Cc: Joe Hershberger Signed-off-by: Jagan Teki --- drivers/clk/clk-uclass.c | 61 +++++++++++++++++++++++++++++++++++++++- include/clk.h | 15 ++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index 2b15978e14..8bb41a4de5 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -98,9 +98,68 @@ static int clk_get_by_indexed_prop(struct udevice *dev, const char *prop_name, return clk_request(dev_clk, clk); } +static int clk_get_by_index_tail(int ret, ofnode node, + struct ofnode_phandle_args *args, + const char *list_name, int index, + struct clk *clk) +{ + struct udevice *dev_clk; + const struct clk_ops *ops; + + assert(clk); + clk->dev = NULL; + if (ret) + goto err; + + ret = uclass_get_device_by_ofnode(UCLASS_CLK, args->node, &dev_clk); + if (ret) { + debug("%s: uclass_get_device_by_of_offset failed: err=%d\n", + __func__, ret); + return ret; + } + + clk->dev = dev_clk; + + ops = clk_dev_ops(dev_clk); + + if (ops->of_xlate) + ret = ops->of_xlate(clk, args); + else + ret = clk_of_xlate_default(clk, args); + if (ret) { + debug("of_xlate() failed: %d\n", ret); + return ret; + } + + return clk_request(dev_clk, clk); +err: + debug("%s: Node '%s', property '%s', failed to request CLK index %d: %d\n", + __func__, ofnode_get_name(node), list_name, index, ret); + return ret; +} + int clk_get_by_index(struct udevice *dev, int index, struct clk *clk) { - return clk_get_by_indexed_prop(dev, "clocks", index, clk); + struct ofnode_phandle_args args; + int ret; + + ret = dev_read_phandle_with_args(dev, "clocks", "#clock-cells", 0, + index, &args); + + return clk_get_by_index_tail(ret, dev_ofnode(dev), &args, "clocks", + index > 0, clk); +} + +int clk_get_by_index_nodev(ofnode node, int index, struct clk *clk) +{ + struct ofnode_phandle_args args; + int ret; + + ret = ofnode_parse_phandle_with_args(node, "clocks", "#clock-cells", 0, + index > 0, &args); + + return clk_get_by_index_tail(ret, node, &args, "clocks", + index > 0, clk); } int clk_get_bulk(struct udevice *dev, struct clk_bulk *bulk) diff --git a/include/clk.h b/include/clk.h index f6d1cc53a1..1d8478f061 100644 --- a/include/clk.h +++ b/include/clk.h @@ -8,6 +8,7 @@ #ifndef _CLK_H_ #define _CLK_H_ +#include #include #include @@ -98,6 +99,20 @@ int clk_get_by_index_platdata(struct udevice *dev, int index, */ int clk_get_by_index(struct udevice *dev, int index, struct clk *clk); +/** + * clock_get_by_index_nodev - Get/request a clock by integer index + * without a device. + * + * This is a version of clk_get_by_index() that does not use a device. + * + * @node: The client ofnode. + * @index: The index of the clock to request, within the client's list of + * clocks. + * @clock A pointer to a clock struct to initialize. + * @return 0 if OK, or a negative error code. + */ +int clk_get_by_index_nodev(ofnode node, int index, struct clk *clk); + /** * clock_get_bulk - Get/request all clocks of a device. * From patchwork Sun Aug 19 13:57:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959391 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="dU4jRhX+"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfj50LMQz9s0n for ; Mon, 20 Aug 2018 00:39:36 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id BAAE3C21E1D; Sun, 19 Aug 2018 14:14:47 +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=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 789AAC21E56; Sun, 19 Aug 2018 14:07:55 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 69F1EC21E08; Sun, 19 Aug 2018 14:01:29 +0000 (UTC) Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by lists.denx.de (Postfix) with ESMTPS id B8698C21DB5 for ; Sun, 19 Aug 2018 14:01:24 +0000 (UTC) Received: by mail-pf1-f179.google.com with SMTP id k19-v6so5499173pfi.1 for ; Sun, 19 Aug 2018 07:01:24 -0700 (PDT) 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=G7pP4S91B4aFyKiasCFsgg0jV1iLg0Nno9DCuAUr2ys=; b=dU4jRhX+9w+M+RKrpXh4c3RLc25R7jEVQhaFYX2xF14wYO27J0dWGLyJjl3veCJl8U N5a5XzLiOQxt9z5Cuu8KTBLMxWaAwUVOUGB7PXKbpIucEG69XpmnIxKCcwPG2IWo7eiw TNPzKyR9UtadqmijOghC3aYRZwmxY6kjgvlHY= 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=G7pP4S91B4aFyKiasCFsgg0jV1iLg0Nno9DCuAUr2ys=; b=KFYU3j1lDeazCnb3TJx7ykEgJzO4aPgssCxwvoZruwssT1KX6N5Js9I53hEzMV1i1+ 5mShNXN8vJ6xF6hpy4OOttFTbcV7niamrQNP0CnuSy7T9lCwLeLb9TR3zKTI2QPjin7A KBwxvny2+fnFHHQ3siE9WgRA3XXch5i9CwXQRnE76HChk/3qMed6lTPGpns3JSYr1sks orB8w5P73gb6NJXVMB7/lMZ4/nyLclR9lo7pTRs0sFeeY0oWtTBWqHrOhg5z5AYS08Yq YvLoJ+HFETambeRjbIbaarb/f9DG/cI1mim9p3iLVPrModHb+jyqprIV6lo0woqALEKL 7W9g== X-Gm-Message-State: AOUpUlGE5jpW2n5RLcVGCHY1Zv2UYoLOw4kTqfUEpm4jyWlmg0BY3Kp1 FVn0Cqpj9S5qcdoG/uRl2n3Sag== X-Google-Smtp-Source: AA+uWPx6Xn6nBxoNN+gasnQ3Jbq4FnPJT/LofIsjglkYuLkPHnz0NlITIEQU5ScVOlgtoxqRomsV+w== X-Received: by 2002:aa7:88d3:: with SMTP id p19-v6mr37796336pfo.160.1534687282157; Sun, 19 Aug 2018 07:01:22 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.01.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:01:21 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:11 +0530 Message-Id: <20180819135715.15799-55-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Joe Hershberger , Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 54/58] clk: Use clk_get_by_index_tail() 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" clk_get_by_index_tail() now handle common clk get by index code so use it in relevant places. Cc: Simon Glass Cc: Joe Hershberger Signed-off-by: Jagan Teki Reviewed-by: Simon Glass --- drivers/clk/clk-uclass.c | 77 +++++++++++++--------------------------- 1 file changed, 25 insertions(+), 52 deletions(-) diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index 8bb41a4de5..d439d216f2 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -54,50 +54,6 @@ static int clk_of_xlate_default(struct clk *clk, return 0; } -static int clk_get_by_indexed_prop(struct udevice *dev, const char *prop_name, - int index, struct clk *clk) -{ - int ret; - struct ofnode_phandle_args args; - struct udevice *dev_clk; - const struct clk_ops *ops; - - debug("%s(dev=%p, index=%d, clk=%p)\n", __func__, dev, index, clk); - - assert(clk); - clk->dev = NULL; - - ret = dev_read_phandle_with_args(dev, prop_name, "#clock-cells", 0, - index, &args); - if (ret) { - debug("%s: fdtdec_parse_phandle_with_args failed: err=%d\n", - __func__, ret); - return ret; - } - - ret = uclass_get_device_by_ofnode(UCLASS_CLK, args.node, &dev_clk); - if (ret) { - debug("%s: uclass_get_device_by_of_offset failed: err=%d\n", - __func__, ret); - return ret; - } - - clk->dev = dev_clk; - - ops = clk_dev_ops(dev_clk); - - if (ops->of_xlate) - ret = ops->of_xlate(clk, &args); - else - ret = clk_of_xlate_default(clk, &args); - if (ret) { - debug("of_xlate() failed: %d\n", ret); - return ret; - } - - return clk_request(dev_clk, clk); -} - static int clk_get_by_index_tail(int ret, ofnode node, struct ofnode_phandle_args *args, const char *list_name, int index, @@ -197,10 +153,11 @@ bulk_get_err: static int clk_set_default_parents(struct udevice *dev) { + struct ofnode_phandle_args args; struct clk clk, parent_clk; int index; int num_parents; - int ret; + int ret, err; num_parents = dev_count_phandle_with_args(dev, "assigned-clock-parents", "#clock-cells"); @@ -211,8 +168,13 @@ static int clk_set_default_parents(struct udevice *dev) } for (index = 0; index < num_parents; index++) { - ret = clk_get_by_indexed_prop(dev, "assigned-clock-parents", - index, &parent_clk); + err = dev_read_phandle_with_args(dev, "assigned-clock-parents", + "#clock-cells", 0, + index, &args); + + ret = clk_get_by_index_tail(err, dev_ofnode(dev), &args, + "assigned-clock-parents", + index > 0, &parent_clk); /* If -ENOENT, this is a no-op entry */ if (ret == -ENOENT) continue; @@ -223,8 +185,13 @@ static int clk_set_default_parents(struct udevice *dev) return ret; } - ret = clk_get_by_indexed_prop(dev, "assigned-clocks", - index, &clk); + err = dev_read_phandle_with_args(dev, "assigned-clocks", + "#clock-cells", 0, + index, &args); + + ret = clk_get_by_index_tail(err, dev_ofnode(dev), &args, + "assigned-clocks", + index > 0, &clk); if (ret) { debug("%s: could not get assigned clock %d for %s\n", __func__, index, dev_read_name(dev)); @@ -252,11 +219,12 @@ static int clk_set_default_parents(struct udevice *dev) static int clk_set_default_rates(struct udevice *dev) { + struct ofnode_phandle_args args; struct clk clk; int index; int num_rates; int size; - int ret = 0; + int err, ret = 0; u32 *rates = NULL; size = dev_read_size(dev, "assigned-clock-rates"); @@ -277,8 +245,13 @@ static int clk_set_default_rates(struct udevice *dev) if (!rates[index]) continue; - ret = clk_get_by_indexed_prop(dev, "assigned-clocks", - index, &clk); + err = dev_read_phandle_with_args(dev, "assigned-clocks", + "#clock-cells", 0, + index, &args); + + ret = clk_get_by_index_tail(err, dev_ofnode(dev), &args, + "assigned-clocks", + index > 0, &clk); if (ret) { debug("%s: could not get assigned clock %d for %s\n", __func__, index, dev_read_name(dev)); From patchwork Sun Aug 19 13:57:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959364 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="mqkB+ltk"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfRb0NGnz9s3Z for ; Mon, 20 Aug 2018 00:27:51 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 44264C21E4F; Sun, 19 Aug 2018 14:12:59 +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 A40B3C21F1B; Sun, 19 Aug 2018 14:04:31 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 14857C21EBA; Sun, 19 Aug 2018 14:01:36 +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 38553C21DB5 for ; Sun, 19 Aug 2018 14:01:29 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id h12-v6so5552560pgs.3 for ; Sun, 19 Aug 2018 07:01:29 -0700 (PDT) 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=HKG+wOo1MSPqPf3C5agvCa07hqyCKfAsdbVOjm6A4JA=; b=mqkB+ltkD3/IMHeTPgizKsG0Pygrk53t+zaCZ8q5PMp/uX+rW9p8FP/xTNYID7eAdA csx1ITTWDLvUIan6urV4vWPwYxHI689r9sbsu1+cl0Jbhsk24BZiKoeFGjBgsTfDgX8r oaEbliLIl/g6FtB8GNLi7hUHyfyT38eJrV6/c= 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=HKG+wOo1MSPqPf3C5agvCa07hqyCKfAsdbVOjm6A4JA=; b=OFJwmu45sUuyYYNxqTpuO5kpjnLrCjymWpQZwXTypxJkebTRazIu6L1gYJkpvZ2f6K cy9O7uOg9Ys3h8bs+dVaSFkV67nW4m0NRU589i4jKhednIEhkkDnFWGbpNuPEpotUL8d HvzVDsWCRv5rR+OkFtbPPPxSgooA9sv0Ai4nzsq59gbmBMCxX0veBJVx3SKi7MEIBzRq FqskiF3MwSkoeWepNYRCKqa4tQh6Uii6JA55R6oduRx1pnw/PjPsq9Wm6byQ1Dz7bd7Z fxLlW3hmmLHEEaOJ0S11fPWtUubWeiAKd/tXX49QffK9JYpucO63f0ZwJ7hKUtW9XhyO AGkQ== X-Gm-Message-State: AOUpUlH31F4AU3UHC1atMG1MnYcu5MbbBKH7MBeEq7kD2N/7m+BuSCvy KscQZbVNDyiug10v+WpwsrHMYg== X-Google-Smtp-Source: AA+uWPzV5/vfMcRmx/w36ZILn8+/PnFh9BbkImmPgjFDp9m3u9IKE6ZOgehyAl+bl6YS0oCXIikVxg== X-Received: by 2002:a62:d44e:: with SMTP id u14-v6mr12854923pfl.258.1534687286971; Sun, 19 Aug 2018 07:01:26 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.01.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:01:26 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:12 +0530 Message-Id: <20180819135715.15799-56-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Joe Hershberger , Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 55/58] reset: Get the RESET by index without device 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" Getting a RESET by index with device is not straight forward for some use-cases like handling clock operations for child node in parent driver. So we need to process the child node in parent probe via ofnode and process RESET operation for child without udevice but with ofnode. So add reset_get_by_index_nodev() and move the common code in reset_get_by_index_tail() to use for reset_get_by_index() Cc: Simon Glass Cc: Joe Hershberger Signed-off-by: Jagan Teki --- drivers/reset/reset-uclass.c | 53 ++++++++++++++++++++++++------------ include/reset.h | 16 +++++++++++ 2 files changed, 52 insertions(+), 17 deletions(-) diff --git a/drivers/reset/reset-uclass.c b/drivers/reset/reset-uclass.c index 6320efcb49..755bbf7a5e 100644 --- a/drivers/reset/reset-uclass.c +++ b/drivers/reset/reset-uclass.c @@ -34,41 +34,34 @@ static int reset_of_xlate_default(struct reset_ctl *reset_ctl, return 0; } -int reset_get_by_index(struct udevice *dev, int index, - struct reset_ctl *reset_ctl) +static int reset_get_by_index_tail(int ret, ofnode node, + struct ofnode_phandle_args *args, + const char *list_name, int index, + struct reset_ctl *reset_ctl) { - struct ofnode_phandle_args args; - int ret; struct udevice *dev_reset; struct reset_ops *ops; - debug("%s(dev=%p, index=%d, reset_ctl=%p)\n", __func__, dev, index, - reset_ctl); + assert(reset_ctl); reset_ctl->dev = NULL; - - ret = dev_read_phandle_with_args(dev, "resets", "#reset-cells", 0, - index, &args); - if (ret) { - debug("%s: fdtdec_parse_phandle_with_args() failed: %d\n", - __func__, ret); + if (ret) return ret; - } - ret = uclass_get_device_by_ofnode(UCLASS_RESET, args.node, + ret = uclass_get_device_by_ofnode(UCLASS_RESET, args->node, &dev_reset); if (ret) { debug("%s: uclass_get_device_by_ofnode() failed: %d\n", __func__, ret); - debug("%s %d\n", ofnode_get_name(args.node), args.args[0]); + debug("%s %d\n", ofnode_get_name(args->node), args->args[0]); return ret; } ops = reset_dev_ops(dev_reset); reset_ctl->dev = dev_reset; if (ops->of_xlate) - ret = ops->of_xlate(reset_ctl, &args); + ret = ops->of_xlate(reset_ctl, args); else - ret = reset_of_xlate_default(reset_ctl, &args); + ret = reset_of_xlate_default(reset_ctl, args); if (ret) { debug("of_xlate() failed: %d\n", ret); return ret; @@ -86,6 +79,32 @@ int reset_get_by_index(struct udevice *dev, int index, return 0; } +int reset_get_by_index(struct udevice *dev, int index, + struct reset_ctl *reset_ctl) +{ + struct ofnode_phandle_args args; + int ret; + + ret = dev_read_phandle_with_args(dev, "resets", "#reset-cells", 0, + index, &args); + + return reset_get_by_index_tail(ret, dev_ofnode(dev), &args, "resets", + index > 0, reset_ctl); +} + +int reset_get_by_index_nodev(ofnode node, int index, + struct reset_ctl *reset_ctl) +{ + struct ofnode_phandle_args args; + int ret; + + ret = ofnode_parse_phandle_with_args(node, "resets", "#reset-cells", 0, + index > 0, &args); + + return reset_get_by_index_tail(ret, node, &args, "resets", + index > 0, reset_ctl); +} + int reset_get_bulk(struct udevice *dev, struct reset_ctl_bulk *bulk) { int i, ret, err, count; diff --git a/include/reset.h b/include/reset.h index 70130bb886..581cc2579b 100644 --- a/include/reset.h +++ b/include/reset.h @@ -6,6 +6,7 @@ #ifndef _RESET_H #define _RESET_H +#include #include /** @@ -97,6 +98,21 @@ struct reset_ctl_bulk { int reset_get_by_index(struct udevice *dev, int index, struct reset_ctl *reset_ctl); +/** + * reset_get_by_index_nodev - Get/request a reset signal by integer index + * without a device. + * + * This is a version of reset_get_by_index() that does not use a device. + * + * @node: The client ofnode. + * @index: The index of the reset signal to request, within the client's + * list of reset signals. + * @reset_ctl A pointer to a reset control struct to initialize. + * @return 0 if OK, or a negative error code. + */ +int reset_get_by_index_nodev(ofnode node, int index, + struct reset_ctl *reset_ctl); + /** * reset_get_bulk - Get/request all reset signals of a device. * From patchwork Sun Aug 19 13:57:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959387 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="jv0Vg/Tm"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tffH52BVz9s0n for ; Mon, 20 Aug 2018 00:37:11 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 69940C21EA2; Sun, 19 Aug 2018 14:18:49 +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 8738DC21E26; Sun, 19 Aug 2018 14:18:46 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6AE06C21E02; Sun, 19 Aug 2018 14:01:38 +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 A4DA4C21E39 for ; Sun, 19 Aug 2018 14:01:32 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id y5-v6so5551145pgv.1 for ; Sun, 19 Aug 2018 07:01:32 -0700 (PDT) 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=Kj+d11FaQOZhaifOiuwdwPcjbdOg7bA9MOl87kMQaxc=; b=jv0Vg/TmSBSrKxNS0W6L7kmBo3iFYT9RnjrCq+SD1ce+tImplltMWgxyolNiLrlmuc iYUGLrSYvDuQZnIyG6hZk49UMEHrSLZv+lDUaxMrWOks8pkCC3/3wR5RozO/j95kzZS1 lfaq/4zFmb+N03MoCKpwsrvQICfJAySzVK+FU= 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=Kj+d11FaQOZhaifOiuwdwPcjbdOg7bA9MOl87kMQaxc=; b=X9gYOcWnXGNEpylPZWiBrRacLo0c+27ekmjajp5gDlWr08PN4Bu+lZtVf330cdYgMN vF+CPUFTnL8IlBtmuseCFgk8/Dj+TzEyzeWJy65/XCi9bG+k7drGUxraaeWNe5LmfuaS ny3soxAX+W/VNO79aA6qY3n9beh4L+6qea0brx26l2JywDMT9NeS7f1Jf3gCswBM48nb IGpw1RZEG29xMZH5CDE7zUWaXFqT8kHteRByCkQcGgxLDznkDZgjed37gq5nLteAafjR tPKgctgD0Bpcdh/Y4ZM92sww7XS0ZzYCvR9DGUkjaSLRZ9M10vnL27R5OLkotodgTTNm oawQ== X-Gm-Message-State: AOUpUlF9nWj4nsRddHZ9oLuJRq31611mD9Q9q7DkpdroVuBKRmr/IFFh pYnE8F77DJdTzfldUCX/t9AOVQ== X-Google-Smtp-Source: AA+uWPzIkUr+9PdCruGvFM+yva5+eaNCZkzkXcWjabXDWm2oVG60raxQcFkLEnySo16B9AS55odvCg== X-Received: by 2002:a63:5421:: with SMTP id i33-v6mr40347076pgb.417.1534687291218; Sun, 19 Aug 2018 07:01:31 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.01.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:01:30 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:13 +0530 Message-Id: <20180819135715.15799-57-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Joe Hershberger , Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 56/58] clk: sunxi: h3: Implement EPHY CLK and RESET 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" EPHY CLK and RESET is availble in Allwinner H3 EMAC via mdio-mux node of internal PHY. Add the respetive clock and reset reg and bits. Cc: Joe Hershberger Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_h3.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index 88086580f4..3d5dc2cbed 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -34,6 +34,8 @@ static struct ccu_clk_map h3_clks[] = { [CLK_BUS_UART2] = { 0x06c, BIT(18), NULL }, [CLK_BUS_UART3] = { 0x06c, BIT(19), NULL }, + [CLK_BUS_EPHY] = { 0x070, BIT(0), NULL }, + [CLK_MMC0] = { 0x088, BIT(31), &mmc_clk_set_rate }, [CLK_MMC1] = { 0x08c, BIT(31), &mmc_clk_set_rate }, [CLK_MMC2] = { 0x090, BIT(31), &mmc_clk_set_rate }, @@ -73,6 +75,8 @@ static struct ccu_reset_map h3_resets[] = { [RST_BUS_OHCI2] = { 0x2c0, BIT(30) }, [RST_BUS_OHCI3] = { 0x2c0, BIT(31) }, + [RST_BUS_EPHY] = { 0x2c8, BIT(2) }, + [RST_BUS_UART0] = { 0x2d8, BIT(16) }, [RST_BUS_UART1] = { 0x2d8, BIT(17) }, [RST_BUS_UART2] = { 0x2d8, BIT(18) }, From patchwork Sun Aug 19 13:57:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959362 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="fRTTjei0"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfQX2Ml4z9s3Z for ; Mon, 20 Aug 2018 00:27:00 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id D90BDC21E36; Sun, 19 Aug 2018 14:11: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 4127CC21EFC; Sun, 19 Aug 2018 14:03:43 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 82D23C21F16; Sun, 19 Aug 2018 14:01:41 +0000 (UTC) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by lists.denx.de (Postfix) with ESMTPS id 17060C21DF9 for ; Sun, 19 Aug 2018 14:01:37 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id p12-v6so5499779pfh.2 for ; Sun, 19 Aug 2018 07:01:37 -0700 (PDT) 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=L/4J3mLpzbDIwe6RMQf/oxYo1CiXnvUScxfunYDEa9w=; b=fRTTjei0IPYiB23YppNF2y63J9wfy5sQHMgWsxIe1T50WgVLDM2GaJlo1OkVodyayS rIXR13c1cmf4usjnC/L5CYAqVpUYwETXJRre67mcM8VnAmS52Mfqca39w9j4UdEporwN UXr7h4BVyrUW9KBZUOCup6GEgJOvbiDPhk5aM= 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=L/4J3mLpzbDIwe6RMQf/oxYo1CiXnvUScxfunYDEa9w=; b=ZYGGPsnuyCVkFnHpMb+0S3hxVwWQ0qKIYKYXZZdc8xcojw5+b+MLSr5KoGgBFYqFpS c6WbOK+NFdyqqofipyiL4fHVu7KE+nmAK7fzAzj1s+nXhB0YbHBYAczQBtcL6bbjUbT0 GYcsRa7Ai52FfXY0XxNErkeorX9xhaM15hFMAg1VwXgegv6WtcVUWv9m55BMZsthhI6z nMjQsVVLg2JW5g2oRzdWvzuh+3Ew78cv1+UAOs5ZzdFYapuKux8lBPWQojQlWOxHj0Du 4tZqVAqSFwrfIAAMGmxfHOU0NigpPUlNrlinT7VyjCkQZGpawlNiV/wdxWP0m76hGktX nSCQ== X-Gm-Message-State: AOUpUlH79IEOqlnDBH1nJm004OOKsLVKlrfd5rjR9hu1E/CTNYNbzXd8 S17wMTdqyIFv2jbm6uBwVhCJzQ== X-Google-Smtp-Source: AA+uWPzDd+h0nT4Sia9dp/uL8qhP3HY2M4bemb09ffSJVyTxcVpi0lvCMdZzoc5dDzrN28ag00eArA== X-Received: by 2002:a62:3545:: with SMTP id c66-v6mr44144394pfa.63.1534687295696; Sun, 19 Aug 2018 07:01:35 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.01.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:01:35 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:14 +0530 Message-Id: <20180819135715.15799-58-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de, Joe Hershberger Subject: [U-Boot] [PATCH v3 57/58] net: sun8i_emac: Add EPHY CLK and RESET support 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" Add EPHY CLK and RESET support for sun8i_emac driver to enable EPHY TX clock and EPHY reset pins via CLK and RESET framework. Cc: Joe Hershberger Cc: Lothar Felten Signed-off-by: Jagan Teki --- drivers/net/sun8i_emac.c | 72 ++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 17 deletions(-) diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index ad2d390f4e..bb97e6d7e9 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -134,7 +134,9 @@ struct emac_eth_dev { struct phy_device *phydev; struct mii_dev *bus; struct clk tx_clk; + struct clk ephy_clk; struct reset_ctl tx_rst; + struct reset_ctl ephy_rst; #ifdef CONFIG_DM_GPIO struct gpio_desc reset_gpio; #endif @@ -638,7 +640,6 @@ static int sun8i_eth_write_hwaddr(struct udevice *dev) static int sun8i_emac_board_setup(struct emac_eth_dev *priv) { - struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; int ret; ret = clk_enable(&priv->tx_clk); @@ -655,16 +656,20 @@ static int sun8i_emac_board_setup(struct emac_eth_dev *priv) } } - if (priv->variant == H3_EMAC) { - /* Only H3/H5 have clock controls for internal EPHY */ - if (priv->use_internal_phy) { - /* Set clock gating for ephy */ - setbits_le32(&ccm->bus_gate4, - BIT(AHB_GATE_OFFSET_EPHY)); - - /* Deassert EPHY */ - setbits_le32(&ccm->ahb_reset2_cfg, - BIT(AHB_RESET_OFFSET_EPHY)); + /* Only H3/H5 have clock controls for internal EPHY */ + if (clk_valid(&priv->ephy_clk)) { + ret = clk_enable(&priv->ephy_clk); + if (ret) { + dev_err(dev, "failed to enable EPHY TX clock\n"); + return ret; + } + } + + if (reset_valid(&priv->ephy_rst)) { + ret = reset_deassert(&priv->ephy_rst); + if (ret) { + dev_err(dev, "failed to deassert EPHY TX clock\n"); + return ret; } } @@ -819,6 +824,42 @@ static const struct eth_ops sun8i_emac_eth_ops = { .stop = sun8i_emac_eth_stop, }; +static int sun8i_get_ephy_nodes(struct emac_eth_dev *priv) +{ + int node, ret; + + /* look for mdio-mux node for internal PHY node */ + node = fdt_path_offset(gd->fdt_blob, + "/soc/ethernet@1c30000/mdio-mux/mdio@1/ethernet-phy@1"); + if (node < 0) { + debug("failed to get mdio-mux with internal PHY\n"); + return node; + } + + ret = fdt_node_check_compatible(gd->fdt_blob, node, + "allwinner,sun8i-h3-mdio-internal"); + if (ret < 0) { + debug("failed to find mdio-internal node\n"); + return ret; + } + + ret = clk_get_by_index_nodev(offset_to_ofnode(node), 0, &priv->ephy_clk); + if (ret) { + dev_err(dev, "failed to get EPHY TX clock\n"); + return ret; + } + + ret = reset_get_by_index_nodev(offset_to_ofnode(node), 0, &priv->ephy_rst); + if (ret) { + dev_err(dev, "failed to get EPHY TX reset\n"); + return ret; + } + + priv->use_internal_phy = true; + + return 0; +} + static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev) { struct sun8i_eth_pdata *sun8i_pdata = dev_get_platdata(dev); @@ -901,12 +942,9 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev) } if (priv->variant == H3_EMAC) { - int parent = fdt_parent_offset(gd->fdt_blob, offset); - - if (parent >= 0 && - !fdt_node_check_compatible(gd->fdt_blob, parent, - "allwinner,sun8i-h3-mdio-internal")) - priv->use_internal_phy = true; + ret = sun8i_get_ephy_nodes(priv); + if (ret) + return ret; } priv->interface = pdata->phy_interface; From patchwork Sun Aug 19 13:57:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 959363 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="mx2zT7dl"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 41tfRG4PS5z9s3Z for ; Mon, 20 Aug 2018 00:27:38 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 4650AC21E08; Sun, 19 Aug 2018 14:15:24 +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 3BFF5C21E16; Sun, 19 Aug 2018 14:10:04 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 64736C21E08; Sun, 19 Aug 2018 14:01:46 +0000 (UTC) Received: from mail-pl0-f67.google.com (mail-pl0-f67.google.com [209.85.160.67]) by lists.denx.de (Postfix) with ESMTPS id 41667C21D74 for ; Sun, 19 Aug 2018 14:01:41 +0000 (UTC) Received: by mail-pl0-f67.google.com with SMTP id f6-v6so5832849plo.1 for ; Sun, 19 Aug 2018 07:01:41 -0700 (PDT) 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=6jK4UswDiTZXg2ii5wugTTBbGdTdMaxIoaU36NBcKwk=; b=mx2zT7dlhVvFRugfR8y+WX8Coa7V39xYhshvPa9KaoZD5bqnHiDs8l2w/xjf3osJJL Z2U0a6n0ejogijubBSQi/bSTkBIUKZDawwNP8LGWG/U46fEwYq/uOFmaBamWfX+0TGJt VT12/ZFTBqtFfilp8RdcafXjrJ7NsS8TX7HJo= 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=6jK4UswDiTZXg2ii5wugTTBbGdTdMaxIoaU36NBcKwk=; b=R1Eit3Xa+TKfqo5zMvB3mlr81UyyWEj5wuJFBs8NqU/SWdZYei+CXlAfAEWBRrXwFC b0wolv+sRzJYdpovD/wRZ7lJecWmpw27XrL30m6pX0TM9g25fBy5x/eSNNY7oM7pC615 6AXt6/L87SEm7xBMVnmRuSbbaKS19YsqEvwgtp9G3MYh0y8TSRbuBPzi0JC35wDGf7X5 5tbDIRclDZSQvNHXKqGg9PgHsVgzshGOusKe2x1SA73aoT07G8qR+yZOhVryOXj+UBRu /1XsEqyZ5cw7vVW/39Jvj/PL+0dKg53pA61ZU98ZtNzoBVG5oTZfahGNCguL0mCsrarM hvCA== X-Gm-Message-State: AOUpUlEPALP+eMtoyFiKt+aCAxxN/FeDocxsBw0OCQwwg73T9hdA0LSa 1hpm5vvf9OVZedtLKRcxQ+k3VQ== X-Google-Smtp-Source: AA+uWPxs+HGCr/9tfMINfN/iammZwfOj9xwxlvyW7uDtdpdCtD4MXcoXgFTEu3ux3u1KyVLMHaX3PQ== X-Received: by 2002:a17:902:8301:: with SMTP id bd1-v6mr382325plb.264.1534687299887; Sun, 19 Aug 2018 07:01:39 -0700 (PDT) Received: from localhost.localdomain ([106.208.36.229]) by smtp.gmail.com with ESMTPSA id l185-v6sm8902816pga.65.2018.08.19.07.01.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 19 Aug 2018 07:01:39 -0700 (PDT) From: Jagan Teki To: Maxime Ripard , Andre Przywara , Chen-Yu Tsai , Icenowy Zheng Date: Sun, 19 Aug 2018 19:27:15 +0530 Message-Id: <20180819135715.15799-59-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20180819135715.15799-1-jagan@amarulasolutions.com> References: <20180819135715.15799-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH v3 58/58] board: sunxi: gmac: Remove Ethernet clock and reset 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" Since Ethernet clock and reset is now handling via CLK and RESET frameworks via driver API's remove explicit ccm writes. Signed-off-by: Jagan Teki --- board/sunxi/gmac.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/board/sunxi/gmac.c b/board/sunxi/gmac.c index 826650c89b..d8fdf7728e 100644 --- a/board/sunxi/gmac.c +++ b/board/sunxi/gmac.c @@ -12,14 +12,6 @@ void eth_init_board(void) struct sunxi_ccm_reg *const ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; - /* Set up clock gating */ -#ifdef CONFIG_SUNXI_GEN_SUN6I - setbits_le32(&ccm->ahb_reset0_cfg, 0x1 << AHB_RESET_OFFSET_GMAC); - setbits_le32(&ccm->ahb_gate0, 0x1 << AHB_GATE_OFFSET_GMAC); -#else - setbits_le32(&ccm->ahb_gate1, 0x1 << AHB_GATE_OFFSET_GMAC); -#endif - /* Set MII clock */ #ifdef CONFIG_RGMII setbits_le32(&ccm->gmac_clk_cfg, CCM_GMAC_CTRL_TX_CLK_SRC_INT_RGMII |