From: Christian Marangi <ansuelsmth@gmail.com>
To: Andrew Lunn <andrew@lunn.ch>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Andy Gross <agross@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konrad.dybcio@linaro.org>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
linux-arm-msm@vger.kernel.org
Cc: Christian Marangi <ansuelsmth@gmail.com>
Subject: [net-next PATCH 07/14] net: phy: at803x: move at8035 specific DT parse to dedicated probe
Date: Wed, 29 Nov 2023 03:12:12 +0100 [thread overview]
Message-ID: <20231129021219.20914-8-ansuelsmth@gmail.com> (raw)
In-Reply-To: <20231129021219.20914-1-ansuelsmth@gmail.com>
Move at8035 specific DT parse for clock out frequency to dedicated probe
to make at803x probe function more generic.
This is to tidy code and no behaviour change are intended.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
drivers/net/phy/at803x.c | 62 ++++++++++++++++++++++++++++------------
1 file changed, 43 insertions(+), 19 deletions(-)
diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
index b83422c6db74..e7d006ca1676 100644
--- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c
@@ -647,23 +647,6 @@ static int at803x_parse_dt(struct phy_device *phydev)
priv->clk_25m_reg |= FIELD_PREP(AT803X_CLK_OUT_MASK, sel);
priv->clk_25m_mask |= AT803X_CLK_OUT_MASK;
-
- /* Fixup for the AR8030/AR8035. This chip has another mask and
- * doesn't support the DSP reference. Eg. the lowest bit of the
- * mask. The upper two bits select the same frequencies. Mask
- * the lowest bit here.
- *
- * Warning:
- * There was no datasheet for the AR8030 available so this is
- * just a guess. But the AR8035 is listed as pin compatible
- * to the AR8030 so there might be a good chance it works on
- * the AR8030 too.
- */
- if (phydev->drv->phy_id == ATH8030_PHY_ID ||
- phydev->drv->phy_id == ATH8035_PHY_ID) {
- priv->clk_25m_reg &= AT8035_CLK_OUT_MASK;
- priv->clk_25m_mask &= AT8035_CLK_OUT_MASK;
- }
}
ret = of_property_read_u32(node, "qca,clk-out-strength", &strength);
@@ -1681,6 +1664,47 @@ static int at8031_set_wol(struct phy_device *phydev,
return at803x_set_wol(phydev, wol);
}
+static int at8035_parse_dt(struct phy_device *phydev)
+{
+ struct device_node *node = phydev->mdio.dev.of_node;
+ struct at803x_priv *priv = phydev->priv;
+ u32 freq;
+ int ret;
+
+ if (!IS_ENABLED(CONFIG_OF_MDIO))
+ return 0;
+
+ ret = of_property_read_u32(node, "qca,clk-out-frequency", &freq);
+ if (!ret) {
+ /* Fixup for the AR8030/AR8035. This chip has another mask and
+ * doesn't support the DSP reference. Eg. the lowest bit of the
+ * mask. The upper two bits select the same frequencies. Mask
+ * the lowest bit here.
+ *
+ * Warning:
+ * There was no datasheet for the AR8030 available so this is
+ * just a guess. But the AR8035 is listed as pin compatible
+ * to the AR8030 so there might be a good chance it works on
+ * the AR8030 too.
+ */
+ priv->clk_25m_reg &= AT8035_CLK_OUT_MASK;
+ priv->clk_25m_mask &= AT8035_CLK_OUT_MASK;
+ }
+
+ return 0;
+}
+
+static int at8035_probe(struct phy_device *phydev)
+{
+ int ret;
+
+ ret = at803x_probe(phydev);
+ if (ret)
+ return ret;
+
+ return at8035_parse_dt(phydev);
+}
+
static int qca83xx_probe(struct phy_device *phydev)
{
struct device *dev = &phydev->mdio.dev;
@@ -2167,7 +2191,7 @@ static struct phy_driver at803x_driver[] = {
PHY_ID_MATCH_EXACT(ATH8035_PHY_ID),
.name = "Qualcomm Atheros AR8035",
.flags = PHY_POLL_CABLE_TEST,
- .probe = at803x_probe,
+ .probe = at8035_probe,
.config_aneg = at803x_config_aneg,
.config_init = at803x_config_init,
.soft_reset = genphy_soft_reset,
@@ -2188,7 +2212,7 @@ static struct phy_driver at803x_driver[] = {
.phy_id = ATH8030_PHY_ID,
.name = "Qualcomm Atheros AR8030",
.phy_id_mask = AT8030_PHY_ID_MASK,
- .probe = at803x_probe,
+ .probe = at8035_probe,
.config_init = at803x_config_init,
.link_change_notify = at803x_link_change_notify,
.set_wol = at803x_set_wol,
--
2.40.1
next prev parent reply other threads:[~2023-11-29 2:12 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-29 2:12 [net-next PATCH 00/14] net: phy: at803x: cleanup + split Christian Marangi
2023-11-29 2:12 ` [net-next PATCH 01/14] net: phy: at803x: fix passing the wrong reference for config_intr Christian Marangi
2023-11-30 14:50 ` Andrew Lunn
2023-11-29 2:12 ` [net-next PATCH 02/14] net: phy: at803x: move disable WOL for 8031 from probe to config Christian Marangi
2023-11-29 9:24 ` Russell King (Oracle)
2023-11-29 9:36 ` Christian Marangi
2023-11-29 10:45 ` Russell King (Oracle)
2023-11-29 11:03 ` Christian Marangi
2023-11-29 11:09 ` Russell King (Oracle)
2023-11-30 14:58 ` Andrew Lunn
2023-11-29 2:12 ` [net-next PATCH 03/14] net: phy: at803x: raname hw_stats functions to qca83xx specific name Christian Marangi
2023-11-30 14:59 ` Andrew Lunn
2023-11-29 2:12 ` [net-next PATCH 04/14] net: phy: at803x: move qca83xx stats out of generic at803x_priv struct Christian Marangi
2023-11-29 9:29 ` Russell King (Oracle)
2023-11-29 9:38 ` Christian Marangi
2023-11-30 15:09 ` Andrew Lunn
2023-11-29 2:12 ` [net-next PATCH 05/14] net: phy: at803x: move qca83xx specific check in dedicated functions Christian Marangi
2023-11-30 15:14 ` Andrew Lunn
2023-11-29 2:12 ` [net-next PATCH 06/14] net: phy: at803x: move at8031 specific data out of generic at803x_priv Christian Marangi
2023-11-29 9:35 ` Russell King (Oracle)
2023-11-29 11:08 ` Christian Marangi
2023-11-29 11:31 ` Russell King (Oracle)
2023-11-30 15:21 ` Andrew Lunn
2023-11-30 19:38 ` Christian Marangi
2023-11-30 20:14 ` Andrew Lunn
2023-11-30 20:24 ` Christian Marangi
2023-11-29 2:12 ` Christian Marangi [this message]
2023-11-30 15:29 ` [net-next PATCH 07/14] net: phy: at803x: move at8035 specific DT parse to dedicated probe Andrew Lunn
2023-11-29 2:12 ` [net-next PATCH 08/14] net: phy: at803x: drop specific PHY id check from cable test functions Christian Marangi
2023-11-29 9:38 ` Russell King (Oracle)
2023-11-29 9:47 ` Christian Marangi
2023-11-29 10:57 ` Russell King (Oracle)
2023-11-29 11:04 ` Christian Marangi
2023-11-29 11:07 ` Russell King (Oracle)
2023-11-29 2:12 ` [net-next PATCH 09/14] net: phy: at803x: remove specific qca808x check from at803x functions Christian Marangi
2023-11-29 9:43 ` Russell King (Oracle)
2023-11-29 9:49 ` Christian Marangi
2023-11-29 2:12 ` [net-next PATCH 10/14] net: phy: at803x: drop usless probe for qca8081 PHY Christian Marangi
2023-11-29 9:44 ` Russell King (Oracle)
2023-11-29 9:51 ` Christian Marangi
2023-11-29 2:12 ` [net-next PATCH 11/14] net: phy: at803x: make specific status mask more generic Christian Marangi
2023-11-29 2:12 ` [net-next PATCH 12/14] net: phy: move at803x PHY driver to dedicated directory Christian Marangi
2023-11-29 2:12 ` [net-next PATCH 13/14] net: phy: qcom: deatch qca83xx PHY driver from at803x Christian Marangi
2023-11-29 9:53 ` Russell King (Oracle)
2023-11-29 10:37 ` Christian Marangi
2023-11-29 11:20 ` Russell King (Oracle)
2023-11-29 11:21 ` Christian Marangi
2023-11-29 2:12 ` [net-next PATCH 14/14] net: phy: qcom: detach qca808x " Christian Marangi
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=20231129021219.20914-8-ansuelsmth@gmail.com \
--to=ansuelsmth@gmail.com \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=konrad.dybcio@linaro.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=pabeni@redhat.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