linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ansuel Smith <ansuelsmth@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Vladimir Oltean <olteanv@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	Rob Herring <robh+dt@kernel.org>, Andy Gross <agross@kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Russell King <linux@armlinux.org.uk>,
	John Crispin <john@phrozen.org>,
	Ansuel Smith <ansuelsmth@gmail.com>,
	netdev@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org
Subject: [net-next PATCH v6 08/16] net: dsa: qca8k: add explicit SGMII PLL enable
Date: Wed, 13 Oct 2021 03:16:14 +0200	[thread overview]
Message-ID: <20211013011622.10537-9-ansuelsmth@gmail.com> (raw)
In-Reply-To: <20211013011622.10537-1-ansuelsmth@gmail.com>

Support enabling PLL on the SGMII CPU port. Some device require this
special configuration or no traffic is transmitted and the switch
doesn't work at all. A dedicated binding is added to the CPU node
port to apply the correct reg on mac config.
Fail to correctly configure sgmii with qca8327 switch and warn if pll is
used on qca8337 with a revision greater than 1.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
---
 drivers/net/dsa/qca8k.c | 19 +++++++++++++++++--
 drivers/net/dsa/qca8k.h |  1 +
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 3b1874bf5d7d..486e8a3d9af5 100644
--- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c
@@ -1002,6 +1002,18 @@ qca8k_parse_port_config(struct qca8k_priv *priv)
 			if (of_property_read_bool(port_dn, "qca,sgmii-rxclk-falling-edge"))
 				priv->sgmii_rx_clk_falling_edge = true;
 
+			if (of_property_read_bool(port_dn, "qca,sgmii-enable-pll")) {
+				priv->sgmii_enable_pll = true;
+
+				if (priv->switch_id == QCA8K_ID_QCA8327) {
+					dev_err(priv->dev, "SGMII PLL should NOT be enabled for qca8327. Aborting enabling");
+					priv->sgmii_enable_pll = false;
+				}
+
+				if (priv->switch_revision < 2)
+					dev_warn(priv->dev, "SGMII PLL should NOT be enabled for qca8337 with revision 2 or more.");
+			}
+
 			break;
 		default:
 			continue;
@@ -1313,8 +1325,11 @@ qca8k_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode,
 		if (ret)
 			return;
 
-		val |= QCA8K_SGMII_EN_PLL | QCA8K_SGMII_EN_RX |
-			QCA8K_SGMII_EN_TX | QCA8K_SGMII_EN_SD;
+		val |= QCA8K_SGMII_EN_SD;
+
+		if (priv->sgmii_enable_pll)
+			val |= QCA8K_SGMII_EN_PLL | QCA8K_SGMII_EN_RX |
+			       QCA8K_SGMII_EN_TX;
 
 		if (dsa_is_cpu_port(ds, port)) {
 			/* CPU port, we're talking to the CPU MAC, be a PHY */
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 5eb0c890dfe4..77b1677edafa 100644
--- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h
@@ -266,6 +266,7 @@ struct qca8k_priv {
 	u8 switch_revision;
 	bool sgmii_rx_clk_falling_edge;
 	bool sgmii_tx_clk_falling_edge;
+	bool sgmii_enable_pll;
 	u8 rgmii_rx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */
 	u8 rgmii_tx_delay[QCA8K_NUM_CPU_PORTS]; /* 0: CPU port0, 1: CPU port6 */
 	bool legacy_phy_port_mapping;
-- 
2.32.0


  parent reply	other threads:[~2021-10-13  1:16 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-13  1:16 [net-next PATCH v6 00/16] Multiple improvement for qca8337 switch Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 01/16] dsa: qca8k: add mac_power_sel support Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 02/16] dt-bindings: net: dsa: qca8k: Add SGMII clock phase properties Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 03/16] net: dsa: qca8k: add support for sgmii falling edge Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 04/16] dt-bindings: net: dsa: qca8k: Document support for CPU port 6 Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 05/16] net: dsa: qca8k: add support for cpu " Ansuel Smith
2021-10-13  4:10   ` DENG Qingfang
2021-10-13 11:42     ` Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 06/16] net: dsa: qca8k: rework rgmii delay logic and scan " Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 07/16] dt-bindings: net: dsa: qca8k: Document qca,sgmii-enable-pll Ansuel Smith
2021-10-13  1:16 ` Ansuel Smith [this message]
2021-10-13  1:16 ` [net-next PATCH v6 09/16] dt-bindings: net: dsa: qca8k: Document qca,led-open-drain binding Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 10/16] net: dsa: qca8k: add support for pws config reg Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 11/16] dt-bindings: net: dsa: qca8k: document support for qca8328 Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 12/16] net: dsa: qca8k: add support for QCA8328 Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 13/16] net: dsa: qca8k: set internal delay also for sgmii Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 14/16] net: dsa: qca8k: move port config to dedicated struct Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 15/16] dt-bindings: net: dsa: qca8k: convert to YAML schema Ansuel Smith
2021-10-13  3:08   ` Rob Herring
2021-10-13 10:30     ` Ansuel Smith
2021-10-13  1:16 ` [net-next PATCH v6 16/16] dt-bindings: net: ipq8064-mdio: fix warning with new qca8k switch Ansuel Smith

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=20211013011622.10537-9-ansuelsmth@gmail.com \
    --to=ansuelsmth@gmail.com \
    --cc=agross@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=bjorn.andersson@linaro.org \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=f.fainelli@gmail.com \
    --cc=john@phrozen.org \
    --cc=kuba@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=robh+dt@kernel.org \
    --cc=vivien.didelot@gmail.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).