From patchwork Wed Feb 27 18:56:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049099 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="SNtfS3tK"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lM300ZVz9s1b for ; Thu, 28 Feb 2019 05:58:22 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id A5C99C21D74; Wed, 27 Feb 2019 18:57:39 +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_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id D78BCC21DB6; Wed, 27 Feb 2019 18:57:33 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 9385FC21D8E; Wed, 27 Feb 2019 18:57:29 +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 9513AC21DC1 for ; Wed, 27 Feb 2019 18:57:25 +0000 (UTC) Received: by mail-pg1-f193.google.com with SMTP id y4so8366961pgc.12 for ; Wed, 27 Feb 2019 10:57:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mG08Z46FgpnIDM+xPL5SMPeEX3paDs7xHGAqdvZZysM=; b=SNtfS3tKL+58N1yqJUcGaUP0OrrTwi+xpfHte+z7gO35OiiUTgQA6QyxS7rubtkiOA aFbZ84JclDjqo1DqBtWq4bTF/G+EdL1XhBuRQIC83b/5MIsFud5W8GvyuVqiCbhn/YN7 Fo9859PWP5tjmOooks3npAfH/sLBQIu0EWbK8= 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=mG08Z46FgpnIDM+xPL5SMPeEX3paDs7xHGAqdvZZysM=; b=H1EirPOw0QgNlL07uCgJeDZASLQ+mjIFyWvU29pKfytgiciCGKtQTWcrQX+X0ZX/KT aYrczJw5WLiqdcRPwoJvFWbFYkU6RDBDze2I28G33e3/kz7Gi+ghMnHFrBbPE6rp0MEF rNjG0Aa8iDUcgfnoYp2+WVbuQpFRhD/AKRh+mHuS32DOjnwFr2M2K5+Qkvh4WdoORCTw sy3Rdg6u2IGV+phNpChPO9/tgtDkjvHWC0C37ZwwZp6g0nQ2DvW/nBeVCJuv1yKdr/Pc STgCY3RGH5vLRqaaDRpHA8DxYrrR3HMJsDvrM0pJh9nc7ygA1xGEgnts8SL9oPISeJFd V8Hw== X-Gm-Message-State: AHQUAuZug8iqPcBJDjct2l9e87RQswRQC6hhMN5OHuERe3+a+lKX/ENC gOqVlaSw6wB9JPFFPQW9uuSCVQ== X-Google-Smtp-Source: AHgI3Ib9cFSUbwRJhBtUB/h/m1fNqpWm0wgQFIZHaEqutQi6DO8FWZYTZoG+lzhX1/lqJpXZjV+GBA== X-Received: by 2002:aa7:8c1a:: with SMTP id c26mr3155102pfd.31.1551293844136; Wed, 27 Feb 2019 10:57:24 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:23 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:49 +0530 Message-Id: <20190227185701.15545-2-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com Subject: [U-Boot] [PATCH v3 01/13] clk: sunxi: Implement A10 EMAC 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 EMAC clocks via ccu_clk_gate for Allwinner A10 SoC. Which would eventually used in sunxi_emac.c driver. Signed-off-by: Jagan Teki --- drivers/clk/sunxi/clk_a10.c | 1 + drivers/clk/sunxi/clk_a10s.c | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/clk/sunxi/clk_a10.c b/drivers/clk/sunxi/clk_a10.c index b8b57e2b31..15ffe5ecb3 100644 --- a/drivers/clk/sunxi/clk_a10.c +++ b/drivers/clk/sunxi/clk_a10.c @@ -22,6 +22,7 @@ static struct ccu_clk_gate a10_gates[] = { [CLK_AHB_MMC1] = GATE(0x060, BIT(9)), [CLK_AHB_MMC2] = GATE(0x060, BIT(10)), [CLK_AHB_MMC3] = GATE(0x060, BIT(11)), + [CLK_AHB_EMAC] = GATE(0x060, BIT(17)), [CLK_AHB_SPI0] = GATE(0x060, BIT(20)), [CLK_AHB_SPI1] = GATE(0x060, BIT(21)), [CLK_AHB_SPI2] = GATE(0x060, BIT(22)), diff --git a/drivers/clk/sunxi/clk_a10s.c b/drivers/clk/sunxi/clk_a10s.c index c6fcede822..33d41d47b0 100644 --- a/drivers/clk/sunxi/clk_a10s.c +++ b/drivers/clk/sunxi/clk_a10s.c @@ -19,6 +19,7 @@ static struct ccu_clk_gate a10s_gates[] = { [CLK_AHB_MMC0] = GATE(0x060, BIT(8)), [CLK_AHB_MMC1] = GATE(0x060, BIT(9)), [CLK_AHB_MMC2] = GATE(0x060, BIT(10)), + [CLK_AHB_EMAC] = GATE(0x060, BIT(17)), [CLK_AHB_SPI0] = GATE(0x060, BIT(20)), [CLK_AHB_SPI1] = GATE(0x060, BIT(21)), [CLK_AHB_SPI2] = GATE(0x060, BIT(22)), From patchwork Wed Feb 27 18:56:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049102 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="AakTFJDn"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lNH03VJz9s70 for ; Thu, 28 Feb 2019 05:59:26 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 8748AC21D65; Wed, 27 Feb 2019 18:57: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_DNSWL_NONE, 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 5A679C21DE8; Wed, 27 Feb 2019 18:57:46 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 15C65C21DA6; Wed, 27 Feb 2019 18:57:32 +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 2D8F5C21DD3 for ; Wed, 27 Feb 2019 18:57:29 +0000 (UTC) Received: by mail-pf1-f195.google.com with SMTP id s22so8445182pfh.4 for ; Wed, 27 Feb 2019 10:57:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QbCzRN2NMnlk9pFT6/KVPPZO7WJkcRP50eB95xyM0oU=; b=AakTFJDnlZbeRNqfbshWjGwImrlkSHdPWcAipNv37oHbhfuz+9qasuG+KNne5rWfoB +iJ1J8OsbUqP5JDNYQuw0wGys/eeDkjzZD37D/23aAmpJhYmAiyW6lYiZeYwWTL/jLqg w718C2E4PnESCjHzHolgB/qp8B5pvPHi1XpOo= 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=QbCzRN2NMnlk9pFT6/KVPPZO7WJkcRP50eB95xyM0oU=; b=VKfBZ8VlRv2n36p7iKIlyqTS527kpmGD3a8JELKKYYhnV5lar5c545oCvTtRYUztA2 uaJWwb8w7XYhXMeGMt8gQdMLNckimKeJyvByo5fIu1ctcG/EQqCmuj1vYAfZKKwUym2X +3FyU/UxD3VkLP2/Pt8QiyKP3qW0zcvLVufpguWXKUBa1JFCTmNUBuGhvLgCncRkt5cx ahMiTBpb4lvNfj5umbcwlMWeFRbZiZji6jLJHmeXZN8nhqzYPRp2+XXTas5ME9vYUWF3 39dlcmlskCQKvpT298tYldRMqEyqvQX/qK0ywQBlS1RXikFbq8DhAxr1YDkYeXj+N1uw ytFA== X-Gm-Message-State: AHQUAuYNDCnpVX+Srb6b7Dp38jvAU1XDbbW388J8kxZX6bnCNSStxwcx e0IuzooZHfrvJJOEV7r1F6mtQw== X-Google-Smtp-Source: AHgI3IajOfgwTflzakh5iDbWQOs+Gey0MDQa7xsujrQ6tEU/Z7P/imsbLwCRg+sTIVcCtnUB6VwqjA== X-Received: by 2002:a63:8743:: with SMTP id i64mr4366614pge.69.1551293847743; Wed, 27 Feb 2019 10:57:27 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:27 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:50 +0530 Message-Id: <20190227185701.15545-3-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Joe Hershberger Subject: [U-Boot] [PATCH v3 02/13] 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 Acked-by: Joe Hershberger --- 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..9a5f7fd3c7 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, "failed 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 Wed Feb 27 18:56:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049101 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="lwLEmzt6"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lMj2tKRz9s70 for ; Thu, 28 Feb 2019 05:58:56 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 84F6CC21C57; Wed, 27 Feb 2019 18:58: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_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 4FD75C21DB6; Wed, 27 Feb 2019 18:58:04 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 130B6C21D83; Wed, 27 Feb 2019 18:57:37 +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 39E24C21C2F for ; Wed, 27 Feb 2019 18:57:33 +0000 (UTC) Received: by mail-pf1-f193.google.com with SMTP id i20so8435696pfo.6 for ; Wed, 27 Feb 2019 10:57:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=THYMMBgn9FVTZ7GdQhe1XBunRIS30ACybde96Oqj5k0=; b=lwLEmzt64ZVXoe+gSKBK5P+o3Luyy+Yp0iYLkB7mO8fuIRPga7CsxSj7JtSS9clAXK Im4DhiQDRM29vqtwCPUIGf1MlEf5oqGqI1ibzH+dVTakUQoB8S2S+yT13b91hWeDsVXt /LTWxYssb5TNH2NyUQ5+nEUSyeWeWcQkqi30M= 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=THYMMBgn9FVTZ7GdQhe1XBunRIS30ACybde96Oqj5k0=; b=iFC3LQAWDo2sBhRy0P8lqS7m4fmXxVOEBwupotBNkiX0P3+eFBqDc1Ns8PFdhy5sgF pFXXhLkc7+o0Xr/LPQ3l8sCma66g3E8nXvY9PCtQMh6ejgPV5QX6HO8KUKPRQ2tvHfsp rht5LAwjpSJAtMN3KtjMWcohTj9pftFJYU13Xmww/efz7yg0BJbiUe5Yznx8PgDY0atx lGQfLbbbMRQto5RLGImZsTr364oBzNWYIlb7DYl6GhBz4hbjwBCV4d814rvdJQwKF9TR Tj7XWaICg8DJT56ACUUtD9cauOFA/qKv2qxo7s9o73ycrTwxAuL7WJi+/5Fe1bEsZnJJ kmBA== X-Gm-Message-State: AHQUAubDG3DWyJgGvQKgWbNoiOHd9kyeiowBCyJ5iNR/OoP3X0MnC+ER r5v3CW1/2g2GczeHo7bbmqn0yw== X-Google-Smtp-Source: AHgI3IZiq/1zeKBoLUxmCeSE6hh1SphaLlwogmg3Xwjums8GDWBMCjIrD0wBGO+LOk4V720j7qRy5w== X-Received: by 2002:a63:f544:: with SMTP id e4mr4398535pgk.145.1551293851827; Wed, 27 Feb 2019 10:57:31 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:31 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:51 +0530 Message-Id: <20190227185701.15545-4-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Lothar Felten , Joe Hershberger Subject: [U-Boot] [PATCH v3 03/13] 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 c9798445c7..a7fb7ac405 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -285,10 +285,18 @@ static int sun8i_emac_set_syscon(struct sun8i_eth_pdata *pdata, 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, ®); @@ -662,13 +670,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)); @@ -850,25 +851,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 Wed Feb 27 18:56:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049103 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="ci4LRAF0"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lP01bH9z9sBR for ; Thu, 28 Feb 2019 06:00:04 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id D8626C21D9A; Wed, 27 Feb 2019 18:58: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=RCVD_IN_DNSWL_NONE, 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 05B18C21C29; Wed, 27 Feb 2019 18:57:59 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D4C71C21C57; Wed, 27 Feb 2019 18:57: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 653E1C21DFB for ; Wed, 27 Feb 2019 18:57:37 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id a3so8421236pff.11 for ; Wed, 27 Feb 2019 10:57:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jGO2O8OOoioGSQgGYW8XYDD3DHEM2FB2KAw6BqjhaK4=; b=ci4LRAF0Jke0eZ94q4yppaFr/kiJF94udV3olM4ld5+8y19ltgsCd0JILke6XKlZKJ jRCee4hhOf3gFT0UaoKu7h9hI3q1MlWqPXjeoV2P8jtY4Sh/qGSrcyIROiKsgMQF9GnX 0TQs6KWNzhFh1ACyn2JrY4sCZXmIILqJgckjo= 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=jGO2O8OOoioGSQgGYW8XYDD3DHEM2FB2KAw6BqjhaK4=; b=a4TbVJJnrBE+zhFOHFrGriZ6L56pavuiTJmy5N5mFsNFbClZJ4zdFM2L1vuYuhO+K7 vGZXIAltbp0x7voRzjB++qJJsjDCPEC4ANRg/8+TsQin4gbe+0QoZ74Qti+z3n/61dHM CRaQgX9VStKyVeODZ7fJi7rG/ClWvhYjtnlUrCWRSMUTxzmp3bB6Ur5cnjrroOB92nYb lc6/bEnNWQEBrxwWwXxJNDRxb5JzD5BX2aZbeJlQs2K4Qzc6LFu2gvMZyWlok++QbmZz LAv37zMW5RIvCjWVadqeYCjnf5gN/O2bYz/1U2CQqJEM+ShwI0WY9A46jLSP7ELBaTx0 CtNw== X-Gm-Message-State: AHQUAubqQuj/zqzV1MSkhWU2bHDuzWQXDJRSYQS/CNsmXDi3ItpEzaBQ IKPpFbFJ4uIP2Gv5cK1n9UCm3w== X-Google-Smtp-Source: AHgI3IaeKzblWfwmCMnggcY8CnEncJz9b7xfqGF3HiLcJaL5d5aqNwtO24S0OQuU084BIj5+K2yoFw== X-Received: by 2002:a63:d158:: with SMTP id c24mr4363780pgj.34.1551293855971; Wed, 27 Feb 2019 10:57:35 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:34 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:52 +0530 Message-Id: <20190227185701.15545-5-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Stephen Warren Subject: [U-Boot] [PATCH v3 04/13] 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: Stephen Warren Signed-off-by: Jagan Teki Reviewed-by: Simon Glass --- 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 844b87cc33..d9236c5b51 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -54,6 +54,46 @@ static int clk_of_xlate_default(struct clk *clk, return 0; } +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; +} + static int clk_get_by_indexed_prop(struct udevice *dev, const char *prop_name, int index, struct clk *clk) { @@ -100,7 +140,26 @@ static int clk_get_by_indexed_prop(struct udevice *dev, const char *prop_name, 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 8e366163f9..d24e99713a 100644 --- a/include/clk.h +++ b/include/clk.h @@ -8,6 +8,7 @@ #ifndef _CLK_H_ #define _CLK_H_ +#include #include #include @@ -100,6 +101,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 Wed Feb 27 18:56:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049100 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="d/FVLodi"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lMP570Bz9s1b for ; Thu, 28 Feb 2019 05:58:41 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 409E0C21C2F; Wed, 27 Feb 2019 18:58: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_DNSWL_NONE, 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 B43DCC21DFF; Wed, 27 Feb 2019 18:57:59 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0D066C21D72; Wed, 27 Feb 2019 18:57:45 +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 C4C4BC21DCA for ; Wed, 27 Feb 2019 18:57:41 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id l11so8376871pgq.10 for ; Wed, 27 Feb 2019 10:57:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OUPkBA+/u7RK64lPCHTKzFRb0zDTR/0OjZBv2/KSDQg=; b=d/FVLodijz0bq/q06P1xV0QJShgIqkL2fexZ89NYdPpwMnbTWTnWPMire4+epbGDOt ENDjgKy1WpcEUKNwdZ/wAfxiWu3l/B+tMlQn7B5UGtCgDmGjcISSV1F7nvFKCKSx6Iei 7mw5Q/ziENL54G9QHaBjGQyzI6xaLR3EGMztI= 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=OUPkBA+/u7RK64lPCHTKzFRb0zDTR/0OjZBv2/KSDQg=; b=g3UNlUhpFtK9RZse9UZp7bAaZDBE7AvDcWf/31gb2zOu5dun9gOTfcsfg8N9GabIyY JWW959BUVoQzkG+p64kzy4USeb+vJfwrVvfED9RrFpRsczGvSv1at8TsMTOcuW+UfJEA 9LrwWjIrDYQmU0o6fApn0XtspQZxra09WZaTtPsl2k19I4YkbRb3tlCw6rA48j310qY6 OFx+S/2Xwtiftu/rgnpko0GMpjRK7bdUy8VNlXGW7rt5lrKIlhTNbWMAUae1yPG5E4Qy 5kbGWAKfyBtvXs1NB94djrpfoFuDhPAT5w0CVlguc5xbNY0HrpFiPvqXKCXDRwUtDVw6 Ze8Q== X-Gm-Message-State: AHQUAuZ4UOmLQydA96/AaqAfA1ZiLKzYb/bRvzclXrUCJyk5wYAZJrfN w6+aUTeMEurkHhtZ5AcpYrpu/g== X-Google-Smtp-Source: AHgI3Ib7IQwDzhs+fPXwNyFWCiwnkAM0r1BO7TtvVtd4p8N/LAMCrB50+uCYOOeJPpspx/fTKznpfg== X-Received: by 2002:a63:360e:: with SMTP id d14mr4415334pga.179.1551293860383; Wed, 27 Feb 2019 10:57:40 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:39 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:53 +0530 Message-Id: <20190227185701.15545-6-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Stephen Warren Subject: [U-Boot] [PATCH v3 05/13] 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 from clk_get_by_indexed_prop(). Cc: Stephen Warren Cc: Simon Glass Signed-off-by: Jagan Teki Reviewed-by: Simon Glass --- Changes for v3: - use clk_get_by_index_tail() from clk_get_by_indexed_prop() drivers/clk/clk-uclass.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index d9236c5b51..79b3b0494c 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -99,8 +99,6 @@ static int clk_get_by_indexed_prop(struct udevice *dev, const char *prop_name, { 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); @@ -115,27 +113,9 @@ static int clk_get_by_indexed_prop(struct udevice *dev, const char *prop_name, 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); + return clk_get_by_index_tail(ret, dev_ofnode(dev), &args, "clocks", + index > 0, clk); } int clk_get_by_index(struct udevice *dev, int index, struct clk *clk) From patchwork Wed Feb 27 18:56:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049105 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="GYxFlMfV"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lQQ2WFYz9s70 for ; Thu, 28 Feb 2019 06:01:18 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E9C6DC21DE8; Wed, 27 Feb 2019 18:58:48 +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_DNSWL_NONE, 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 04E0EC21C29; Wed, 27 Feb 2019 18:58:21 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E2440C21DE8; Wed, 27 Feb 2019 18:57:49 +0000 (UTC) Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.193]) by lists.denx.de (Postfix) with ESMTPS id 89042C21DD3 for ; Wed, 27 Feb 2019 18:57:45 +0000 (UTC) Received: by mail-pl1-f193.google.com with SMTP id r14so8430450pls.12 for ; Wed, 27 Feb 2019 10:57:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=q6IqrnWr8jKWsi0vjaLtvOqNljXKiqT/davldSBzHp8=; b=GYxFlMfVtXlixdKNdkXCd5f+3YYUjn6bCV7qQcLlZaDjMQ/11pKaH5uQKRGIf1OQf1 RUVhcFvePPACBIUOhes2AnlsfEohfeJ+8LPqxP1Cdvjug6aJd78+Qx44dpYKUGlmUodq yRN6jTXM/aXuMomx6N/mGWyNIEiuqsB0dxf6Q= 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=q6IqrnWr8jKWsi0vjaLtvOqNljXKiqT/davldSBzHp8=; b=fFz2mt2TAA8vB0R7uY9eam9RsvhiNxyPwl3ZMGnMI3CJKvEd8cn57tEYHK3YuovEjV MFzbvdbfX2XzIcdTVzAN0hj1AFNDbwgu8bZ8bMzNYrcBIdPbRivDT2fVUCbyvsW7fRyo Y6UY5onLeLLW+tDRYDQLkCW2fykvPWYuVnpi2o+xBuNCNHzqXJENN9AgpGYnqwuXdUol GQEnkOG8w7/K1gTS3aVRYdtV/RGz+Z6hUiI54U9ZoP/RsJ8+1xNue81Adw4GVmBK9xx0 h9c3HJQz9EDLHEvu2vTY0qb6VI8MgQ2+EBgiS0HYrgywYLxNML1RAg1oFYbSS3FS6lsv Oz0Q== X-Gm-Message-State: AHQUAuY6Y7z81EzOhfSvMeLOwP5hq78eaW86FZfTxBbmlr2oFHof8vc8 6jLbCz4yZQbIfcxx2tmeAFjQrA== X-Google-Smtp-Source: AHgI3IZCXvWQo65sxmt+tbIzQgswtZMt0UUM6ZrmIc33jO8Pdfh3FKt2FugudbOVXUfAyTAHYz0FAA== X-Received: by 2002:a17:902:6b46:: with SMTP id g6mr3667831plt.21.1551293864179; Wed, 27 Feb 2019 10:57:44 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:43 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:54 +0530 Message-Id: <20190227185701.15545-7-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Stephen Warren Subject: [U-Boot] [PATCH v3 06/13] test/dm: clk: Add clk_get_by_index[_nodev] test 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 sample dm clk test for clk_get_by_index and clk_get_by_index_nodev functionality code. Cc: Stephen Warren Signed-off-by: Jagan Teki Reviewed-by: Simon Glass --- test/dm/clk.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/dm/clk.c b/test/dm/clk.c index 898c034e27..29ef6ef41b 100644 --- a/test/dm/clk.c +++ b/test/dm/clk.c @@ -4,12 +4,33 @@ */ #include +#include #include #include #include #include #include +/* Base test of the clk uclass */ +static int dm_test_clk_base(struct unit_test_state *uts) +{ + struct udevice *dev; + struct clk clk_method1; + struct clk clk_method2; + + /* Get the device using the clk device */ + ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "clk-test", &dev)); + + /* Get the same clk port in 2 different ways and compare */ + ut_assertok(clk_get_by_index(dev, 1, &clk_method1)); + ut_assertok(clk_get_by_index_nodev(dev_ofnode(dev), 1, &clk_method2)); + ut_asserteq(clk_method1.id, clk_method2.id); + + return 0; +} + +DM_TEST(dm_test_clk_base, DM_TESTF_SCAN_FDT); + static int dm_test_clk(struct unit_test_state *uts) { struct udevice *dev_fixed, *dev_clk, *dev_test; From patchwork Wed Feb 27 18:56:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049106 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="aGEh2QqN"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lQT2Vxnz9s1b for ; Thu, 28 Feb 2019 06:01:21 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 01C0BC21C29; Wed, 27 Feb 2019 18:59:02 +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_DNSWL_NONE, 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 9F0F1C21DB5; Wed, 27 Feb 2019 18:58:53 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D7C78C21C29; Wed, 27 Feb 2019 18:57:53 +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 5339DC21DB3 for ; Wed, 27 Feb 2019 18:57:49 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id r124so8396738pgr.3 for ; Wed, 27 Feb 2019 10:57:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JNbFua916z7EXzXGnaag0ywM8QHSTnOQBROB7NWLatQ=; b=aGEh2QqNe9AgTByAZm8YlpamdFD3OLG0NmxEeu/Z2ugBEAX7vJmo5+wsqOy9VcpJtX JC0XjllZUlFHy89wX6bAArDYVZPjJhhG2K3dWjckX7aKFJvg14LmKoz79M8siWLt2TLO MfO1O5c5QeCPqy7UiJT+giPB7gbLxJqMd4BV4= 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=JNbFua916z7EXzXGnaag0ywM8QHSTnOQBROB7NWLatQ=; b=mP9G9dqkcUapqjxpfBpin0FS3Rc8PJWJpBf+GSTvyJ+AiIUxy5XH/vjpSyVtWvYxMw e5jwY6nHnLq79lJ4ibXfsdDa+ZhZ5PJ71JdtrnpciMRS8q0KPULGGHfXZ06VpEQPmAmk lHyul9SYOm9mf0oJfMF3CfFRjrlFPX/0/Mbe50Geirbu6NFxz3O/ZeOkT6cS8yia7ZP+ Ecs3n5MJrEe8Xse+kc0F65l4SZ8EiuzXHKDIP1r3obkGnsy3+hqQnFdPLNRu6rjwogYv RzBlSSErl03AnVcHRoMDf6Ew1nCydCWHnClkIFWKHin6+Xtb3BgvM6j3nHEeBq5tJH7F KHlA== X-Gm-Message-State: AHQUAuaF/8u4V/+ZJdTfPR5/VWecFbMFiF7mn7scVukThMXJTGA5+s87 rFhX07HDLTGuZqviIyGdqFX99A== X-Google-Smtp-Source: AHgI3IbtH8uLhJwm8wXH9mtEu/0j8s8HmJ2F5LTc4GwWvT9K2qnohdWSSMoSq7N1v3H41srfSzAHaQ== X-Received: by 2002:a62:57d7:: with SMTP id i84mr3178195pfj.125.1551293867824; Wed, 27 Feb 2019 10:57:47 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:46 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:55 +0530 Message-Id: <20190227185701.15545-8-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Stephen Warren Subject: [U-Boot] [PATCH v3 07/13] 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: Stephen Warren Signed-off-by: Jagan Teki Reviewed-by: Simon Glass --- 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 89e39c6b5a..ee1a423ffb 100644 --- a/drivers/reset/reset-uclass.c +++ b/drivers/reset/reset-uclass.c @@ -29,41 +29,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; @@ -78,6 +71,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 65aa7a4ce5..57bbc0b49d 100644 --- a/include/reset.h +++ b/include/reset.h @@ -6,6 +6,7 @@ #ifndef _RESET_H #define _RESET_H +#include #include /** @@ -99,6 +100,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 Wed Feb 27 18:56:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049109 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="re0WNcLr"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lSX0fGyz9s1b for ; Thu, 28 Feb 2019 06:03:08 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id CA3C1C21DB5; Wed, 27 Feb 2019 19:00: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_DNSWL_NONE, 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 93014C21E1B; Wed, 27 Feb 2019 19:00:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 3C95BC21E15; Wed, 27 Feb 2019 18:57:56 +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 D7C4EC21D72 for ; Wed, 27 Feb 2019 18:57:52 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id h11so8407695pgl.0 for ; Wed, 27 Feb 2019 10:57:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Yw2VJNLdbNeVaNMDYAI0fSIAdpGnpb3+7TKlhUECXKI=; b=re0WNcLrJZaUjK1fOsE1+7k4u1m//YmtFp1Q68mijTbvfdBUXv1mIgTyvAwahtM81v IsdJ/5vQ6M4BYdTiwrW5PM6lrlkScGdqIkxrh58YxEiV9N8NAi1vLgXtCzMDTWYkSR7m 8w3bH1ettPQl6qKIlj6iHvam0GLl3MUQ3f/fs= 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=Yw2VJNLdbNeVaNMDYAI0fSIAdpGnpb3+7TKlhUECXKI=; b=oQhnCHfuVGN+iPlL8DafIZRBM/Vn89PI6NywElauAOD/bNDM3v9rEFdFXzL7MeJls2 f2JLjV4/MIQQLDgM8+h3RuIHgdxBG/UUery4gDuEV7sP8Qm7yixtB7GVlZT8FpkMFTLf bkGvO1xxvWgmKO06XWVADco/zMBP/2+eKkCKYPL34HUt5SdDPJD2LjrBQbtxa08GEm7g kEMKgotvz82+saJUjFGXcNXPiXSLLt+x4p4Wxl6Aas9T3QDX4sPs+03WDsBwE+lY/LHC cKbbcECute6z4LOXOU9I43DDJ+0Y/SuefwWhMPDZ5839MxKSWCh5iKwjfVaTbDZ9YGNX joJQ== X-Gm-Message-State: AHQUAubM9x9qqW1J5omlCHQDf+AurCQpjpDGsYiUBLPEsEz7eaAbONL4 Y0w8qVJZxli5st33CM7Mcfs4DQ== X-Google-Smtp-Source: AHgI3IaQstfB66nixSYIN0fH1LJ7QKSEU7X525tTqsn1X1HYgC/hS8MIGgWpD0LCQF1gw1ZUiL0qQg== X-Received: by 2002:a62:e40d:: with SMTP id r13mr3122915pfh.11.1551293871526; Wed, 27 Feb 2019 10:57:51 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:50 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:56 +0530 Message-Id: <20190227185701.15545-9-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Stephen Warren Subject: [U-Boot] [PATCH v3 08/13] test/dm: reset: Add reset_get_by_index[_nodev] test 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 sample dm reset test for reset_get_by_index and reset_get_by_index_nodev functionality code. Cc: Stephen Warren Signed-off-by: Jagan Teki Reviewed-by: Simon Glass --- test/dm/reset.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/test/dm/reset.c b/test/dm/reset.c index c02866a2f0..c61daed490 100644 --- a/test/dm/reset.c +++ b/test/dm/reset.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -15,6 +16,28 @@ /* This is the other reset phandle specifier handled by bulk */ #define OTHER_RESET_ID 2 +/* Base test of the reset uclass */ +static int dm_test_reset_base(struct unit_test_state *uts) +{ + struct udevice *dev; + struct reset_ctl reset_method1; + struct reset_ctl reset_method2; + + /* Get the device using the reset device */ + ut_assertok(uclass_get_device_by_name(UCLASS_MISC, "reset-ctl-test", + &dev)); + + /* Get the same reset port in 2 different ways and compare */ + ut_assertok(reset_get_by_index(dev, 1, &reset_method1)); + ut_assertok(reset_get_by_index_nodev(dev_ofnode(dev), 1, + &reset_method2)); + ut_asserteq(reset_method1.id, reset_method2.id); + + return 0; +} + +DM_TEST(dm_test_reset_base, DM_TESTF_SCAN_FDT); + static int dm_test_reset(struct unit_test_state *uts) { struct udevice *dev_reset; From patchwork Wed Feb 27 18:56:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049111 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="SRmlDb0O"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lSp4f6Xz9s70 for ; Thu, 28 Feb 2019 06:03:22 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 58A8DC21DDC; Wed, 27 Feb 2019 18:59: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_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 49C5FC21DFB; Wed, 27 Feb 2019 18:59:38 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0EAB1C21C29; Wed, 27 Feb 2019 18:58: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 7830EC21D83 for ; Wed, 27 Feb 2019 18:57:56 +0000 (UTC) Received: by mail-pg1-f193.google.com with SMTP id 196so8377387pgf.13 for ; Wed, 27 Feb 2019 10:57:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=BlcmrzFzvyPgAOv7Hx9Dmd79fA9SWJ9jjf8gLk3narI=; b=SRmlDb0O9fXY/F6ceDcEBcqOZGfVKbMtu+2ULRAalnoL4kn0QEkSpxKi8p2GXDoRnk WlaPKUDTFsMnyQ0Lk7f5fFOy2DigVMAxWRzwVtJEyK/7rKZD+N2bEra1/uX0W+c+alAf /qrKiF5E5zrF469kNBlFR6quNWlHbH5CE0iSg= 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=BlcmrzFzvyPgAOv7Hx9Dmd79fA9SWJ9jjf8gLk3narI=; b=XZ3NwQ7XI+dNoPL9ZgJbNMUQ/rMOR6AiM5xD4A/KMGx9reQZ024g9hP8TU2fIc8HAV kZbpOa0BjT02GuRwueefoWtk9COu+m35MBIZ49VfKtngwTXbthW5hejU649PxDGNBrj4 C1/vJnArWWu3YkcHtkVn0TiaqZ0fOKs3lIC30W6uqYjKzF6fb7lnDIVL+lL8kVz4ojMk FACUo5btKs52DZMicHFhz8KO+xxHcf1ViItOYVjLgLrCQ8y2/bjNCkOGIUguKt7/HPYS 6kgnthACTWkdXegJcjJpMs+MrgTiUhhFCgV9tpIs7o4eCHGj3VHrfSBjOPU8ZgCh/Tri ZR+w== X-Gm-Message-State: AHQUAuakrGlerAGRrykZIc/0rCnEpZAETR1QUhcDJftFMwDQEwBDG7li wWCLzAKrCrLytsEWmkqXFnOpIA== X-Google-Smtp-Source: AHgI3IZZdF8mOAxi/Feg2IoDCsyfLpcmpEvAHvMT0p+Z2ESF1d5FXxPgzpDGhkoJRaAxu7iJsL0YhA== X-Received: by 2002:a62:5687:: with SMTP id h7mr3173470pfj.198.1551293875011; Wed, 27 Feb 2019 10:57:55 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:54 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:57 +0530 Message-Id: <20190227185701.15545-10-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Joe Hershberger Subject: [U-Boot] [PATCH v3 09/13] clk: sunxi: Implement EMAC, GMAC clocks, 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 EMAC, GMAC clocks via ccu_clk_gate for all supported Allwinner SoCs. - Implement EMAC, GMAC resets via ccu_reset for all supported Allwinner SoCs. Cc: Joe Hershberger Signed-off-by: Jagan Teki Acked-by: Joe Hershberger --- drivers/clk/sunxi/clk_a31.c | 2 ++ drivers/clk/sunxi/clk_a64.c | 2 ++ drivers/clk/sunxi/clk_a83t.c | 2 ++ drivers/clk/sunxi/clk_h3.c | 2 ++ drivers/clk/sunxi/clk_h6.c | 4 ++++ drivers/clk/sunxi/clk_r40.c | 3 +++ 6 files changed, 15 insertions(+) diff --git a/drivers/clk/sunxi/clk_a31.c b/drivers/clk/sunxi/clk_a31.c index fa6e3eeef0..4ec3c2ae89 100644 --- a/drivers/clk/sunxi/clk_a31.c +++ b/drivers/clk/sunxi/clk_a31.c @@ -17,6 +17,7 @@ static struct ccu_clk_gate a31_gates[] = { [CLK_AHB1_MMC1] = GATE(0x060, BIT(9)), [CLK_AHB1_MMC2] = GATE(0x060, BIT(10)), [CLK_AHB1_MMC3] = GATE(0x060, BIT(11)), + [CLK_AHB1_EMAC] = GATE(0x060, BIT(17)), [CLK_AHB1_SPI0] = GATE(0x060, BIT(20)), [CLK_AHB1_SPI1] = GATE(0x060, BIT(21)), [CLK_AHB1_SPI2] = GATE(0x060, BIT(22)), @@ -57,6 +58,7 @@ static struct ccu_reset a31_resets[] = { [RST_AHB1_MMC1] = RESET(0x2c0, BIT(9)), [RST_AHB1_MMC2] = RESET(0x2c0, BIT(10)), [RST_AHB1_MMC3] = RESET(0x2c0, BIT(11)), + [RST_AHB1_EMAC] = RESET(0x2c0, BIT(17)), [RST_AHB1_SPI0] = RESET(0x2c0, BIT(20)), [RST_AHB1_SPI1] = RESET(0x2c0, BIT(21)), [RST_AHB1_SPI2] = RESET(0x2c0, BIT(22)), diff --git a/drivers/clk/sunxi/clk_a64.c b/drivers/clk/sunxi/clk_a64.c index 322d6cd557..f94e8aa754 100644 --- a/drivers/clk/sunxi/clk_a64.c +++ b/drivers/clk/sunxi/clk_a64.c @@ -16,6 +16,7 @@ static const struct ccu_clk_gate a64_gates[] = { [CLK_BUS_MMC0] = GATE(0x060, BIT(8)), [CLK_BUS_MMC1] = GATE(0x060, BIT(9)), [CLK_BUS_MMC2] = GATE(0x060, BIT(10)), + [CLK_BUS_EMAC] = GATE(0x060, BIT(17)), [CLK_BUS_SPI0] = GATE(0x060, BIT(20)), [CLK_BUS_SPI1] = GATE(0x060, BIT(21)), [CLK_BUS_OTG] = GATE(0x060, BIT(23)), @@ -49,6 +50,7 @@ static const struct ccu_reset a64_resets[] = { [RST_BUS_MMC0] = RESET(0x2c0, BIT(8)), [RST_BUS_MMC1] = RESET(0x2c0, BIT(9)), [RST_BUS_MMC2] = RESET(0x2c0, BIT(10)), + [RST_BUS_EMAC] = RESET(0x2c0, BIT(17)), [RST_BUS_SPI0] = RESET(0x2c0, BIT(20)), [RST_BUS_SPI1] = RESET(0x2c0, BIT(21)), [RST_BUS_OTG] = RESET(0x2c0, BIT(23)), diff --git a/drivers/clk/sunxi/clk_a83t.c b/drivers/clk/sunxi/clk_a83t.c index 36f7e14c45..2be87a31fd 100644 --- a/drivers/clk/sunxi/clk_a83t.c +++ b/drivers/clk/sunxi/clk_a83t.c @@ -16,6 +16,7 @@ static struct ccu_clk_gate a83t_gates[] = { [CLK_BUS_MMC0] = GATE(0x060, BIT(8)), [CLK_BUS_MMC1] = GATE(0x060, BIT(9)), [CLK_BUS_MMC2] = GATE(0x060, BIT(10)), + [CLK_BUS_EMAC] = GATE(0x060, BIT(17)), [CLK_BUS_SPI0] = GATE(0x060, BIT(20)), [CLK_BUS_SPI1] = GATE(0x060, BIT(21)), [CLK_BUS_OTG] = GATE(0x060, BIT(24)), @@ -47,6 +48,7 @@ static struct ccu_reset a83t_resets[] = { [RST_BUS_MMC0] = RESET(0x2c0, BIT(8)), [RST_BUS_MMC1] = RESET(0x2c0, BIT(9)), [RST_BUS_MMC2] = RESET(0x2c0, BIT(10)), + [RST_BUS_EMAC] = RESET(0x2c0, BIT(17)), [RST_BUS_SPI0] = RESET(0x2c0, BIT(20)), [RST_BUS_SPI1] = RESET(0x2c0, BIT(21)), [RST_BUS_OTG] = RESET(0x2c0, BIT(24)), diff --git a/drivers/clk/sunxi/clk_h3.c b/drivers/clk/sunxi/clk_h3.c index 5f99ef7342..f5ae1e9555 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -16,6 +16,7 @@ static struct ccu_clk_gate h3_gates[] = { [CLK_BUS_MMC0] = GATE(0x060, BIT(8)), [CLK_BUS_MMC1] = GATE(0x060, BIT(9)), [CLK_BUS_MMC2] = GATE(0x060, BIT(10)), + [CLK_BUS_EMAC] = GATE(0x060, BIT(17)), [CLK_BUS_SPI0] = GATE(0x060, BIT(20)), [CLK_BUS_SPI1] = GATE(0x060, BIT(21)), [CLK_BUS_OTG] = GATE(0x060, BIT(23)), @@ -55,6 +56,7 @@ static struct ccu_reset h3_resets[] = { [RST_BUS_MMC0] = RESET(0x2c0, BIT(8)), [RST_BUS_MMC1] = RESET(0x2c0, BIT(9)), [RST_BUS_MMC2] = RESET(0x2c0, BIT(10)), + [RST_BUS_EMAC] = RESET(0x2c0, BIT(17)), [RST_BUS_SPI0] = RESET(0x2c0, BIT(20)), [RST_BUS_SPI1] = RESET(0x2c0, BIT(21)), [RST_BUS_OTG] = RESET(0x2c0, BIT(23)), diff --git a/drivers/clk/sunxi/clk_h6.c b/drivers/clk/sunxi/clk_h6.c index 71f0c78656..0bb00f449a 100644 --- a/drivers/clk/sunxi/clk_h6.c +++ b/drivers/clk/sunxi/clk_h6.c @@ -26,6 +26,8 @@ static struct ccu_clk_gate h6_gates[] = { [CLK_BUS_SPI0] = GATE(0x96c, BIT(0)), [CLK_BUS_SPI1] = GATE(0x96c, BIT(1)), + + [CLK_BUS_EMAC] = GATE(0x97c, BIT(0)), }; static struct ccu_reset h6_resets[] = { @@ -39,6 +41,8 @@ static struct ccu_reset h6_resets[] = { [RST_BUS_SPI0] = RESET(0x96c, BIT(16)), [RST_BUS_SPI1] = RESET(0x96c, BIT(17)), + + [RST_BUS_EMAC] = RESET(0x97c, BIT(16)), }; static const struct ccu_desc h6_ccu_desc = { diff --git a/drivers/clk/sunxi/clk_r40.c b/drivers/clk/sunxi/clk_r40.c index 92907281f1..30beac98bb 100644 --- a/drivers/clk/sunxi/clk_r40.c +++ b/drivers/clk/sunxi/clk_r40.c @@ -29,6 +29,8 @@ static struct ccu_clk_gate r40_gates[] = { [CLK_BUS_OHCI1] = GATE(0x060, BIT(30)), [CLK_BUS_OHCI2] = GATE(0x060, BIT(31)), + [CLK_BUS_GMAC] = GATE(0x064, BIT(17)), + [CLK_BUS_UART0] = GATE(0x06c, BIT(16)), [CLK_BUS_UART1] = GATE(0x06c, BIT(17)), [CLK_BUS_UART2] = GATE(0x06c, BIT(18)), @@ -60,6 +62,7 @@ static struct ccu_reset r40_resets[] = { [RST_BUS_MMC1] = RESET(0x2c0, BIT(9)), [RST_BUS_MMC2] = RESET(0x2c0, BIT(10)), [RST_BUS_MMC3] = RESET(0x2c0, BIT(11)), + [RST_BUS_GMAC] = RESET(0x2c0, BIT(17)), [RST_BUS_SPI0] = RESET(0x2c0, BIT(20)), [RST_BUS_SPI1] = RESET(0x2c0, BIT(21)), [RST_BUS_SPI2] = RESET(0x2c0, BIT(22)), From patchwork Wed Feb 27 18:56:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049107 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="Mq83YaWb"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lRH69TKz9s1b for ; Thu, 28 Feb 2019 06:02:03 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 81C63C21DD7; Wed, 27 Feb 2019 18:59: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_DNSWL_NONE, 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 BE1AFC21D8E; Wed, 27 Feb 2019 18:59:25 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 4B7B0C21DE8; Wed, 27 Feb 2019 18:58:04 +0000 (UTC) Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by lists.denx.de (Postfix) with ESMTPS id 58253C21DB6 for ; Wed, 27 Feb 2019 18:58:00 +0000 (UTC) Received: by mail-pl1-f194.google.com with SMTP id b65so5416666plb.6 for ; Wed, 27 Feb 2019 10:58:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tXusBwSoAK9Li6v7yhvNgzL9e03cMXp3MHygui5bFzk=; b=Mq83YaWbbii2tkw04ED1B2aycvgN1mb1omBId7UADwtFlGLC7rTIMEqSUmT/wBhmkv VmqYdn2eGNpNy2cggRm4ffrnjJ3o2S1RUrzHUyYVgzhU3R4eWnD1yDkpgV0/z6dHRGG8 G+Y+ZH2d1YAxKQE6GSdRrFy/YRGwul2v9PkU8= 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=tXusBwSoAK9Li6v7yhvNgzL9e03cMXp3MHygui5bFzk=; b=T5CANvqjYwtKxJnjoLURiqn6DzyJIcfSIEht58Ihr6QK6zeBCozEQ9/Avmw2MBpmle arL0wf+PMxv7xVLh7CtWUKZUzqkeMYAnkbI6JJUVt2aSM/WgA8hfVhluV1/YuE5a2Kli sTY24scsEGRgLw7S7f5m9dYPKiyOrH3Fe+8Pil8wU6Tgvy/OPF9PI4r74AA36dYyrx9D qS8LjHP9GiQ3Z7VIfvo7+ImTNQA8kOlN68LLlkdDLyGuipjhQWk4NKo62Sv/APGeyCz3 E3Uu9wvG4mNwm6Ucv8Vyj8rC4XQEsZvZ6Uwa1X0fCxNO7RrDYIV6cLGfatLv8irmhR/3 ZiXw== X-Gm-Message-State: AHQUAuYoac2H3TyNIwshuZF/K3/vtc9circOcC8jbp2sVgQ/9Mj9B/A5 ciIsG2x+QsyxsSuP8JLBO/lY/w== X-Google-Smtp-Source: AHgI3IblCTS/UlmpNgIxTqy1NA6tvbCE6CP548GBfUxGk4TXbfu20MluTYwO1TX+HVhH2yWeUkdYRA== X-Received: by 2002:a17:902:b58c:: with SMTP id a12mr3709709pls.102.1551293878967; Wed, 27 Feb 2019 10:57:58 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:57:58 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:58 +0530 Message-Id: <20190227185701.15545-11-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Lothar Felten , Joe Hershberger Subject: [U-Boot] [PATCH v3 10/13] 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 Acked-by: Joe Hershberger --- drivers/net/sun8i_emac.c | 57 +++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index a7fb7ac405..98bd7a5823 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -14,12 +14,14 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include #ifdef CONFIG_DM_GPIO #include @@ -135,6 +137,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 @@ -647,9 +651,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"); + goto err_tx_clk; + } + } if (priv->variant == H3_EMAC) { /* Only H3/H5 have clock controls for internal EPHY */ @@ -664,19 +683,11 @@ 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)); + return 0; - /* De-assert EMAC */ - setbits_le32(&ccm->ahb_reset0_cfg, BIT(AHB_RESET_OFFSET_GMAC)); - } +err_tx_clk: + clk_disable(&priv->tx_clk); + return ret; } #if defined(CONFIG_DM_GPIO) @@ -803,10 +814,14 @@ static int sun8i_emac_eth_probe(struct udevice *dev) struct sun8i_eth_pdata *sun8i_pdata = dev_get_platdata(dev); struct eth_pdata *pdata = &sun8i_pdata->eth_pdata; 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(sun8i_pdata, priv); sun8i_mdio_init(dev->name, dev); @@ -835,8 +850,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) { @@ -851,6 +866,18 @@ 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(dev, "stmmaceth", &priv->tx_rst); + if (ret && ret != -ENOENT) { + 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 Wed Feb 27 18:56:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049108 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="IQvLn6yw"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lRN0cQRz9s1b for ; Thu, 28 Feb 2019 06:02:07 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id B4B10C21C4A; Wed, 27 Feb 2019 19: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_DNSWL_NONE, 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 DB8CAC21DB5; Wed, 27 Feb 2019 19:00:23 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 27667C21DFD; Wed, 27 Feb 2019 18:58:08 +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 21460C21DD3 for ; Wed, 27 Feb 2019 18:58:04 +0000 (UTC) Received: by mail-pg1-f195.google.com with SMTP id 196so8377534pgf.13 for ; Wed, 27 Feb 2019 10:58:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Mfj7Zv1+qIAGDDb2C+h8v2vMW3WSYaa5eT+mvdbc/YQ=; b=IQvLn6ywW8kHTtQ9kFrecgETc8gIXt6G8ep5/rFYHxameFsPoOZjeSeeyOXu0JT2IJ g87TUGFbW7P1bAvvA7jQXwZwksxDch4Su/+pcNsXnjSMR22X+JhS4QrSl3MYSRjCoiuj 6/1TelSNs7zop2jTMF+c1FBDiV3aLFukGmxpE= 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=Mfj7Zv1+qIAGDDb2C+h8v2vMW3WSYaa5eT+mvdbc/YQ=; b=r1hcg9Ca5PoZydHxI8qN5UeRyyE/NlWgsH+h/jMtJ83qDLZkmDviKWusEWWA94oghR S3rUc5ITOVWL7zcOOuAE2XZhm3KQYeVLsEkWYOESM6H6bXA9Htg0sH8r53VFq6ae4t0W 0DWZTIxPkUl80u0Gh/Hu4mNlD70O/W2H1rl+eIsa8C2HStv3rJ1uapLqxE+qB1Nvmo2T gVDQyQGTDqE2W9DgnzbjQgwZrUqtV2m1jsL+XqzpSqBbaTvuAwUuziXfSMmSduP/xfz2 04bHu9Repfele1QMeyecDi4ZjVwz8HvBC7Uo6IPsIEtY1kz1X7yveIj/bNyxGdYkT9VF 7FOQ== X-Gm-Message-State: AHQUAuY5nR7lOShrZbvYMgXOpMcboRJyc7GE5XE5hWZzntWKr2AdHS05 Lsj4kPC+NhIMOaiP8TmrzrgeWw== X-Google-Smtp-Source: AHgI3IbxzIrNGDjs4u706VUZfbkM0D82YOsrqBAXlOWKdSbxs8Wv1kFfzKwySL3Vh+WpIfEnWQnPXw== X-Received: by 2002:aa7:8299:: with SMTP id s25mr3223607pfm.56.1551293882638; Wed, 27 Feb 2019 10:58:02 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.57.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:58:01 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:26:59 +0530 Message-Id: <20190227185701.15545-12-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Joe Hershberger Subject: [U-Boot] [PATCH v3 11/13] 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 available 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 Acked-by: Joe Hershberger --- 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 f5ae1e9555..6111a13f1c 100644 --- a/drivers/clk/sunxi/clk_h3.c +++ b/drivers/clk/sunxi/clk_h3.c @@ -34,6 +34,8 @@ static struct ccu_clk_gate h3_gates[] = { [CLK_BUS_UART2] = GATE(0x06c, BIT(18)), [CLK_BUS_UART3] = GATE(0x06c, BIT(19)), + [CLK_BUS_EPHY] = GATE(0x070, BIT(0)), + [CLK_SPI0] = GATE(0x0a0, BIT(31)), [CLK_SPI1] = GATE(0x0a4, BIT(31)), @@ -69,6 +71,8 @@ static struct ccu_reset h3_resets[] = { [RST_BUS_OHCI2] = RESET(0x2c0, BIT(30)), [RST_BUS_OHCI3] = RESET(0x2c0, BIT(31)), + [RST_BUS_EPHY] = RESET(0x2c8, BIT(2)), + [RST_BUS_UART0] = RESET(0x2d8, BIT(16)), [RST_BUS_UART1] = RESET(0x2d8, BIT(17)), [RST_BUS_UART2] = RESET(0x2d8, BIT(18)), From patchwork Wed Feb 27 18:57:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049104 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="A0ZfCUp8"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lPs2t6sz9s1b for ; Thu, 28 Feb 2019 06:00:49 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 1B4FCC21C29; Wed, 27 Feb 2019 18: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_DNSWL_NONE, 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 53C53C21DE8; Wed, 27 Feb 2019 18:58:56 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 9DF3EC21C29; Wed, 27 Feb 2019 18:58:11 +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 E364FC21DB3 for ; Wed, 27 Feb 2019 18:58:07 +0000 (UTC) Received: by mail-pf1-f195.google.com with SMTP id q17so8426888pfh.10 for ; Wed, 27 Feb 2019 10:58:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ITqueSAliTi4vk0uU5KKAfBWaSIfu7xqdlrWAnQeA1Y=; b=A0ZfCUp8wHUgezOTsu4yRvZi0bNYWc2IUB7UUsnu2ABmKd1ClkRkjg6KDuxvyaa52b GofrrXfmBqfBGlrUNXPf+ILnPJPf3daHxy2Dla3wLJTqLL0rR9L87EVoYyurDsIfumhM I5Adia66TEhPJygO9iOt06ZzraK4je/Fw5bkM= 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=ITqueSAliTi4vk0uU5KKAfBWaSIfu7xqdlrWAnQeA1Y=; b=JEtmrvv88ZN8niVac6jLn0OEUbdIhm/2XVPCZNJMOjwr515DJfACrEl2ZnUVO8Ptxq 0ibfeMLuT0YlHyDE4r7SbvvIYjlQayHe0GTEyPzUbsNJbWTjm9NpjTldGuVwRNqck+di eFujnMAcPOjY/eBQwaIcY5vGgr4LB46BQ+6OujtF3WkiBT+AcgTZp+mGTGOekw8Yf9dn 0mzFMtR1IE6CVBqyeiGYGioxCCtmuO1He32dIcoapT+ori1h3Kcxl4ThKuQsqvBzOYoI p/yHiTFmieWdp33X2w2RLAnYV+17nDE1AnY5krVJ3WQxCgxqwxQqU7/Yvg56iXz9MtRb Fu8A== X-Gm-Message-State: AHQUAubyI9PLVu8ekC4Q6kp1nNBu3tWcdfI7VH2egGnjHcwkZnWXGQgx c88gqumiJb61aJlnufQ2vD50jg== X-Google-Smtp-Source: AHgI3IZ3qV9kbvxKnhMG1LAbJMSeXN5BgMaU/IBzba6XlXePBLT3Zfv2ycqd8vxoylmMKtnVzp6B6w== X-Received: by 2002:a62:76c9:: with SMTP id r192mr3219552pfc.251.1551293886516; Wed, 27 Feb 2019 10:58:06 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.58.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:58:05 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:27:00 +0530 Message-Id: <20190227185701.15545-13-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com, Lothar Felten , Joe Hershberger Subject: [U-Boot] [PATCH v3 12/13] 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 Acked-by: Joe Hershberger --- drivers/net/sun8i_emac.c | 74 +++++++++++++++++++++++++++++++--------- 1 file changed, 57 insertions(+), 17 deletions(-) diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index 98bd7a5823..c0a440886e 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -138,7 +138,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 @@ -653,7 +655,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); @@ -670,16 +671,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; } } @@ -839,6 +844,44 @@ 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); @@ -920,12 +963,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 Wed Feb 27 18:57:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1049110 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="fNnUVE3I"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 448lSf6mKFz9s1b for ; Thu, 28 Feb 2019 06:03:14 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id AEEB6C21DB5; Wed, 27 Feb 2019 18:59:31 +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_DNSWL_NONE, 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 EAC7FC21C2F; Wed, 27 Feb 2019 18:59:00 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 09E42C21C2F; Wed, 27 Feb 2019 18:58:15 +0000 (UTC) Received: from mail-pl1-f195.google.com (mail-pl1-f195.google.com [209.85.214.195]) by lists.denx.de (Postfix) with ESMTPS id 4B5B3C21DA6 for ; Wed, 27 Feb 2019 18:58:11 +0000 (UTC) Received: by mail-pl1-f195.google.com with SMTP id y5so8441844plk.8 for ; Wed, 27 Feb 2019 10:58:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6jK4UswDiTZXg2ii5wugTTBbGdTdMaxIoaU36NBcKwk=; b=fNnUVE3IynWH614tuCXPb2eraKN+FR9LM3QU4k26HYiHh2FHugnb+AMFY5cL/sLDAY je2p7A/pDt8t616NFa35tUw+5bk2d0vbEL55hRYOLduVeKFN+O9uiJBWtRr775vKXzZW MD+SKe3I0PtcOZbFBNJAfD9tJnZVtJC/xhB7Q= 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=Pn47qxh9odQoSTn8JG0/i5UsuoQGL2jfC4M7Z2O2cVGcD15G454k/kfR8jXBqFo6HG 7hY86TJEtkXRH3+6MKszPMcu4gl2KxJWdDNYlnAfpy9bU9gYz0hS5YKMCnpqczo2sRc1 yrAwZ2hlhPm7YeLQrp0S1XwBFXYyBwITXPR+YoCRPlmG48PnQqOUrFgME71WxQ5BJ1fK we71BA5BhIqU4RPi/ntM/wZdZCNniLxtX6zEqQ6te9gcLM3dUHTHJRvv6z1GSm2cRE1n mKi2uGo9vM4j0GJkQGfATjjmKQxML5txuYfWB7eoDDxCgjfJjftHmMa1vLfMCWQjIsEd meow== X-Gm-Message-State: AHQUAuaeim12rRJL2KJ0NnQd5pBwdJ3EZKcWjbql36WCksDw9dBrnFd0 2DUcf6LMtftV/AVJ/06om2gwTg== X-Google-Smtp-Source: AHgI3IbzIignrJh4qYHW1dyJcURfWkGfIFYVs1IKZpOgmwibF+3YMYOhMXOHG/TQ7X+eqJCCBdnQLQ== X-Received: by 2002:a17:902:e01:: with SMTP id 1mr3749959plw.66.1551293889953; Wed, 27 Feb 2019 10:58:09 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id z6sm22020802pgo.31.2019.02.27.10.58.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Feb 2019 10:58:09 -0800 (PST) From: Jagan Teki To: =?utf-8?q?Andr=C3=A9_Przywara?= , Maxime Ripard , Chen-Yu Tsai Date: Thu, 28 Feb 2019 00:27:01 +0530 Message-Id: <20190227185701.15545-14-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190227185701.15545-1-jagan@amarulasolutions.com> References: <20190227185701.15545-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, linux-sunxi@googlegroups.com Subject: [U-Boot] [PATCH v3 13/13] 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 |