From patchwork Wed Dec 2 11:36:18 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Simek X-Patchwork-Id: 551333 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 2715A1402D9 for ; Wed, 2 Dec 2015 22:38:01 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=monstr-eu.20150623.gappssmtp.com header.i=@monstr-eu.20150623.gappssmtp.com header.b=ln2+sDmK; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 50CD54BA99; Wed, 2 Dec 2015 12:37:28 +0100 (CET) X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id T4vumCh99KZ2; Wed, 2 Dec 2015 12:37:28 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id DD1E74BA9C; Wed, 2 Dec 2015 12:36:58 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id AC0AE4BA91 for ; Wed, 2 Dec 2015 12:36:52 +0100 (CET) X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HQCG7uYgl9BP for ; Wed, 2 Dec 2015 12:36:52 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-wm0-f44.google.com (mail-wm0-f44.google.com [74.125.82.44]) by theia.denx.de (Postfix) with ESMTPS id 185B24BA39 for ; Wed, 2 Dec 2015 12:36:39 +0100 (CET) Received: by wmww144 with SMTP id w144so210861204wmw.1 for ; Wed, 02 Dec 2015 03:36:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monstr-eu.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=PH4km547rF2felja6nKk3ka8iqaj3pW0V09fNtQcvLI=; b=ln2+sDmKB4QzqAbTzG/RK/VJjO4opJ4MeowuDEZaDSNZ3V2JXFJC80ZOoRkLN7zcOh rPTBvObSYXmOZaa6jwrQN+5hNF8H+xjHy/cf4oStObw/FCVHLmHfWTJ7DF0c4eRxNgxp PLspt0xD88ny8KTYP91bgs1YYpl7Cygmh6KFzBE1j2XwV68ZeV6ZLwf9LCGtTciRw+Jp ywpzIJDG0NAP4iHpZj4dhjmfvTMvVz0siB3aSXulBx7TAKyyuzBN96bzcmKfOhndc/U1 8u11Me9DS7asNXBGWHJPSNQzBeYR+btvtC9xAVBITVquB0QmXT6AxXuI++9ZEnipcXv+ MrHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:in-reply-to:references; bh=PH4km547rF2felja6nKk3ka8iqaj3pW0V09fNtQcvLI=; b=YQmsZPhc6zPL8b40FQIFkM+PNgZw4uICaNc3xSMOdrrODzfth9/ceKhE3iAvAuYOEf 2GPlt0sF5d8MI3sMLxC/KAZj2qx0TBLATmD7QAlj9SM9Gy/nLGyTiibgNuB7PtHzHCrS UbUdPwMVNn81t0hc2jWkWFOqkp5Ck6PkKwJY4EblHGT7YQhznr8AKze4dfztxA6BXqaV E1utFyX32XGz1w8QYaoiVOzCROh44RvrrrQtIKYdssP+X/l09gcEbneCUS2FzQTEPRgD vv34ufX5sckDpyU//Ljk1oDqNx8LT7teF5PTU+L7lx70RBLzcCMwoqxwArYKqT/nawn8 Q/xQ== X-Gm-Message-State: ALoCoQnRvQgQNpCZPOC7sLlS9wIvQ2sjQamiiyQJlAcJX2ZvskykNcLCln3XbIfHeOU2xO4dn4Lw X-Received: by 10.28.226.86 with SMTP id z83mr45906606wmg.77.1449056198740; Wed, 02 Dec 2015 03:36:38 -0800 (PST) Received: from localhost (nat-35.starnet.cz. [178.255.168.35]) by smtp.gmail.com with ESMTPSA id jj3sm2377294wjb.13.2015.12.02.03.36.37 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Wed, 02 Dec 2015 03:36:38 -0800 (PST) From: Michal Simek To: u-boot@lists.denx.de Date: Wed, 2 Dec 2015 12:36:18 +0100 Message-Id: <8f8635752e008171c83b5c90e5fe5f227647c9e9.1449056178.git.michal.simek@xilinx.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <3846048879467c3510abb54b930cdc05772d469e.1449056178.git.michal.simek@xilinx.com> References: <3846048879467c3510abb54b930cdc05772d469e.1449056178.git.michal.simek@xilinx.com> In-Reply-To: <3846048879467c3510abb54b930cdc05772d469e.1449056178.git.michal.simek@xilinx.com> References: <3846048879467c3510abb54b930cdc05772d469e.1449056178.git.michal.simek@xilinx.com> Cc: Joe Hershberger Subject: [U-Boot] [PATCH v2 09/14] net: gem: Enable MDIO bus earlier X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Enable access to MDIO before zynq_gem_init is called. It enables read information about phy earlier. Signed-off-by: Michal Simek --- Changes in v2: None drivers/net/zynq_gem.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/net/zynq_gem.c b/drivers/net/zynq_gem.c index d5540ec2155c..9ce1221e8d0f 100644 --- a/drivers/net/zynq_gem.c +++ b/drivers/net/zynq_gem.c @@ -314,6 +314,7 @@ static int zynq_phy_init(struct eth_device *dev) { int ret; struct zynq_gem_priv *priv = dev->priv; + struct zynq_gem_regs *regs = (struct zynq_gem_regs *)dev->iobase; const u32 supported = SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full | SUPPORTED_100baseT_Half | @@ -321,6 +322,9 @@ static int zynq_phy_init(struct eth_device *dev) SUPPORTED_1000baseT_Half | SUPPORTED_1000baseT_Full; + /* Enable only MDIO bus */ + writel(ZYNQ_GEM_NWCTRL_MDEN_MASK, ®s->nwctrl); + ret = phy_detection(dev); if (ret) { printf("GEM PHY init failed\n"); @@ -343,7 +347,6 @@ static int zynq_phy_init(struct eth_device *dev) static int zynq_gem_init(struct eth_device *dev, bd_t *bis) { u32 i; - int ret; unsigned long clk_rate = 0; struct zynq_gem_regs *regs = (struct zynq_gem_regs *)dev->iobase; struct zynq_gem_priv *priv = dev->priv; @@ -411,10 +414,6 @@ static int zynq_gem_init(struct eth_device *dev, bd_t *bis) priv->init++; } - ret = zynq_phy_init(dev); - if (ret) - return ret; - phy_startup(priv->phydev); if (!priv->phydev->link) { @@ -597,6 +596,7 @@ static int zynq_gem_miiphy_write(const char *devname, uchar addr, int zynq_gem_initialize(bd_t *bis, phys_addr_t base_addr, int phy_addr, u32 emio) { + int ret; struct eth_device *dev; struct zynq_gem_priv *priv; void *bd_space; @@ -650,6 +650,10 @@ int zynq_gem_initialize(bd_t *bis, phys_addr_t base_addr, miiphy_register(dev->name, zynq_gem_miiphyread, zynq_gem_miiphy_write); priv->bus = miiphy_get_dev_by_name(dev->name); + ret = zynq_phy_init(dev); + if (ret) + return ret; + return 1; }