From patchwork Thu Aug 17 07:51:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Corentin Labbe X-Patchwork-Id: 9905263 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E95EA60386 for ; Thu, 17 Aug 2017 08:04:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DA5A22861C for ; Thu, 17 Aug 2017 08:04:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CEBC12885B; Thu, 17 Aug 2017 08:04:15 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, DKIM_VALID, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 54B1B2861C for ; Thu, 17 Aug 2017 08:04:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=BdbN1nnh4cfgcbyYay5500BJ947foPM6NN6NIuNcVUI=; b=rCFl8d9UZ5v1vPQMfXXwEcoTxa ZXYrSfiByYCoen4Md/QD2koTZpQx5EHax3u7qLG2RbBTRVOaCwb4jKOuB/SDJhbph/D/s43tpBKqk j+W9fHUQ/x9Jnmr+rT8ZoNwCxSoGE4411Yla9ajPnN9A7UYWMw/2eU/e7ebNcvfSCgmit803bE7ZR OB7IdXuYbg5bwPsFR0jzHVnop64wqXUSla9Kn4RMjxKZoVrwRsuJGr2QvlESaHyPUTNt7astwDd5P N2gXNGH5Qn8WZd8UkJnjkdvLYohWOG1lsGytOKuThb/UnuW2Ftqi4Q4ZA9nTZdOCaQkqNORM0rZjS wRwrlFBw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1diFmo-0004BJ-8G; Thu, 17 Aug 2017 08:04:14 +0000 Received: from mail-wr0-x243.google.com ([2a00:1450:400c:c0c::243]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1diFdQ-0004LQ-IN for linux-arm-kernel@lists.infradead.org; Thu, 17 Aug 2017 07:54:37 +0000 Received: by mail-wr0-x243.google.com with SMTP id p8so891040wrf.2 for ; Thu, 17 Aug 2017 00:54:13 -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; bh=vd4hUpml01skHHEZohjv1DS1M9bSt1JCiybFmIsfTCM=; b=dJWoeMkVt79XsUuDFrIIPO48UCwqRoDokWMygIXQJp9kT/ePfvVbIqa3afU5/klg4R BKlL0GGN4cMvJZ/m/kWchKXRLVJVr82swUhlhKDqs6KRK5s8oFSOrEtqVHyE2JYYmIGC H/cBGgwAv0cIgNEPERnLLO+qUYT7j8TLTsE74yujFB1/UwWotxjToIptFvrL/IQRmWTI vF7mk0zmLM8QW6/awX+azqb1ls/lhi2Zrmro5JCIDU0itXXYn7VQhWwBPvIW/WGlZZJF sKx3kc6evAmFl9vE7wiZSa+nn3bss+jnJlsCtFYb9wDM1kMkIz4xN2Lyo1WTIHDhAn77 8UWg== 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; bh=vd4hUpml01skHHEZohjv1DS1M9bSt1JCiybFmIsfTCM=; b=MBAY7ajfEPIvV5UgqIHTk1FojVwlVjpx2rNo79il2EskBHA1Cg9vxMVJKkx4D5wGmq WbugoXK3ocaOYnDz7q5jN9KOUF1MmzP3kI/eqX6BnCUTBk+dtqodbvUbIcoOGEM4BGeQ wVADAClQOltCsDpVPh7B6CEzq2O40WrxaysNiXsoZpDirkGimi5yo84x10GMOy1tq9zM HTI1eHG2LlioNIcZdhcsImi2+TnWRj2Dm8D7+ZsIfbuW9zKAD0d5LdxcrrfBshmaNuaT dNn1oZr+RqBKgfzblauL/byDL19u0ogAX3QecjfsvmqGpJdguJ/KYobDPEJIlLfmExe4 VXQw== X-Gm-Message-State: AHYfb5jqDGLzihMzNB6BdGyU3bkJTyoA7MIUf4VbFUPt8NlwlhYR2obe r8sGCLFRa/6Mlg== X-Received: by 10.28.60.11 with SMTP id j11mr667153wma.47.1502956451947; Thu, 17 Aug 2017 00:54:11 -0700 (PDT) Received: from Red.local (LFbn-1-7109-228.w90-116.abo.wanadoo.fr. [90.116.45.228]) by smtp.googlemail.com with ESMTPSA id 91sm2282717wrg.83.2017.08.17.00.54.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 17 Aug 2017 00:54:11 -0700 (PDT) From: Corentin Labbe To: robh+dt@kernel.org, mark.rutland@arm.com, linux@armlinux.org.uk, maxime.ripard@free-electrons.com, wens@csie.org, peppe.cavallaro@st.com, alexandre.torgue@st.com Subject: [PATCH v2 6/6] net: stmmac: dwmac-sun8i: choose internal PHY via phy-is-integrated Date: Thu, 17 Aug 2017 09:51:49 +0200 Message-Id: <20170817075149.16178-7-clabbe.montjoie@gmail.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170817075149.16178-1-clabbe.montjoie@gmail.com> References: <20170817075149.16178-1-clabbe.montjoie@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170817_005432_979935_64B97B10 X-CRM114-Status: GOOD ( 16.40 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Corentin Labbe , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The current way to find if the phy is internal is to compare DT phy-mode and emac_variant/internal_phy. But it will negate a possible future SoC where an external PHY use the same phy mode than the internal one. This patch adds a new way to find if the PHY is internal, via the phy-is-integrated property. Since the internal_phy variable does not need anymore to contain the xMII mode used by the internal PHY, it is still used for knowing the presence of an internal PHY, so it is modified to a boolean soc_has_internal_phy. Signed-off-by: Corentin Labbe --- drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c index fffd6d5fc907..672553b652bd 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c @@ -41,14 +41,14 @@ * This value is used for disabling properly EMAC * and used as a good starting value in case of the * boot process(uboot) leave some stuff. - * @internal_phy: Does the MAC embed an internal PHY + * @soc_has_internal_phy: Does the MAC embed an internal PHY * @support_mii: Does the MAC handle MII * @support_rmii: Does the MAC handle RMII * @support_rgmii: Does the MAC handle RGMII */ struct emac_variant { u32 default_syscon_value; - int internal_phy; + bool soc_has_internal_phy; bool support_mii; bool support_rmii; bool support_rgmii; @@ -75,7 +75,7 @@ struct sunxi_priv_data { static const struct emac_variant emac_variant_h3 = { .default_syscon_value = 0x58000, - .internal_phy = PHY_INTERFACE_MODE_MII, + .soc_has_internal_phy = true, .support_mii = true, .support_rmii = true, .support_rgmii = true @@ -83,20 +83,20 @@ static const struct emac_variant emac_variant_h3 = { static const struct emac_variant emac_variant_v3s = { .default_syscon_value = 0x38000, - .internal_phy = PHY_INTERFACE_MODE_MII, + .soc_has_internal_phy = true, .support_mii = true }; static const struct emac_variant emac_variant_a83t = { .default_syscon_value = 0, - .internal_phy = 0, + .soc_has_internal_phy = false, .support_mii = true, .support_rgmii = true }; static const struct emac_variant emac_variant_a64 = { .default_syscon_value = 0, - .internal_phy = 0, + .soc_has_internal_phy = false, .support_mii = true, .support_rmii = true, .support_rgmii = true @@ -648,7 +648,7 @@ static int sun8i_dwmac_set_syscon(struct stmmac_priv *priv) "Current syscon value is not the default %x (expect %x)\n", val, reg); - if (gmac->variant->internal_phy) { + if (gmac->variant->soc_has_internal_phy) { if (!gmac->use_internal_phy) { /* switch to external PHY interface */ reg &= ~H3_EPHY_SELECT; @@ -932,7 +932,7 @@ static int sun8i_dwmac_probe(struct platform_device *pdev) } plat_dat->interface = of_get_phy_mode(dev->of_node); - if (plat_dat->interface == gmac->variant->internal_phy) { + if (of_property_read_bool(plat_dat->phy_node, "phy-is-integrated")) { dev_info(&pdev->dev, "Will use internal PHY\n"); gmac->use_internal_phy = true; gmac->ephy_clk = of_clk_get(plat_dat->phy_node, 0);