From patchwork Sat Aug 26 07:33:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Corentin Labbe X-Patchwork-Id: 9923209 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 D5306602BD for ; Sat, 26 Aug 2017 07:37:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C5618285AB for ; Sat, 26 Aug 2017 07:37:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BA59C285B9; Sat, 26 Aug 2017 07:37:11 +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 3B814285AB for ; Sat, 26 Aug 2017 07:37:11 +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=E2ZVEwg5iQtddDD2D50oGy+1+l3kG3lvQ7TZr2vgHDs=; b=gnzx1r+0ui/2XWoyiw84PgAcHn 6HgRn4sF5RnGXZIiI+ZOnHR3cwLWslMTY0jtj4cEIeUUhiLQnjIhDwJIVK7ogiaZv8HH/XsuVikfw LwZ29ygTlOOVwKYZpQGeFeYf1Nwnw/gTF0hEeoGqOb18IQneu2166K81N898rfY1F5BBymnEKNZfJ 1udpaPbynQ43vUp7a0kjPFHw1gnh4iGXxhRotpX/P5LCx2MRQoFndvgHD73SkllOGMuZBAfaJDnlC z6zkbxqd+C6/UbgKV02r9BB9bxxR2htDlOua44mqZS9YUhH4VyeIYpQHVtEouvqWnAR8Gh+/2PeGC c/st7dQg==; 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 1dlVeR-0004AJ-BC; Sat, 26 Aug 2017 07:37:03 +0000 Received: from mail-wr0-x244.google.com ([2a00:1450:400c:c0c::244]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dlVdB-00038G-0e for linux-arm-kernel@lists.infradead.org; Sat, 26 Aug 2017 07:35:49 +0000 Received: by mail-wr0-x244.google.com with SMTP id a47so1031517wra.2 for ; Sat, 26 Aug 2017 00:35:24 -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=qqvCJUn8EZZZdeOqwXx5OTsEUolhAxlA9fn2lALxlk8=; b=hZd339raxJqk4IEVIl9FY3c3R1CO2RDKLsNdqKD15NFjzQtxSjVGmQVNjyNpTnAP2M omQ31yewCGCoWK40YO1jqAwEVu3h5taXmTLr1U8HftUnqxk27jLv5hBAsNIENT1VvoR0 6ixtl0noAVorGCfy5g8S5TY7offawlyhH+tp/bvCTq1a1S8I+EzNHL4YYV/CBakVMvbW SHe0bhMRsIMwecCbQpkKrAGuf7Qkzq2GmaEV5LZDBAX40VNQDOL6Um0U/U0/uTTa8fvI c0myNNLB6mfNy6YVD/SzaaAexaPDmqqjFZWsddlU3MEtoPLmDH4+rE2jNen2xlzBuKry IedQ== 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=qqvCJUn8EZZZdeOqwXx5OTsEUolhAxlA9fn2lALxlk8=; b=sFGANMJrfXeEID4A8o4nQrkcw6BH7jc/dDbnThYFGHtLznRyJzDgldd1NhNHXWZHhg h6Kjw2NyXIdBQCI9KMM+YQIadB/xwfDMJB2EZL8NItX7B32M67ulO1XXz9saYR/mlU04 /uGIrd8Y+vCwlbmkwq9H/BMLyFcpGRsYRpPeozXde5QJ43mfOjZeRiRNreOOiSS13L+4 t4SPwPCjlo9JwkzA0tA/P8+ba7OabRVxa+jTb6jQw52d7y6nW8yqpQx/5AaDX0oBVvX8 187lB/WBkdmsYdDVIrh1NaasTmXdmzjb15hlTAxHIrL9ZwSKu3dByrCs6qAjBf+nIfxV yM7Q== X-Gm-Message-State: AHYfb5iPOvgpSQeDYdbGrV3m8rzSdcK0DZyMo0HHk3g1OXTVfA8TnznK cQJSFt3waz6oiQ== X-Received: by 10.223.167.71 with SMTP id e7mr594852wrd.205.1503732923149; Sat, 26 Aug 2017 00:35:23 -0700 (PDT) Received: from Red.local (LFbn1-1-65-78.w90-118.abo.wanadoo.fr. [90.118.156.78]) by smtp.googlemail.com with ESMTPSA id u46sm14198550wrf.15.2017.08.26.00.35.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 26 Aug 2017 00:35:22 -0700 (PDT) From: Corentin Labbe To: robh+dt@kernel.org, mark.rutland@arm.com, maxime.ripard@free-electrons.com, wens@csie.org, linux@armlinux.org.uk, peppe.cavallaro@st.com, alexandre.torgue@st.com, andrew@lunn.ch, f.fainelli@gmail.com Subject: [PATCH v4 4/5] net: stmmac: dwmac-sun8i: choose internal PHY via phy-is-integrated Date: Sat, 26 Aug 2017 09:33:10 +0200 Message-Id: <20170826073311.25612-5-clabbe.montjoie@gmail.com> X-Mailer: git-send-email 2.13.5 In-Reply-To: <20170826073311.25612-1-clabbe.montjoie@gmail.com> References: <20170826073311.25612-1-clabbe.montjoie@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170826_003545_287787_5003ACFF X-CRM114-Status: GOOD ( 15.16 ) 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, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Corentin Labbe , linux-arm-kernel@lists.infradead.org, icenowy@aosc.io 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 Acked-by: Chen-Yu Tsai Reviewed-by: Florian Fainelli --- 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 675a09629d85..c353e5bcb3c1 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; @@ -933,7 +933,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);