From patchwork Mon Feb 11 06:59:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039667 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="OAH+WFTK"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycBm0BgXz9sML for ; Mon, 11 Feb 2019 18:01:03 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id AB122C21F07; Mon, 11 Feb 2019 07:00:21 +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 DD854C21EAE; Mon, 11 Feb 2019 06:59:54 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0F047C21EAE; Mon, 11 Feb 2019 06:59:53 +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 63E74C21F07 for ; Mon, 11 Feb 2019 06:59:52 +0000 (UTC) Received: by mail-pg1-f195.google.com with SMTP id z10so4549219pgp.7 for ; Sun, 10 Feb 2019 22:59: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=mG08Z46FgpnIDM+xPL5SMPeEX3paDs7xHGAqdvZZysM=; b=OAH+WFTKt8Vn2kedSHAeNan1wxUkll7ePSVO84K/YFW42GEXrxwojY/hskfX7EIfn9 YSXMBN2Ypioj0U9edhdun8362ndHY+7aJiLpMJHlG+AF3zsygANKxGOGk7V9Fvx7iQjE J7z/8XII9f8ggP8bR02t09P5f1DDLm92kG5JA= 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=pyib6VEePtwtMHlpsf6EXmY1XEtK4doH+oUNYAdE2cXuMqZJD8HI6hXQDxpJ1MM0Vi X3EhKjMy60Nt9PDFH6p8Wz7Qt8x6ZyE2GYOwYd6DQPuJ44h05tpCpUlNSLB4jBYpvR81 F7PsEi2mYz/fbc1Ywmi8QIb5DuMLSZRbkWVAJcw3q3TgCbisjmLFvnCTE3l0rdW2d/st OdaAHfUMH3kfDRVtcmu2J8HYmU4T7vS1yW+ebLYOvXrlKUYbBv3L0s2w8ImSmcJjttuc OZSJLEgOFE1iYKbGsLv2MrBVB/egLypWzJBPHtCVCm1yHNcOo/xjcC7pVTOp3Al3Pdqe ajoQ== X-Gm-Message-State: AHQUAuZxRgmS9RAxRiME6QbNMPGQF+BCE5FebgWoiMPyY6NpK6YgFXb8 snqetRMn4S7hmHJ/ERRkge7X0A== X-Google-Smtp-Source: AHgI3IZoKLPmjXoR1jnpwQGXThufkTrM09hcLQV6Fw/FRJ51X7rzoHeruVm/zgQt/mOVu5NVa86pLA== X-Received: by 2002:a62:a1a:: with SMTP id s26mr35410366pfi.31.1549868390922; Sun, 10 Feb 2019 22:59:50 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.22.59.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 22:59:50 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:25 +0530 Message-Id: <20190211065937.4875-2-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH v2 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 Mon Feb 11 06:59:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039669 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="AvETkYvi"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycDJ758cz9s4Z for ; Mon, 11 Feb 2019 18:02:24 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 752A9C21FED; Mon, 11 Feb 2019 07:00: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 7164AC21FA1; Mon, 11 Feb 2019 07:00:02 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 52C8EC2200D; Mon, 11 Feb 2019 06:59:59 +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 DB9CBC21F4E for ; Mon, 11 Feb 2019 06:59:54 +0000 (UTC) Received: by mail-pl1-f194.google.com with SMTP id y10so2420538plp.0 for ; Sun, 10 Feb 2019 22:59:54 -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=AesKy4Ks1Momy0D7dpMwN5jhKqgcb6aluwBwJ/h0xQE=; b=AvETkYviVLpO+UDA+4NCvbW373Bc8523+zqtX5tUBGqs1zgqx2oZI2Ak1tmxziO0yw WHyjx2c1JfJiuIBNqer0ZZhRcoBz+mRzCqQHHIqjf1xoA5ew8MV8nYH1eS/r8FTnR6Qg 6GjJXr3vyqDgXr0aoFj4R0gVSsbxRXMVr6Pq4= 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=AesKy4Ks1Momy0D7dpMwN5jhKqgcb6aluwBwJ/h0xQE=; b=cGxJhwizXEvv50SN9416ZYt5dqaY4H0BrKZrBPxm16F7DN/qULSF9jz5dERbsnCYKG y59wl+1ggHHatX8iMeqP47BjjRB/Fe+pFcugQIPtSBhTbCNL/GHb+9jsqmICTJgg27+P wtrIdSEDr14p9OGU2J1W/iPoI0XIQNB2FNP9h2UUAIEEYp7iscCv+93miut9eGF87PRc osP8TqlEZrnMyOyKpvltSbg6EcgfABS0bPPWQC3eO7YNBcdlJxQkbRkCYucusQbT33b5 H5oHhYaUdV0ax9IBbxhmr5E4GSfPWdFuteMqVIRAAJQMgWLuNajXS2iWo82xqmozXl/Y TPuA== X-Gm-Message-State: AHQUAuZWzD1l3J4SSVqRrgYTi5vIgDdECrZSrixyVWIzMezVZnMReUYo DALnsjiC2jIKw3Z8YMwT8E/7dA== X-Google-Smtp-Source: AHgI3Ib5g+HoVs6+5nNQ/1Smm5awf2R1YYk99tGytcV+VYgV0a16/ycpb7klGGrZ+Oa03QSIMML+9Q== X-Received: by 2002:a17:902:e307:: with SMTP id cg7mr36236970plb.255.1549868393408; Sun, 10 Feb 2019 22:59:53 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.22.59.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 22:59:52 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:26 +0530 Message-Id: <20190211065937.4875-3-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Joe Hershberger Subject: [U-Boot] [PATCH v2 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 --- drivers/net/sunxi_emac.c | 28 ++++++++++++++++++++++------ image.map | 4 ++++ 2 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 image.map 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); } diff --git a/image.map b/image.map new file mode 100644 index 0000000000..a0b4894f93 --- /dev/null +++ b/image.map @@ -0,0 +1,4 @@ +ImagePos Offset Size Name +00000000 00000000 0007050a main-section +00000000 00000000 00006000 blob +00008000 00008000 0006850a u-boot-img From patchwork Mon Feb 11 06:59:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039668 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="fW51Pmih"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycCw18Fxz9s4Z for ; Mon, 11 Feb 2019 18:02:03 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id AA21EC21F47; Mon, 11 Feb 2019 07:00: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 0A9AEC22078; Mon, 11 Feb 2019 07:00:12 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id E1E03C21F63; Mon, 11 Feb 2019 07:00:09 +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 C5C24C21F98 for ; Mon, 11 Feb 2019 06:59:57 +0000 (UTC) Received: by mail-pg1-f193.google.com with SMTP id s198so4560764pgs.2 for ; Sun, 10 Feb 2019 22:59:57 -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=fW51Pmihi4CNX92GmRJVqMENtPKU43itiFFHA/+IcbkpwvYKLB3SbLXkO9UxG+PVeJ Wh4p9/IYo0+jgKwt5SlRsgjEdkE++cxejnk2+2FdmjAujqPqTWT731T7cFcqG/2Nv812 NpbTsIQubkH9ecDvmEIxmO16rZ1W/MEVTgfFI= 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=TCSTsHMgCKxFJ4Uf+DEwecINYmMHfiQR0VZKZVIbwfGt6o0L3zGmPVuSE5yFMzchyQ YRzC4FJBaFXG2CLdD9yQpzzcyyC8n+LAie8yCLurl1inVaipQs0+BzqC7Biomj0jQ/F8 G8wrW70QsLHsS+HgGW6pt3lNFGHfYgT+eQjxY6ybjbt3BVJgx4of1EIVvKCj4hIrVQMd jRU4ePezf+dbpF3urJKnzpE3grGwrFJ4oNxXfVOdHAZch8LsEmKuqvnj8KJ26TWaBIiG j2Xgn0tPHTkpUuAsO1sUBHnikSp2kaIaW8MMmJjkwWPaFrd21L0k5nx8lTiteLIbl67m BpnA== X-Gm-Message-State: AHQUAuaLwZRNmMwdFmXYQoajaZ+JWjWAbMgHIyBpRJX6dzVkZqaSaLLh xIXpHSjkEc97TsBrmwBJ8krGJg== X-Google-Smtp-Source: AHgI3IYkW53lTZlNohFU9PbMwINE8Wo9jh/eW/VOvwGZ+MioUg/W9Uyw9xXOugBzgDito/6lGp14bQ== X-Received: by 2002:a62:b15:: with SMTP id t21mr36405080pfi.136.1549868396355; Sun, 10 Feb 2019 22:59:56 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.22.59.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 22:59:55 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:27 +0530 Message-Id: <20190211065937.4875-4-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Joe Hershberger Subject: [U-Boot] [PATCH v2 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 Mon Feb 11 06:59:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039673 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="ji5K+54Y"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycG91J25z9s4Z for ; Mon, 11 Feb 2019 18:04:01 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E2AA3C2206E; Mon, 11 Feb 2019 07:01:22 +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 2F9A5C21FED; Mon, 11 Feb 2019 07:00:18 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 01716C22029; Mon, 11 Feb 2019 07: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 CF1A7C21F93 for ; Mon, 11 Feb 2019 07:00:00 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id c123so4850637pfb.0 for ; Sun, 10 Feb 2019 23:00: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=8fb8exJT5EXFIfnR3+1XHEXCQUngadh8YCvCkviQkQk=; b=ji5K+54YD+9G5MV+jIHwVCDXd3rSIZyqWqTgkXB+0t/bSFegG+enhzL8ZHKaHkHyW2 qjDuROkyT2jxmQNOvXcG/prCSG/Lr5WzF2/4Oc2Yys4iCvuUp7DA0Gi/sxpZ5tZ9PsMn aariQ3pgaBDCZFu5b69SGfXQelGdpZCNp5eJQ= 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=8fb8exJT5EXFIfnR3+1XHEXCQUngadh8YCvCkviQkQk=; b=Cne277grIqIReIg6d0m2aq8RkvqmjDHCJBgESZR3OYvMISR675Odim6xwenzpHjnlj mB4woqvx5jVWLbMbcSVya2p2y7Uy10i9sZ06thHkM4SipgyY5mn8ASvkay88Sgi7lJlg Z6TNEJlHLaeiZcJOlAssgXrJgVxAq+bK2nhJryF/iXU05Qs4P6XBC8R855IYD7lHBAIm hbiMrj9+0XRZTJn0RPE9Lidz5MaeXEZ9FUI8o0RsRgfgU8v0MCM2MOFvapbeqyTnRBqO RE7ojSP680l36UsWlg6o7p7l5l3bSx3v22OaQIZZL7eps03KUr52BqrNu1WUdhmyvb6+ 9p7g== X-Gm-Message-State: AHQUAuZBW98eoiPMSFq2RxkvqQ1zI/aIN8XmOTazn+JgGwV6FFw3arXo alKhv2l1zcXsmCiAje6awgh2KFCgVYytWw== X-Google-Smtp-Source: AHgI3IZk537FeVlY+3ngpS63Cnmz1DfJLXAXlDh81IEmbQj6/hvXAp3dDozVrwr/gLuIm/RLhZZeYw== X-Received: by 2002:a62:5b44:: with SMTP id p65mr34821659pfb.47.1549868399373; Sun, 10 Feb 2019 22:59:59 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.22.59.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 22:59:58 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:28 +0530 Message-Id: <20190211065937.4875-5-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Stephen Warren Subject: [U-Boot] [PATCH v2 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: Simon Glass 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..dc0b7809d2 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 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 Mon Feb 11 06:59:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039671 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="alQ/XzkJ"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycFK3T7Gz9s4Z for ; Mon, 11 Feb 2019 18:03:17 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 22456C21F21; Mon, 11 Feb 2019 07:01: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 95DB2C21FFC; Mon, 11 Feb 2019 07:00:17 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 7D5BAC21F51; Mon, 11 Feb 2019 07:00:13 +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 A5F41C22019 for ; Mon, 11 Feb 2019 07:00:03 +0000 (UTC) Received: by mail-pl1-f195.google.com with SMTP id a14so4866517plm.12 for ; Sun, 10 Feb 2019 23:00:03 -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=QpMflHvHc3RpHuA5Tvi41MEkl4figc7FOKRjyGAnvk8=; b=alQ/XzkJ7uJqvVC5KoZx+SXYUZz2yEDbWhxMkvno4eiOG4sE1rAhZro4wWV+TGqXuY NA3Iw+qwCoDNU6gRWg5rAU8upktSJQS8xBNlwGUZciUzLlT4iJ7u4tSlTjWTOoi2SY9M yPxMm0kQ3b0lm6l/OskMDyJxyCUaTrZHNTPJ0= 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=QpMflHvHc3RpHuA5Tvi41MEkl4figc7FOKRjyGAnvk8=; b=asTVcWHn4DbMATA3XqWAXzbEPSQq4kcESTuIujc+pPP0JQwUFDmDn5R0C4FQBUtTTR gtuKYi4L07orEMN829SXWBIPbufMNdjDfhN5eVUHpK6HVJW1c7qxk3k/EM2weCOfkcZo zUIXu5Q+m5QUFLpViibJRpuRTLMUpV1LkzBDokAWj38kZKKoppgQRWn+DHMD7n2GgyWC DjuyxzEKEBsfq9TzpzkE9a9rugis8luzJoypPPdOqLASoPauk7BRI+XLK2Bp43uBg1uP 4Tngz2Cci7ZPx+kRtFl847B5uW6NEPvp8wvbTx8/9G7UgSvCKCdnRNHaa9DFN0k+L4mY nBBA== X-Gm-Message-State: AHQUAuaiiosT2uT26ycc2zkpYKiV3jjTnr90V/HTkfwEGYS5/FxS668X dRjKI0DuTTIDaIZcjwa8a/gRqw== X-Google-Smtp-Source: AHgI3IZ+X9QAWnBxKXu4y+qqB2KcIH6je2g8MyHfVFR4kSxO0U+almp3/MvtKNNqOdJBL2AyOSuupg== X-Received: by 2002:a17:902:6508:: with SMTP id b8mr23843709plk.17.1549868402156; Sun, 10 Feb 2019 23:00:02 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.22.59.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 23:00:01 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:29 +0530 Message-Id: <20190211065937.4875-6-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Stephen Warren Subject: [U-Boot] [PATCH v2 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 in relevant places. Cc: Stephen Warren 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 dc0b7809d2..aa6535c7fd 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 Mon Feb 11 06:59:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039676 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="pyZ/kFTE"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycGs3xjMz9s4Z for ; Mon, 11 Feb 2019 18:04:37 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 2AA6BC21F47; Mon, 11 Feb 2019 07:01:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=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 70781C2201F; Mon, 11 Feb 2019 07:00:19 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 688BAC21F07; Mon, 11 Feb 2019 07:00:14 +0000 (UTC) Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by lists.denx.de (Postfix) with ESMTPS id 11104C22072 for ; Mon, 11 Feb 2019 07:00:06 +0000 (UTC) Received: by mail-pl1-f196.google.com with SMTP id e5so4885678plb.5 for ; Sun, 10 Feb 2019 23:00:05 -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=0qmQhI9cAJ6UVislWs3EJVU2vz+IJ3iPIhxBSoY2b/0=; b=pyZ/kFTEWsfN0FOJpCMNb7h/QHD2MxPYSmgQ+QqqLrjZVwwsrmfu/Kp6mc+bitF3VU PZ8gBKv7IOB9Ihgj66nbJxf3eMCnRIABwC44Cc+RMSgVW/RV4gSfvxaWjp+P5FV/9M/C dV/BgttkBnxhU5YkR4tFqrN8Yp5JYXyqd2biw= 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=0qmQhI9cAJ6UVislWs3EJVU2vz+IJ3iPIhxBSoY2b/0=; b=GYR/xkeiL5VdcYaYQzPV6JUK2gxdr4GmhyCTvBAZRK+uz1bAMT4fKIXiy9UO6ZcAdD A+Y8alg/v6bf85mX3z/as+DCqp9EOwuVJJe7KR2v/S6xMHW7JK+CMOL45+O+yNCATA9B HhYWVUIm1yJXMjakU2K+fE25gha3yXYJU2HNXE/HmPfeaVRU0oNyAo/MT1RmeYuHRTJH snros4t5hoJHyqDNd1GyKanSuxhRvvLIbIlj0r5mvi9UFfXVmGLJkCYywwfbDvXCpVXP 3+X16CeCsU4XXVEjgBQrSI8pQ50+JFlx+f1ptl0F/3I4uINLMSqb7Bnf8ulCaLjFV91B yD8w== X-Gm-Message-State: AHQUAuYYouQ8cj7T1bpwXXsJPmE1wjB2VNJc8t5mUi0CQwIxtOAlD1dV jRcHCjY8tDu3B8JpFD6duxDa9Q== X-Google-Smtp-Source: AHgI3IbIcv9J4s4gW7WJ3CV64WVimlesCzNbVTkqwI/n8EY0gct61DhDq7HW96MVkv0c3JftMsFJCA== X-Received: by 2002:a17:902:129:: with SMTP id 38mr36177806plb.140.1549868404689; Sun, 10 Feb 2019 23:00:04 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.23.00.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 23:00:04 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:30 +0530 Message-Id: <20190211065937.4875-7-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Stephen Warren Subject: [U-Boot] [PATCH v2 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 Cc: Simon Glass 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 Mon Feb 11 06:59:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039670 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="dViCJXbZ"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycF65JmGz9s4Z for ; Mon, 11 Feb 2019 18:03:06 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 5DD6FC22005; Mon, 11 Feb 2019 07:01: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 BA73DC21F47; Mon, 11 Feb 2019 07:00:18 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 127EAC21F47; Mon, 11 Feb 2019 07:00:15 +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 E4997C22070 for ; Mon, 11 Feb 2019 07:00:08 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id r11so4555238pgp.6 for ; Sun, 10 Feb 2019 23:00:08 -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=hKYPIAH2xT2iH7ES6jKpang0B0pqWL1PIVCoK3JBlcI=; b=dViCJXbZR5EjCk/NLoHJgiNczS+N9i9uhe21JFqjH2sN1VJvGdOc7D6oOy862fAoxe NETjIx2xH+82tnPjboR45/BfJtu60P2KzrQ4VXEKIpgyZJ3ji+PXBKN3/L9pP5zE6cG7 QaagpSX8/Fk67QnBTfBLy0L3RYDzFuDygqdQI= 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=hKYPIAH2xT2iH7ES6jKpang0B0pqWL1PIVCoK3JBlcI=; b=XcGVuyoQ7dYGBFksLOqf2hMZ/qaiXGH5f6YrB75ZQO96mJ8+wq9e17vrSLJIJ6flEV RZO1l7dBUM7QMne8Iv5p7BEAmIWuhcJtwVzb8csmxCN3IvYJmlHl8tVUgrnqN0Jank1s HhdpLC2lTE5dkzcOpjQgk7TWuKSK3+JP7a930rZGgj8JjyqLb0B21GRDRbAy8OqUW7Y0 sUmLbllDTQuBHjD294j7KhOAHGFiLbtlHnwmcbES04F/bFLKLt8w2NhhAP+mYUMqmJNk j/RmxSkMkZVT8N+LMnkcQfUpIE6NmH3BYNe7X0YKpe1bQFR4/VXFzoNfMxuJmh9UySgC xrgg== X-Gm-Message-State: AHQUAuZMEVXv0Op2nIjhJ5i4A08Lg9V5Eb0jMQDGOWfmZvstp3Ry+Rkj n9StX0hhb68eTRkuUxvR1ppfEg== X-Google-Smtp-Source: AHgI3Ia1OhzIfCvuYqQ7Y+AUO1BjpIlMKcDqxMhRdM/bmvI2pZ2xGzothI/mszXfrxgnP6JCOSw60w== X-Received: by 2002:a62:1d8f:: with SMTP id d137mr35005605pfd.11.1549868407464; Sun, 10 Feb 2019 23:00:07 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.23.00.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 23:00:06 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:31 +0530 Message-Id: <20190211065937.4875-8-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Stephen Warren Subject: [U-Boot] [PATCH v2 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 Cc: Simon Glass 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 Mon Feb 11 06:59:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039672 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="eLIQd6Zt"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycFm1nXSz9s4Z for ; Mon, 11 Feb 2019 18:03:40 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E0271C21FA0; Mon, 11 Feb 2019 07:02:08 +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_H2, 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 3225DC21F98; Mon, 11 Feb 2019 07:00:22 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 2E6B0C2200C; Mon, 11 Feb 2019 07:00:16 +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 BFCA4C2206B for ; Mon, 11 Feb 2019 07:00:11 +0000 (UTC) Received: by mail-pg1-f194.google.com with SMTP id r11so4555297pgp.6 for ; Sun, 10 Feb 2019 23:00: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=vD+waXZ/KZ3hYb/7gFZX59J9GVGTvHRvH2wyTKydtI0=; b=eLIQd6ZtVUFhw6HBHPhL5OWGRRlT5SCOP1+YMVF9fXZNMrA0o5NpmxXOnginyenvWc Og6G9WojxAOPo14WuLgQJfR/dV6do5uOrpvb9e6lwlwecbmBRnnttdOrQfJvpkMEPFbm ON6l0wWF9n92JChObLz3anLM4qdG4lioKXWMA= 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=vD+waXZ/KZ3hYb/7gFZX59J9GVGTvHRvH2wyTKydtI0=; b=OiVO+YyLfJMoAtDrzGOndTAcn7xhCJLq/+d5/MlpIrXff/ynNpCnFA/BwA2cZ5NfXd s5Ly0jsn6sR1Vx5eqyfMq9FMejw5TXr84qbmzinI9E4hRjQzdvA+Vru17l8OsuBnHqrU QOqdWu2tFQi1eeD0vv2q/9L5Z8lLRga+ZUkVTVYKhSXgwBF55xgAZAkb+hgCp50DaRvo lfiXgp4BFwXOkDKL5kJT8jZDlYMsCyBzTfIk2Hy5tPBvLvFIjGHAdrGq7L1iwTaYWpki 9gvGIDzGu/iDgW8lNeFaeeQL8R4gJtzjKc3Ky44rPqSfAh5rHCUokJ+2sOUsMQoPW82p 1BBg== X-Gm-Message-State: AHQUAubkZzW7fxhT9NQEKdq5WAaqsFZBUdP6oQE/v/zt/sQg4g2Zj5lG awbFshltvqZMZcG3+e2/8qv/Dg== X-Google-Smtp-Source: AHgI3IaTzGuGktXLRJJ4h88rBK31lkGGSdsqFOtoLiL5y0XG4CpLrKZJAN4By68BUm/2HPqKrHNtLw== X-Received: by 2002:a63:2507:: with SMTP id l7mr16222801pgl.22.1549868410372; Sun, 10 Feb 2019 23:00:10 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.23.00.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 23:00:09 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:32 +0530 Message-Id: <20190211065937.4875-9-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Stephen Warren Subject: [U-Boot] [PATCH v2 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 Cc: Simon Glass Signed-off-by: Jagan Teki Reviewed-by: Simon Glass --- test/dm/reset.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/test/dm/reset.c b/test/dm/reset.c index c02866a2f0..47198e90ce 100644 --- a/test/dm/reset.c +++ b/test/dm/reset.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -15,6 +16,27 @@ /* 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 Mon Feb 11 06:59:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039677 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="QhA/pnjN"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycHf0C4Cz9s4Z for ; Mon, 11 Feb 2019 18:05:17 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id B6605C22078; Mon, 11 Feb 2019 07:02:23 +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 DC46CC21FAA; Mon, 11 Feb 2019 07:00:27 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 322E1C22019; Mon, 11 Feb 2019 07:00:18 +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 34584C21F1D for ; Mon, 11 Feb 2019 07:00:14 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id n22so2091112pfa.3 for ; Sun, 10 Feb 2019 23:00:14 -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=QhA/pnjNnTWr9UHC8tTko0Z09lLTwNVFghKdtOq0Pzts+59Sd11+W/Q9WzjEXQg0KH jbt+GOqCTsxP1H+opMpu1gWHAWLD9ey/9el6ynNFMPe1ycGJgr3IiP8qbcSARa4Yqx8r i75PZJe3hb2/RfnSvNTW8Zvx1xNZ/092E8ktw= 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=hLMVuOI81hDeckBxirQw5WkH7PS1TPHBaBjq7xiS5cSf3yahuEE4ZriVWW2i3RxCjk Hp06ot9e50busgJVoeHCpD7WMT+74Cfv/D06yOs7LorlyCPh1U1gvg8RICix1mpM2znh T7VVnCDM7UMZ8WTpNagT77jcs7gocp5ocaj/tY17evUwELhuuNfaIbPO+eQilSvy2FF2 lCy6ypHHdYddZ2d39k3/okApKOvvIff/RF1v0ZVR0LTEK8cEzA1eV1KPWdAsZD6hiODG oUm+K4440hBKGR9KHuUvtg7fz2LShedPRBsfwocAlSzLNWsB5A5jtvgSw6vT7qEddEAY 3hcw== X-Gm-Message-State: AHQUAuY9fCs0kLVG1f9vbD0oDkAPLSmC7tSK1god0GwbpbLONSa5O14q P1iYC3tPh9ytuJig0wULFut2/w== X-Google-Smtp-Source: AHgI3Iagm1oSBYehsik51VnVXr+9grQ6RZxzQc0El/94EnawfJj07tcqWv5vswB0Bvpsu3Giaexe9Q== X-Received: by 2002:a62:5910:: with SMTP id n16mr34942125pfb.128.1549868412822; Sun, 10 Feb 2019 23:00:12 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.23.00.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 23:00:12 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:33 +0530 Message-Id: <20190211065937.4875-10-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Joe Hershberger Subject: [U-Boot] [PATCH v2 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 --- 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 Mon Feb 11 06:59:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039679 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="j+aeOGt8"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycK340mDz9sML for ; Mon, 11 Feb 2019 18:06:31 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 3057DC21F38; Mon, 11 Feb 2019 07:03: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 E1A2DC22072; Mon, 11 Feb 2019 07:00:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 055B1C21F38; Mon, 11 Feb 2019 07:00:21 +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 DB508C21F07 for ; Mon, 11 Feb 2019 07:00:16 +0000 (UTC) Received: by mail-pl1-f195.google.com with SMTP id p8so4902379plo.2 for ; Sun, 10 Feb 2019 23:00:16 -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=j+aeOGt8auGVctUOsBFcQ2XPnRoV1+hcETRXt5qgu31sbn0rhfCHLTnQnTyAFawX9z Nx4gtGCz32CPo46cIZilwRctHlrBCNJsmPRH/90Nt88+wGHc5oXzEfk17mXE7B22E92W R44jbwBtFz4fEjHrtB/igR6hDOlaVx5zQ0FQQ= 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=UxIPK88Zya0Xz9xXbykfcHMFIlxRZtv4vo7kmMOS6yZltJI3wGe3sUhpm7nMnXrZUL tNj28iYAWgRZHpzEKqiDvaIz27VLtTFRS+JO/EqCyLUgbLu65pqHMOG2ZWWSiIbcxnBv L8nLpm2OGExpj/He+zKJxOO4S7q/ZA6bsGGsDRGbxax6uJ6wyjCQZkl/DBE0KBOJhAUR LHVUHNEFJI9eieTt26qwgTUYKU+ZxhiB6habUpIOVZaN4BlyNeoTltED+aWgwzyefo1Z byut8WDf+F0L/CFB+1mECL0OYf6m0Ok7a6BNwHuaLe575PUWcXmDHBDlS1KYhqKTKNoh MP1Q== X-Gm-Message-State: AHQUAuYPvsOdqHFVYyQMkvh5ksK/JLhH+j7RCVsSqFktCVON4dt/21tU HdpmJ4BZpHj4CAMM+IchXAncLnBRvPuKBA== X-Google-Smtp-Source: AHgI3IYXbIb8L1hBoKd6d8l+U+KG1sZm0+oM6/CkwVlM6srGBDmug4r/3dpxbpSrktCSgM8yWJJVEQ== X-Received: by 2002:a17:902:45:: with SMTP id 63mr34981751pla.272.1549868415460; Sun, 10 Feb 2019 23:00:15 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.23.00.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 23:00:14 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:34 +0530 Message-Id: <20190211065937.4875-11-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Joe Hershberger Subject: [U-Boot] [PATCH v2 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 --- 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 Mon Feb 11 06:59:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039678 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="i+DxkcdI"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycJ30gYBz9s4Z for ; Mon, 11 Feb 2019 18:05:39 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id C33DDC22074; Mon, 11 Feb 2019 07:02:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=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 CA95AC2207B; Mon, 11 Feb 2019 07:00:39 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D5D81C2202C; Mon, 11 Feb 2019 07:00:24 +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 A7E4BC2206F for ; Mon, 11 Feb 2019 07:00:19 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id z10so4549796pgp.7 for ; Sun, 10 Feb 2019 23:00:19 -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=vbzhrORgtbGL/4f4bYUnqf4+/vuJ4V9u/VqUWrDNqM0=; b=i+DxkcdI63C8WeNxsm12rtV7ZVyAQmpbs+htfcU57UCS8FVKnH4gHoDAefBOBdltg9 dLw+WCtX1qIqW41mOpqz+37BCbwQUuBHL4ifDdTIuzl+AQtuhfr/J4gCglMAYv7vMFgj fpdbKbvPlDBCHQvnGKtX0muR7liChTQqGEXb8= 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=vbzhrORgtbGL/4f4bYUnqf4+/vuJ4V9u/VqUWrDNqM0=; b=lKKKwnQ8z4dcPA4N4keCFh3C2VwNZy3R4tcqvv57Os/DcQ5K3rUOMyOzAiCiW7l4Pd Z6gCGFt2GiY/W1h5wsxvJDZL7IUxWDBuv+yh/kQOnEs76IfrOHlS2bR/koZXlQoNiDXM nkXiqBNmxP5S2xxw1Kki81dIgGd7uFt8SNj8N3X+JMYm5uNnK4BNeawTgh5tKAho0ez8 ayS3wOkuI7/Z/trRbfh0ohauZorIUn00cU8LRcxfNxIfb+erdV3RWDmT6V14G/z9J9k/ VWAZzy97ZruqVspCmz1P0cQMaHwYjQTyGGoziHTSqJwNqcPDyNcHdal8/d9261RL4/em tfUg== X-Gm-Message-State: AHQUAuZ1GxJdN0sppsBal1/0Z/KCdVe3e+E38WG44YU7ygxuXb+Ipy+r 1KZNDR6KRJs/TxOJp/CQ5f0TwA== X-Google-Smtp-Source: AHgI3IYvlK6e/KOaRX0fdoxRQ5G+4d5OaSk6mNvXdk1ncj/Dct7Ys2sVbCgbHSVFSwVsutCuv/on8g== X-Received: by 2002:a62:e086:: with SMTP id d6mr7016736pfm.247.1549868418252; Sun, 10 Feb 2019 23:00:18 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.23.00.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 23:00:17 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:35 +0530 Message-Id: <20190211065937.4875-12-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Joe Hershberger Subject: [U-Boot] [PATCH v2 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 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 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 Mon Feb 11 06:59:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039674 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="UjlkfnYL"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycGV33qZz9sML for ; Mon, 11 Feb 2019 18:04:18 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 25247C21FA8; Mon, 11 Feb 2019 07:02: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_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 135EBC2207D; Mon, 11 Feb 2019 07:00:34 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 33221C22074; Mon, 11 Feb 2019 07:00:25 +0000 (UTC) Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by lists.denx.de (Postfix) with ESMTPS id 5B17FC22074 for ; Mon, 11 Feb 2019 07:00:22 +0000 (UTC) Received: by mail-pl1-f196.google.com with SMTP id g9so4890935plo.3 for ; Sun, 10 Feb 2019 23:00:22 -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=YG+P7iyhrmbReSHJuAEy81foRFGrHKTICs/m0yn8Wlg=; b=UjlkfnYL10cZstljNUiyOSk4Y8wg8RbdsStWDUvbquaaUpmB6vZN3HCyqPd/zDYSkB EVkiGhtMcyCaVCfsxbtXFXC/6zSRFG/YxUKR3uJZKXxvmJZDj4fvJyrE1CCEMwkjmDv7 7QRJ7BowvFzPU72SvhpqCzROkN4KuCXAI0yyc= 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=YG+P7iyhrmbReSHJuAEy81foRFGrHKTICs/m0yn8Wlg=; b=sgR0AVEmG8L9/KhnftSqnD8+lZhU3qTXSyVZgGJnewnDs+iaWCBud/afNglxdRDlZm 3c0EYuE62EuPpWe/Prp7Vwy4bxbVyyTtSZJnL/rRHXijT5zmc0/U6ESrh/dLLVlRZsJf FbI1RmbMhvc5OeI/TulLVI92YEXegfwbDFeRGsJCG0BTIqcBVb3up/DdnBkzYz8N4VLA AvzY2z0bbx9w1Ub/0PVZ/SMYkxwAI90ETz+YsfxJ9P5kML6u81kROWpRZhB/DL4Nt7Of hsY4UD+w1ImwbVaPEdyJxRjQkeQB7tJ7K5PoiBsUc7+0v2DtE7ceOrTM0YN5dO8J59pS CMZw== X-Gm-Message-State: AHQUAuY2n2mhM4pMzdyPp5jpdusaEtpZZ7qviT8Kon6TTRe4/2jbodRZ ZhtMf+yZzjoWVPuzfhbPhoIR+w== X-Google-Smtp-Source: AHgI3Ia4hdlxDaVOTHKTVEwfl2NzRcMof/VxGVXy/NWFWZoB6xhuKy0uBnn1C6T2DMTufmCmPlV+bA== X-Received: by 2002:a17:902:50e3:: with SMTP id c32mr36158861plj.318.1549868420974; Sun, 10 Feb 2019 23:00:20 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.23.00.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 23:00:20 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:36 +0530 Message-Id: <20190211065937.4875-13-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de, Joe Hershberger Subject: [U-Boot] [PATCH v2 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 --- 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 98bd7a5823..28347cb543 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,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); @@ -920,12 +961,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 Mon Feb 11 06:59:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jagan Teki X-Patchwork-Id: 1039675 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="VbbNp9Xr"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43ycGW2wRMz9s4Z for ; Mon, 11 Feb 2019 18:04:19 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 1BB3DC21F75; Mon, 11 Feb 2019 07:03: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 9E794C2207A; Mon, 11 Feb 2019 07:00:53 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id DC2EDC22044; Mon, 11 Feb 2019 07:00:28 +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 C495EC21F4E for ; Mon, 11 Feb 2019 07:00:24 +0000 (UTC) Received: by mail-pl1-f194.google.com with SMTP id p8so4902525plo.2 for ; Sun, 10 Feb 2019 23:00:24 -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=VbbNp9Xr9+gxugf+DMNnaNry9y6y2RlgJR+wd6mt2bU59vnUhSypocC7392Ry+/SYm 0EUucgI/WRKFRZwh6HDXWVT9GRRDgWNRlHi3B+/l5n/oKh+J9S4Pgh2BPKkJek+vNRVB ljp53x9/EA/ZQ3Wr+5Fc237ke6BzQMzFMj06k= 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=a4p32ZEuU+yom4acfskoUt5tWFT0N4zw9ZwfdgOtA7PoMRMP+eykADesQ1YK3Ut/hA U9233p9oaEttQGGPJj5OESeNAJqA8kKaukaWgT9JGPERf5ivhMODFJxLzmSIauQ1c1Yv OHuthJnfFc3nAB4QjQbrCgcqnj2M29TstND71g77SJhHRa0nLWQfQOeN5LEcL1CUOW++ QxUaJO4mAXoj+mcxMN1V8nS8qtZNi/UiIsRt+aiPLZ9cfYYUVqK8tcW5A9+lm+4RUEkT o710tGeWNLBAHNBOfnuwj5Tc1DT4coFJAoiIf5kfFnO7LL+2GVfERhcff7bmITiICilz rSMQ== X-Gm-Message-State: AHQUAuZum3jp6JWsKm4pnVW0jR2ZbBkfdj9IDWiNWZ2vaAZo7/ZGwK07 fFmJLYL7CuXHr9UhCxDTgIpvTL40bcvmrw== X-Google-Smtp-Source: AHgI3IaHiNQmBD/C36TgX2mr7B4GV96ZdI09vDT78Qp+F/2GACF5Mv2JSj5XPJ5ZYAPw6nBmFMuPVg== X-Received: by 2002:a17:902:8303:: with SMTP id bd3mr28488390plb.10.1549868423387; Sun, 10 Feb 2019 23:00:23 -0800 (PST) Received: from localhost.localdomain ([115.97.184.151]) by smtp.gmail.com with ESMTPSA id t3sm81529pga.31.2019.02.10.23.00.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 10 Feb 2019 23:00:22 -0800 (PST) From: Jagan Teki To: Maxime Ripard Date: Mon, 11 Feb 2019 12:29:37 +0530 Message-Id: <20190211065937.4875-14-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190211065937.4875-1-jagan@amarulasolutions.com> References: <20190211065937.4875-1-jagan@amarulasolutions.com> MIME-Version: 1.0 Cc: u-boot@lists.denx.de Subject: [U-Boot] [PATCH v2 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 |