LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Murali Karicheri <m-karicheri2@ti.com>
To: <robh+dt@kernel.org>, <mark.rutland@arm.com>,
	<ssantosh@kernel.org>, <malat@debian.org>, <w-kwok2@ti.com>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>, <davem@davemloft.net>,
	<netdev@vger.kernel.org>, <grygorii.strashko@ti.com>,
	<nsekhar@ti.com>
Subject: [net-next PATCH v4 09/13] net: netcp: ethss: use of_get_phy_mode() to support different RGMII modes
Date: Tue, 17 Apr 2018 17:30:38 -0400	[thread overview]
Message-ID: <1524000642-23944-10-git-send-email-m-karicheri2@ti.com> (raw)
In-Reply-To: <1524000642-23944-1-git-send-email-m-karicheri2@ti.com>

The phy used for K2G allows for internal delays to be added optionally
to the clock circuitry based on board desing. To add this support,
enhance the driver to use of_get_phy_mode() to read the phy-mode from
the phy device and pass the same to phy through of_phy_connect().

Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
---
 drivers/net/ethernet/ti/netcp_ethss.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c
index d982dcb..5bc7921 100644
--- a/drivers/net/ethernet/ti/netcp_ethss.c
+++ b/drivers/net/ethernet/ti/netcp_ethss.c
@@ -21,6 +21,7 @@
 #include <linux/io.h>
 #include <linux/module.h>
 #include <linux/of_mdio.h>
+#include <linux/of_net.h>
 #include <linux/of_address.h>
 #include <linux/if_vlan.h>
 #include <linux/ptp_classify.h>
@@ -707,6 +708,7 @@ struct gbe_slave {
 	u32				link_interface;
 	u32				mac_control;
 	u8				phy_port_t;
+	struct device_node		*node;
 	struct device_node		*phy_node;
 	struct ts_ctl                   ts_ctl;
 	struct list_head		slave_list;
@@ -2322,6 +2324,21 @@ static int gbe_slave_open(struct gbe_intf *gbe_intf)
 		has_phy = true;
 		phy_mode = PHY_INTERFACE_MODE_SGMII;
 		slave->phy_port_t = PORT_MII;
+	} else if (slave->link_interface == RGMII_LINK_MAC_PHY) {
+		has_phy = true;
+		phy_mode = of_get_phy_mode(slave->node);
+		/* if phy-mode is not present, default to
+		 * PHY_INTERFACE_MODE_RGMII
+		 */
+		if (phy_mode < 0)
+			phy_mode = PHY_INTERFACE_MODE_RGMII;
+
+		if (!phy_interface_mode_is_rgmii(phy_mode)) {
+			dev_err(priv->dev,
+				"Unsupported phy mode %d\n", phy_mode);
+			return -EINVAL;
+		}
+		slave->phy_port_t = PORT_MII;
 	} else if (slave->link_interface == XGMII_LINK_MAC_PHY) {
 		has_phy = true;
 		phy_mode = PHY_INTERFACE_MODE_NA;
@@ -2947,6 +2964,7 @@ static int init_slave(struct gbe_priv *gbe_dev, struct gbe_slave *slave,
 		slave->link_interface = SGMII_LINK_MAC_PHY;
 	}
 
+	slave->node = node;
 	slave->open = false;
 	if ((slave->link_interface == SGMII_LINK_MAC_PHY) ||
 	    (slave->link_interface == RGMII_LINK_MAC_PHY) ||
-- 
1.9.1

  parent reply	other threads:[~2018-04-17 21:28 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-17 21:30 [net-next PATCH v4 00/13] Add support for netcp driver on K2G SoC Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 01/13] soc: ti: K2G: enhancement to support QMSS in K2G NAVSS Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 02/13] soc: ti: K2G: provide APIs to support driver probe deferral Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 03/13] net: netcp: ethss: use macro for checking ss_version consistently Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 04/13] net: netcp: ethss: make sgmii configuration conditional Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 05/13] net: netcp: ethss: add support for handling rgmii link interface Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 06/13] net: netcp: ethss: use rgmii link status for 2u cpsw hardware Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 07/13] net: netcp: ethss: map vlan priorities to zero flow Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 08/13] net: netcp: ethss: re-use stats handling code for 2u hardware Murali Karicheri
2018-04-17 21:30 ` Murali Karicheri [this message]
2018-04-17 21:30 ` [net-next PATCH v4 10/13] Revert "net: netcp: remove dead code from the driver" Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 11/13] net: netcp: support probe deferral Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 12/13] net: netcp: add api to support set rx mode in netcp modules Murali Karicheri
2018-04-17 21:30 ` [net-next PATCH v4 13/13] net: netcp: ethss: k2g: add promiscuous mode support Murali Karicheri
2018-04-19  1:07 ` [net-next PATCH v4 00/13] Add support for netcp driver on K2G SoC David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1524000642-23944-10-git-send-email-m-karicheri2@ti.com \
    --to=m-karicheri2@ti.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=grygorii.strashko@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=malat@debian.org \
    --cc=mark.rutland@arm.com \
    --cc=netdev@vger.kernel.org \
    --cc=nsekhar@ti.com \
    --cc=robh+dt@kernel.org \
    --cc=ssantosh@kernel.org \
    --cc=w-kwok2@ti.com \
    --subject='Re: [net-next PATCH v4 09/13] net: netcp: ethss: use of_get_phy_mode() to support different RGMII modes' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).