From patchwork Mon Jul 24 13:48:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antoine Tenart X-Patchwork-Id: 9859455 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 A146B60349 for ; Mon, 24 Jul 2017 13:55:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 929C127E63 for ; Mon, 24 Jul 2017 13:55:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8743028385; Mon, 24 Jul 2017 13:55:51 +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=-1.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE autolearn=ham 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 09A3127E63 for ; Mon, 24 Jul 2017 13:55:50 +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=ax8MhjhJOxlIlIJVFUTnNzg5eUt2Snzlq7OgoQj2pEo=; b=AUaMgrydYkLgZkvlasFNjgSrGE EN6nca/HI3uAIruZl/5vdt9Yll+0J5hOUa01er0yJ1vH3i2Ns5QbUsRjkhFkAQrzhJMiVj4E91SVI Y3kwbIfnfaPju89OUy8LG9M1+tgpk5VvxkxXx+lMVeAkO0nCy+QwYc6vkDhxfrsR2XDX1cJM5SH07 EuzVfKwnjLd8sfhf2yQ2C9FuDGvFvcX3GFRxIa7Pcza5hB/B2N0fmu2OcJb44ZoGiRk96cLeabGeG nzV2qptI2k4OtU/vk9nebLqWo3/K6+l+DBTcDfHNct6ImNLVM0fdvIqN1rdCPMzE4BCcsBEtioYqU uo4FR4ww==; 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 1dZdpt-0003iK-93; Mon, 24 Jul 2017 13:55:49 +0000 Received: from mail.free-electrons.com ([62.4.15.54]) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dZdl2-0006Gn-BT for linux-arm-kernel@lists.infradead.org; Mon, 24 Jul 2017 13:50:53 +0000 Received: by mail.free-electrons.com (Postfix, from userid 110) id 1F05221E58; Mon, 24 Jul 2017 15:50:03 +0200 (CEST) Received: from localhost (LStLambert-657-1-97-87.w90-63.abo.wanadoo.fr [90.63.216.87]) by mail.free-electrons.com (Postfix) with ESMTPSA id E9E8820DB8; Mon, 24 Jul 2017 15:50:02 +0200 (CEST) From: Antoine Tenart To: davem@davemloft.net, jason@lakedaemon.net, andrew@lunn.ch, gregory.clement@free-electrons.com, sebastian.hesselbarth@gmail.com Subject: [PATCH net-next 08/18] net: mvpp2: make the phy optional Date: Mon, 24 Jul 2017 15:48:38 +0200 Message-Id: <20170724134848.19330-9-antoine.tenart@free-electrons.com> X-Mailer: git-send-email 2.13.3 In-Reply-To: <20170724134848.19330-1-antoine.tenart@free-electrons.com> References: <20170724134848.19330-1-antoine.tenart@free-electrons.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170724_065048_866834_96A5EA57 X-CRM114-Status: GOOD ( 14.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: thomas.petazzoni@free-electrons.com, netdev@vger.kernel.org, Antoine Tenart , linux@armlinux.org.uk, nadavh@marvell.com, stefanc@marvell.com, mw@semihalf.com, linux-arm-kernel@lists.infradead.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 SFP ports do not necessarily need to have an Ethernet PHY between the SoC and the actual physical port. However, the driver currently makes the "phy" property mandatory, contrary to what is stated in the Device Tree binding. To allow handling the PPv2 controller on those boards, this patch makes the PHY optional, and aligns the PPv2 driver on its device tree documentation. Signed-off-by: Antoine Tenart --- drivers/net/ethernet/marvell/mvpp2.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c index 948f5bd4ab18..f6eb98d38ced 100644 --- a/drivers/net/ethernet/marvell/mvpp2.c +++ b/drivers/net/ethernet/marvell/mvpp2.c @@ -6094,7 +6094,8 @@ static void mvpp2_start_dev(struct mvpp2_port *port) mvpp2_port_mii_set(port); mvpp2_port_enable(port); - phy_start(ndev->phydev); + if (ndev->phydev) + phy_start(ndev->phydev); netif_tx_start_all_queues(port->dev); } @@ -6118,7 +6119,8 @@ static void mvpp2_stop_dev(struct mvpp2_port *port) mvpp2_egress_disable(port); mvpp2_port_disable(port); - phy_stop(ndev->phydev); + if (ndev->phydev) + phy_stop(ndev->phydev); } static int mvpp2_check_ringparam_valid(struct net_device *dev, @@ -6176,6 +6178,10 @@ static int mvpp2_phy_connect(struct mvpp2_port *port) struct phy_device *phy_dev; u32 phy_addr; + /* No PHY is attached */ + if (!port->phy_node) + return 0; + phy_dev = of_phy_connect(port->dev, port->phy_node, mvpp2_link_event, 0, port->phy_interface); if (!phy_dev) { @@ -6206,6 +6212,9 @@ static void mvpp2_phy_disconnect(struct mvpp2_port *port) { struct net_device *ndev = port->dev; + if (!ndev->phydev) + return; + phy_disconnect(ndev->phydev); } @@ -6760,12 +6769,6 @@ static int mvpp2_port_probe(struct platform_device *pdev, return -ENOMEM; phy_node = of_parse_phandle(port_node, "phy", 0); - if (!phy_node) { - dev_err(&pdev->dev, "missing phy\n"); - err = -ENODEV; - goto err_free_netdev; - } - phy_mode = of_get_phy_mode(port_node); if (phy_mode < 0) { dev_err(&pdev->dev, "incorrect phy mode\n");