From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38408C4338F for ; Mon, 26 Jul 2021 06:02:35 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 87D1560F0F for ; Mon, 26 Jul 2021 06:02:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 87D1560F0F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id ADF7A83297; Mon, 26 Jul 2021 08:02:32 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="TQ8jyc1W"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D1EB483297; Mon, 26 Jul 2021 08:02:30 +0200 (CEST) Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9675883298 for ; Mon, 26 Jul 2021 08:02:26 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=mibodhi@gmail.com Received: by mail-qk1-x735.google.com with SMTP id x3so7800079qkl.6 for ; Sun, 25 Jul 2021 23:02:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XN/PqB8ukL1v/RV0BvVcCAt3mifOGvLFxWS67YWzV7A=; b=TQ8jyc1WCSA60UThD22cl35DDdf5Qok+YXN8KpRtkHxRK68o+76xOdBNlVPNTExPkd PQMaXuiP/iz01JtOXNi9FGmK2jab9jOxuB/ifF31aZ3NxYXjCjMkjBl+KVwNT+EXJTC9 apvX9R6tZvRO1U94nkHHdBP42wdiF6BG0TwXEgIZ63GWxx5r6Fkg+5xi0lkZLbbMFyAg jPwzMN8+hjvp9vu5H9c8uwWihKXs/nEzDwJAmkv2IDhBki/69uoICfxJ7mOIvWExsBe/ 67dpK+9xg80oSKhd82N/nVyHc3IyfRtzyA77KPhwCMaNGRLLMv3zbCcr8m/gsVKAAOAC E0uA== 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=XN/PqB8ukL1v/RV0BvVcCAt3mifOGvLFxWS67YWzV7A=; b=WosiGVHsol1+S7gmJMXQB0+rP0Hz2I5Q8kL0zH9jMFUtGbCOze9yUH6pD/XUuML6C/ hWyqDZCDITXxX5ToUZTzYgoLRA++7KWIEpBNaQ/VjLaG1Gmxw2fa7Hv0fC1Lo/tR/cMt 0gegFbNlBVREvzt5TKbneQhZeaQ0NxH/9+X/x4abx1YKTW4kSMbgEWxxBpVuj7AVxifR HAHundTtXD2kg7AcksTpz89oug66LKM7p45sBW38FzAQbUP8O/e4JbtzX0dUQozzeQg6 6OXFK57x0cvVQuCRNon2RJPz1bOOovM51epqCU7mdaHmTN8SZzBVkkHtftBlu0+xab+/ WTDw== X-Gm-Message-State: AOAM533ylEnA6O+JnrVbe7buS4oTD25L6wOYe+HytYJ/i5yLmcZIyApQ FVlwjdixQtb2JxbizuEytzg0QSYA+Gypkw== X-Google-Smtp-Source: ABdhPJyY6u7F9aVqdhIsZdImjnksceZqHDw/rU9cSkB6Z5GzOnu/w0PkuS84s9wMDaSXgcrlItydYg== X-Received: by 2002:a05:620a:13f8:: with SMTP id h24mr16040052qkl.350.1627279345358; Sun, 25 Jul 2021 23:02:25 -0700 (PDT) Received: from localhost.localdomain ([66.218.48.116]) by smtp.gmail.com with ESMTPSA id h2sm19282248qkf.106.2021.07.25.23.02.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Jul 2021 23:02:25 -0700 (PDT) From: Tony Dinh To: U-Boot Mailing List , Stefan Roese , Jason Cooper Cc: Chris Packham , Tom Rini , Tony Dinh , Simon Glass Subject: [PATCH 2/3] arm: kirkwood: Dreamplug: Use Ethernet PHY name and address from device tree Date: Sun, 25 Jul 2021 23:01:19 -0700 Message-Id: <20210726060121.7253-3-mibodhi@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210726060121.7253-1-mibodhi@gmail.com> References: <20210726060121.7253-1-mibodhi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean In DM Ethernet, the old "egiga0" and 'egiga1" names are no longer valid, so replace these with Ethernet PHY names from device tree. Also, read Ethernet PHY address for each port from device tree. Signed-off-by: Tony Dinh --- board/Marvell/dreamplug/dreamplug.c | 62 ++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 14 deletions(-) diff --git a/board/Marvell/dreamplug/dreamplug.c b/board/Marvell/dreamplug/dreamplug.c index e1c64b5224..d5b6b22ddf 100644 --- a/board/Marvell/dreamplug/dreamplug.c +++ b/board/Marvell/dreamplug/dreamplug.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /* + * Copyright (C) 2021 Tony Dinh * (C) Copyright 2011 * Jason Cooper * @@ -97,42 +98,75 @@ int board_init(void) return 0; } +static int fdt_get_phy_addr(const char *path) +{ + const void *fdt = gd->fdt_blob; + const u32 *reg; + const u32 *val; + int node, phandle, addr; + + /* Find the node by its full path */ + node = fdt_path_offset(fdt, path); + if (node >= 0) { + /* Look up phy-handle */ + val = fdt_getprop(fdt, node, "phy-handle", NULL); + if (val) { + phandle = fdt32_to_cpu(*val); + if (!phandle) + return -1; + /* Follow it to its node */ + node = fdt_node_offset_by_phandle(fdt, phandle); + if (node) { + /* Look up reg */ + reg = fdt_getprop(fdt, node, "reg", NULL); + if (reg) { + addr = fdt32_to_cpu(*reg); + return addr; + } + } + } + } + return -1; +} + #ifdef CONFIG_RESET_PHY_R -void mv_phy_88e1116_init(char *name) +void mv_phy_88e1116_init(const char *name, const char *path) { u16 reg; - u16 devadr; + int phyaddr; if (miiphy_set_current_dev(name)) return; - /* command to read PHY dev address */ - if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) { - printf("Err..%s could not read PHY dev address\n", - __func__); + phyaddr = fdt_get_phy_addr(path); + if (phyaddr < 0) return; - } /* * Enable RGMII delay on Tx and Rx for CPU port * Ref: sec 4.7.2 of chip datasheet */ - miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2); - miiphy_read(name, devadr, MV88E1116_MAC_CTRL2_REG, ®); + miiphy_write(name, phyaddr, MV88E1116_PGADR_REG, 2); + miiphy_read(name, phyaddr, MV88E1116_MAC_CTRL2_REG, ®); reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL); - miiphy_write(name, devadr, MV88E1116_MAC_CTRL2_REG, reg); - miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0); + miiphy_write(name, phyaddr, MV88E1116_MAC_CTRL2_REG, reg); + miiphy_write(name, phyaddr, MV88E1116_PGADR_REG, 0); /* reset the phy */ - miiphy_reset(name, devadr); + miiphy_reset(name, phyaddr); printf("88E1116 Initialized on %s\n", name); } void reset_phy(void) { + char *eth0_name = "ethernet-controller@72000"; + char *eth0_path = "/ocp@f1000000/ethernet-controller@72000/ethernet0-port@0"; + char *eth1_name = "ethernet-controller@76000"; + char *eth1_path = "/ocp@f1000000/ethernet-controller@72000/ethernet1-port@0"; + /* configure and initialize both PHY's */ - mv_phy_88e1116_init("egiga0"); - mv_phy_88e1116_init("egiga1"); + mv_phy_88e1116_init(eth0_name, eth0_path); + mv_phy_88e1116_init(eth1_name, eth1_path); } #endif /* CONFIG_RESET_PHY_R */ -- 2.20.1